From caf296a54625ed061565eab82e2678a41abb4d00 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Fri, 15 Dec 2017 11:52:17 -0800 Subject: [PATCH] Try to make target_feature work on stable --- src/backend/mod.rs | 2 +- src/edwards.rs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/backend/mod.rs b/src/backend/mod.rs index a4c8b55..0e2ce3e 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -29,6 +29,6 @@ pub mod u32; pub mod u64; /// Code using AVX2. -#[cfg(all(target_feature="avx2", feature="yolocrypto", feature="avx2_backend"))] +#[cfg(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2")))] pub mod avx2; diff --git a/src/edwards.rs b/src/edwards.rs index 3488c2b..b8444b8 100644 --- a/src/edwards.rs +++ b/src/edwards.rs @@ -433,13 +433,13 @@ impl<'a, 'b> Mul<&'b Scalar> for &'a ExtendedPoint { /// `EdwardsBasepointTable` is approximately 4x faster. fn mul(self, scalar: &'b Scalar) -> ExtendedPoint { // If we built with AVX2, use the AVX2 backend. - #[cfg(all(target_feature = "avx2", feature = "avx2_backend"))] { + #[cfg(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2")))] { use backend::avx2::edwards as edwards_avx2; let P_avx2 = edwards_avx2::ExtendedPoint::from(*self); return ExtendedPoint::from(&P_avx2 * scalar); } // Otherwise, proceed as normal: - #[cfg(not(all(target_feature = "avx2", feature = "avx2_backend")))] { + #[cfg(not(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2"))))] { // Construct a lookup table of [P,2P,3P,4P,5P,6P,7P,8P] let lookup_table = LookupTable::::from(self); @@ -505,13 +505,13 @@ pub fn multiscalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> ExtendedPoint J: IntoIterator { // If we built with AVX2, use the AVX2 backend. - #[cfg(all(target_feature = "avx2", feature = "avx2_backend"))] { + #[cfg(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2")))] { use backend::avx2::edwards as edwards_avx2; edwards_avx2::multiscalar_mult(scalars, points) } // Otherwise, proceed as normal: - #[cfg(not(all(target_feature = "avx2", feature = "avx2_backend")))] { + #[cfg(not(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2"))))] { //assert_eq!(scalars.len(), points.len()); use clear_on_drop::ClearOnDrop; @@ -806,13 +806,13 @@ pub mod vartime { J: IntoIterator { // If we built with AVX2, use the AVX2 backend. - #[cfg(all(target_feature = "avx2", feature = "avx2_backend"))] { + #[cfg(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2")))] { use backend::avx2::edwards as edwards_avx2; edwards_avx2::vartime::multiscalar_mult(scalars, points) } // Otherwise, proceed as normal: - #[cfg(not(all(target_feature = "avx2", feature = "avx2_backend")))] { + #[cfg(not(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2"))))] { //assert_eq!(scalars.len(), points.len()); let nafs: Vec<_> = scalars.into_iter() @@ -850,13 +850,13 @@ pub mod vartime { b: &Scalar, ) -> ExtendedPoint { // If we built with AVX2, use the AVX2 backend. - #[cfg(all(target_feature = "avx2", feature = "avx2_backend"))] { + #[cfg(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2")))] { use backend::avx2::edwards as edwards_avx2; edwards_avx2::vartime::double_scalar_mult_basepoint(a, A, b) } // Otherwise, proceed as normal: - #[cfg(not(all(target_feature = "avx2", feature = "avx2_backend")))] { + #[cfg(not(all(feature="nightly", all(feature="avx2_backend", target_feature="avx2"))))] { let a_naf = a.non_adjacent_form(); let b_naf = b.non_adjacent_form();