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)
View as plain text