main
Raw Download raw file
  1#define ladderStepLeg          \
  2    addSub(x2,z2)              \
  3    addSub(x3,z3)              \
  4    integerMulLeg(b0,x2,z3)    \
  5    integerMulLeg(b1,x3,z2)    \
  6    reduceFromDoubleLeg(t0,b0) \
  7    reduceFromDoubleLeg(t1,b1) \
  8    addSub(t0,t1)              \
  9    cselect(x2,x3,regMove)     \
 10    cselect(z2,z3,regMove)     \
 11    integerSqrLeg(b0,t0)       \
 12    integerSqrLeg(b1,t1)       \
 13    reduceFromDoubleLeg(x3,b0) \
 14    reduceFromDoubleLeg(z3,b1) \
 15    integerMulLeg(b0,x1,z3)    \
 16    reduceFromDoubleLeg(z3,b0) \
 17    integerSqrLeg(b0,x2)       \
 18    integerSqrLeg(b1,z2)       \
 19    reduceFromDoubleLeg(x2,b0) \
 20    reduceFromDoubleLeg(z2,b1) \
 21    subtraction(t0,x2,z2)      \
 22    multiplyA24Leg(t1,t0)      \
 23    additionLeg(t1,t1,z2)      \
 24    integerMulLeg(b0,x2,z2)    \
 25    integerMulLeg(b1,t0,t1)    \
 26    reduceFromDoubleLeg(x2,b0) \
 27    reduceFromDoubleLeg(z2,b1)
 28
 29#define ladderStepBmi2Adx      \
 30    addSub(x2,z2)              \
 31    addSub(x3,z3)              \
 32    integerMulAdx(b0,x2,z3)    \
 33    integerMulAdx(b1,x3,z2)    \
 34    reduceFromDoubleAdx(t0,b0) \
 35    reduceFromDoubleAdx(t1,b1) \
 36    addSub(t0,t1)              \
 37    cselect(x2,x3,regMove)     \
 38    cselect(z2,z3,regMove)     \
 39    integerSqrAdx(b0,t0)       \
 40    integerSqrAdx(b1,t1)       \
 41    reduceFromDoubleAdx(x3,b0) \
 42    reduceFromDoubleAdx(z3,b1) \
 43    integerMulAdx(b0,x1,z3)    \
 44    reduceFromDoubleAdx(z3,b0) \
 45    integerSqrAdx(b0,x2)       \
 46    integerSqrAdx(b1,z2)       \
 47    reduceFromDoubleAdx(x2,b0) \
 48    reduceFromDoubleAdx(z2,b1) \
 49    subtraction(t0,x2,z2)      \
 50    multiplyA24Adx(t1,t0)      \
 51    additionAdx(t1,t1,z2)      \
 52    integerMulAdx(b0,x2,z2)    \
 53    integerMulAdx(b1,t0,t1)    \
 54    reduceFromDoubleAdx(x2,b0) \
 55    reduceFromDoubleAdx(z2,b1)
 56
 57#define difAddLeg              \
 58    addSub(x1,z1)              \
 59    integerMulLeg(b0,z1,ui)    \
 60    reduceFromDoubleLeg(z1,b0) \
 61    addSub(x1,z1)              \
 62    integerSqrLeg(b0,x1)       \
 63    integerSqrLeg(b1,z1)       \
 64    reduceFromDoubleLeg(x1,b0) \
 65    reduceFromDoubleLeg(z1,b1) \
 66    integerMulLeg(b0,x1,z2)    \
 67    integerMulLeg(b1,z1,x2)    \
 68    reduceFromDoubleLeg(x1,b0) \
 69    reduceFromDoubleLeg(z1,b1)
 70
 71#define difAddBmi2Adx          \
 72    addSub(x1,z1)              \
 73    integerMulAdx(b0,z1,ui)    \
 74    reduceFromDoubleAdx(z1,b0) \
 75    addSub(x1,z1)              \
 76    integerSqrAdx(b0,x1)       \
 77    integerSqrAdx(b1,z1)       \
 78    reduceFromDoubleAdx(x1,b0) \
 79    reduceFromDoubleAdx(z1,b1) \
 80    integerMulAdx(b0,x1,z2)    \
 81    integerMulAdx(b1,z1,x2)    \
 82    reduceFromDoubleAdx(x1,b0) \
 83    reduceFromDoubleAdx(z1,b1)
 84
 85#define doubleLeg              \
 86    addSub(x1,z1)              \
 87    integerSqrLeg(b0,x1)       \
 88    integerSqrLeg(b1,z1)       \
 89    reduceFromDoubleLeg(x1,b0) \
 90    reduceFromDoubleLeg(z1,b1) \
 91    subtraction(t0,x1,z1)      \
 92    multiplyA24Leg(t1,t0)      \
 93    additionLeg(t1,t1,z1)      \
 94    integerMulLeg(b0,x1,z1)    \
 95    integerMulLeg(b1,t0,t1)    \
 96    reduceFromDoubleLeg(x1,b0) \
 97    reduceFromDoubleLeg(z1,b1)
 98
 99#define doubleBmi2Adx          \
100    addSub(x1,z1)              \
101    integerSqrAdx(b0,x1)       \
102    integerSqrAdx(b1,z1)       \
103    reduceFromDoubleAdx(x1,b0) \
104    reduceFromDoubleAdx(z1,b1) \
105    subtraction(t0,x1,z1)      \
106    multiplyA24Adx(t1,t0)      \
107    additionAdx(t1,t1,z1)      \
108    integerMulAdx(b0,x1,z1)    \
109    integerMulAdx(b1,t0,t1)    \
110    reduceFromDoubleAdx(x1,b0) \
111    reduceFromDoubleAdx(z1,b1)