Lines Matching refs:limb
130 typedef uint64_t limb;
131 typedef limb limb_aX __attribute((__aligned__(1)));
132 typedef limb felem[NLIMBS];
135 static const limb bottom57bits = 0x1ffffffffffffff;
136 static const limb bottom58bits = 0x3ffffffffffffff;
144 out[0] = (*((limb *) & in[0])) & bottom58bits;
162 (*((limb *) & out[0])) = in[0];
246 static void felem_scalar(felem out, const felem in, limb scalar)
260 static void felem_scalar64(felem out, limb scalar)
274 static void felem_scalar128(largefelem out, limb scalar)
297 static const limb two62m3 = (((limb) 1) << 62) - (((limb) 1) << 5);
298 static const limb two62m2 = (((limb) 1) << 62) - (((limb) 1) << 4);
323 static const limb two62m3 = (((limb) 1) << 62) - (((limb) 1) << 5);
324 static const limb two62m2 = (((limb) 1) << 62) - (((limb) 1) << 4);
354 static const limb two63m6 = (((limb) 1) << 63) - (((limb) 1) << 6);
355 static const limb two63m5 = (((limb) 1) << 63) - (((limb) 1) << 5);
593 static const limb bottom52bits = 0xfffffffffffff;
606 out[0] = ((limb) in[0]) & bottom58bits;
607 out[1] = ((limb) in[1]) & bottom58bits;
608 out[2] = ((limb) in[2]) & bottom58bits;
609 out[3] = ((limb) in[3]) & bottom58bits;
610 out[4] = ((limb) in[4]) & bottom58bits;
611 out[5] = ((limb) in[5]) & bottom58bits;
612 out[6] = ((limb) in[6]) & bottom58bits;
613 out[7] = ((limb) in[7]) & bottom58bits;
614 out[8] = ((limb) in[8]) & bottom58bits;
618 out[1] += ((limb) in[0]) >> 58;
619 out[1] += (((limb) (in[0] >> 64)) & bottom52bits) << 6;
624 out[2] += ((limb) (in[0] >> 64)) >> 52;
626 out[2] += ((limb) in[1]) >> 58;
627 out[2] += (((limb) (in[1] >> 64)) & bottom52bits) << 6;
628 out[3] += ((limb) (in[1] >> 64)) >> 52;
630 out[3] += ((limb) in[2]) >> 58;
631 out[3] += (((limb) (in[2] >> 64)) & bottom52bits) << 6;
632 out[4] += ((limb) (in[2] >> 64)) >> 52;
634 out[4] += ((limb) in[3]) >> 58;
635 out[4] += (((limb) (in[3] >> 64)) & bottom52bits) << 6;
636 out[5] += ((limb) (in[3] >> 64)) >> 52;
638 out[5] += ((limb) in[4]) >> 58;
639 out[5] += (((limb) (in[4] >> 64)) & bottom52bits) << 6;
640 out[6] += ((limb) (in[4] >> 64)) >> 52;
642 out[6] += ((limb) in[5]) >> 58;
643 out[6] += (((limb) (in[5] >> 64)) & bottom52bits) << 6;
644 out[7] += ((limb) (in[5] >> 64)) >> 52;
646 out[7] += ((limb) in[6]) >> 58;
647 out[7] += (((limb) (in[6] >> 64)) & bottom52bits) << 6;
648 out[8] += ((limb) (in[6] >> 64)) >> 52;
650 out[8] += ((limb) in[7]) >> 58;
651 out[8] += (((limb) (in[7] >> 64)) & bottom52bits) << 6;
656 overflow1 = ((limb) (in[7] >> 64)) >> 52;
658 overflow1 += ((limb) in[8]) >> 58;
659 overflow1 += (((limb) (in[8] >> 64)) & bottom52bits) << 6;
660 overflow2 = ((limb) (in[8] >> 64)) >> 52;
812 static limb felem_is_zero(const felem in)
815 limb is_zero, is_p;
882 return (int)(felem_is_zero(in) & ((limb) 1));
892 limb is_p, is_greater, sign;
893 static const limb two58 = ((limb) 1) << 58;
1134 static void copy_conditional(felem out, const felem in, limb mask)
1138 const limb tmp = mask & (in[i] ^ out[i]);
1161 limb x_equal, y_equal, z1_is_zero, z2_is_zero;
1162 limb points_equal;
1494 static void select_point(const limb idx, unsigned int size,
1498 limb *outlimbs = &out[0][0];
1503 const limb *inlimbs = &pre_comp[i][0][0];
1504 limb mask = i ^ idx;
1539 limb bits;
1595 copy_conditional(tmp[1], tmp[3], (-(limb) sign));