mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-04 20:24:10 +00:00
Move field constants to constants module
This commit is contained in:
parent
9ad2188bb8
commit
dd80421094
3 changed files with 38 additions and 19 deletions
|
|
@ -15,6 +15,42 @@ use stdsimd::simd::u32x8;
|
|||
use backend::avx2::field::FieldElement32x4;
|
||||
use backend::avx2::edwards::ExtendedPoint;
|
||||
|
||||
/// The low limbs of (2p, 2p, 2p, 2p), so that
|
||||
/// ```no_run
|
||||
/// (2p, 2p, 2p, 2p) = [P_TIMES_2_LO, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI]
|
||||
/// ```
|
||||
pub(crate) static P_TIMES_2_LO: u32x8 =
|
||||
u32x8::new(67108845 << 1, 67108845 << 1, 33554431 << 1, 33554431 << 1, 67108845 << 1, 67108845 << 1, 33554431 << 1, 33554431 << 1);
|
||||
|
||||
/// The high limbs of (2p, 2p, 2p, 2p), so that
|
||||
/// ```no_run
|
||||
/// (2p, 2p, 2p, 2p) = [P_TIMES_2_LO, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI, P_TIMES_2_HI]
|
||||
/// ```
|
||||
pub(crate) static P_TIMES_2_HI: u32x8 =
|
||||
u32x8::new(67108863 << 1, 67108863 << 1, 33554431 << 1, 33554431 << 1, 67108863 << 1, 67108863 << 1, 33554431 << 1, 33554431 << 1);
|
||||
|
||||
/// The low limbs of (16p, 16p, 16p, 16p), so that
|
||||
/// ```no_run
|
||||
/// (16p, 16p, 16p, 16p) = [P_TIMES_16_LO, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI]
|
||||
/// ```
|
||||
pub(crate) static P_TIMES_16_LO: u32x8 =
|
||||
u32x8::new(67108845 << 4, 67108845 << 4, 33554431 << 4, 33554431 << 4, 67108845 << 4, 67108845 << 4, 33554431 << 4, 33554431 << 4);
|
||||
|
||||
/// The high limbs of (16p, 16p, 16p, 16p), so that
|
||||
/// ```no_run
|
||||
/// (16p, 16p, 16p, 16p) = [P_TIMES_16_LO, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI, P_TIMES_16_HI]
|
||||
/// ```
|
||||
pub(crate) static P_TIMES_16_HI: u32x8 =
|
||||
u32x8::new(67108863 << 4, 67108863 << 4, 33554431 << 4, 33554431 << 4, 67108863 << 4, 67108863 << 4, 33554431 << 4, 33554431 << 4);
|
||||
|
||||
pub(crate) static P_TIMES_2_MASKED: FieldElement32x4 = FieldElement32x4([
|
||||
u32x8::new( 0, 134217690, 0, 67108862, 134217690, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0)
|
||||
]);
|
||||
|
||||
/// Odd multiples of the Ed25519 basepoint:
|
||||
pub static ODD_MULTIPLES_OF_BASEPOINT: [ExtendedPoint; 8] = [
|
||||
ExtendedPoint(FieldElement32x4([
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ use curve_models::window::LookupTable;
|
|||
use traits::Identity;
|
||||
|
||||
use backend::avx2::field::FieldElement32x4;
|
||||
use backend::avx2::field::P_TIMES_2_MASKED;
|
||||
|
||||
use backend::avx2::field::{A_LANES, B_LANES, C_LANES, D_LANES, ALL_LANES};
|
||||
|
||||
|
|
@ -212,7 +211,7 @@ impl ExtendedPoint {
|
|||
let S3_2: u32x8 = _mm256_blend_epi32(zero, (t1.0[i] + t1.0[i]).into(), 0b01010000).into();
|
||||
// tmp0 = (0 0 2*S3 -S4)
|
||||
let tmp0: u32x8 = _mm256_blend_epi32(S3_2.into(), t1.0[i].into(), 0b10100000).into();
|
||||
t0.0[i] = (P_TIMES_2_MASKED.0[i] + tmp0) + S1;
|
||||
t0.0[i] = (avx2::constants::P_TIMES_2_MASKED.0[i] + tmp0) + S1;
|
||||
t0.0[i] = t0.0[i] + _mm256_blend_epi32(zero, S2.into(), 0b10100101).into();
|
||||
t0.0[i] = t0.0[i] - _mm256_blend_epi32(S2.into(), zero, 0b10100101).into();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,23 +26,7 @@ use stdsimd::simd::{u32x8, i32x8, u64x4};
|
|||
|
||||
use backend::u64::field::FieldElement64;
|
||||
|
||||
pub(crate) static P_TIMES_2_LO: u32x8 =
|
||||
u32x8::new(67108845 << 1, 67108845 << 1, 33554431 << 1, 33554431 << 1, 67108845 << 1, 67108845 << 1, 33554431 << 1, 33554431 << 1);
|
||||
pub(crate) static P_TIMES_2_HI: u32x8 =
|
||||
u32x8::new(67108863 << 1, 67108863 << 1, 33554431 << 1, 33554431 << 1, 67108863 << 1, 67108863 << 1, 33554431 << 1, 33554431 << 1);
|
||||
|
||||
pub(crate) static P_TIMES_16_LO: u32x8 =
|
||||
u32x8::new(67108845 << 4, 67108845 << 4, 33554431 << 4, 33554431 << 4, 67108845 << 4, 67108845 << 4, 33554431 << 4, 33554431 << 4);
|
||||
pub(crate) static P_TIMES_16_HI: u32x8 =
|
||||
u32x8::new(67108863 << 4, 67108863 << 4, 33554431 << 4, 33554431 << 4, 67108863 << 4, 67108863 << 4, 33554431 << 4, 33554431 << 4);
|
||||
|
||||
pub(crate) static P_TIMES_2_MASKED: FieldElement32x4 = FieldElement32x4([
|
||||
u32x8::new( 0, 134217690, 0, 67108862, 134217690, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0),
|
||||
u32x8::new( 0, 134217726, 0, 67108862, 134217726, 0, 67108862, 0)
|
||||
]);
|
||||
use backend::avx2::constants::{P_TIMES_2_LO, P_TIMES_2_HI, P_TIMES_16_LO, P_TIMES_16_HI};
|
||||
|
||||
/// A vector of four `FieldElements`, implemented using AVX2.
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue