mirror of https://github.com/cheat/cheat.git
112 lines
3.4 KiB
C
112 lines
3.4 KiB
C
|
#define ladderStepLeg \
|
||
|
addSub(x2,z2) \
|
||
|
addSub(x3,z3) \
|
||
|
integerMulLeg(b0,x2,z3) \
|
||
|
integerMulLeg(b1,x3,z2) \
|
||
|
reduceFromDoubleLeg(t0,b0) \
|
||
|
reduceFromDoubleLeg(t1,b1) \
|
||
|
addSub(t0,t1) \
|
||
|
cselect(x2,x3,regMove) \
|
||
|
cselect(z2,z3,regMove) \
|
||
|
integerSqrLeg(b0,t0) \
|
||
|
integerSqrLeg(b1,t1) \
|
||
|
reduceFromDoubleLeg(x3,b0) \
|
||
|
reduceFromDoubleLeg(z3,b1) \
|
||
|
integerMulLeg(b0,x1,z3) \
|
||
|
reduceFromDoubleLeg(z3,b0) \
|
||
|
integerSqrLeg(b0,x2) \
|
||
|
integerSqrLeg(b1,z2) \
|
||
|
reduceFromDoubleLeg(x2,b0) \
|
||
|
reduceFromDoubleLeg(z2,b1) \
|
||
|
subtraction(t0,x2,z2) \
|
||
|
multiplyA24Leg(t1,t0) \
|
||
|
additionLeg(t1,t1,z2) \
|
||
|
integerMulLeg(b0,x2,z2) \
|
||
|
integerMulLeg(b1,t0,t1) \
|
||
|
reduceFromDoubleLeg(x2,b0) \
|
||
|
reduceFromDoubleLeg(z2,b1)
|
||
|
|
||
|
#define ladderStepBmi2Adx \
|
||
|
addSub(x2,z2) \
|
||
|
addSub(x3,z3) \
|
||
|
integerMulAdx(b0,x2,z3) \
|
||
|
integerMulAdx(b1,x3,z2) \
|
||
|
reduceFromDoubleAdx(t0,b0) \
|
||
|
reduceFromDoubleAdx(t1,b1) \
|
||
|
addSub(t0,t1) \
|
||
|
cselect(x2,x3,regMove) \
|
||
|
cselect(z2,z3,regMove) \
|
||
|
integerSqrAdx(b0,t0) \
|
||
|
integerSqrAdx(b1,t1) \
|
||
|
reduceFromDoubleAdx(x3,b0) \
|
||
|
reduceFromDoubleAdx(z3,b1) \
|
||
|
integerMulAdx(b0,x1,z3) \
|
||
|
reduceFromDoubleAdx(z3,b0) \
|
||
|
integerSqrAdx(b0,x2) \
|
||
|
integerSqrAdx(b1,z2) \
|
||
|
reduceFromDoubleAdx(x2,b0) \
|
||
|
reduceFromDoubleAdx(z2,b1) \
|
||
|
subtraction(t0,x2,z2) \
|
||
|
multiplyA24Adx(t1,t0) \
|
||
|
additionAdx(t1,t1,z2) \
|
||
|
integerMulAdx(b0,x2,z2) \
|
||
|
integerMulAdx(b1,t0,t1) \
|
||
|
reduceFromDoubleAdx(x2,b0) \
|
||
|
reduceFromDoubleAdx(z2,b1)
|
||
|
|
||
|
#define difAddLeg \
|
||
|
addSub(x1,z1) \
|
||
|
integerMulLeg(b0,z1,ui) \
|
||
|
reduceFromDoubleLeg(z1,b0) \
|
||
|
addSub(x1,z1) \
|
||
|
integerSqrLeg(b0,x1) \
|
||
|
integerSqrLeg(b1,z1) \
|
||
|
reduceFromDoubleLeg(x1,b0) \
|
||
|
reduceFromDoubleLeg(z1,b1) \
|
||
|
integerMulLeg(b0,x1,z2) \
|
||
|
integerMulLeg(b1,z1,x2) \
|
||
|
reduceFromDoubleLeg(x1,b0) \
|
||
|
reduceFromDoubleLeg(z1,b1)
|
||
|
|
||
|
#define difAddBmi2Adx \
|
||
|
addSub(x1,z1) \
|
||
|
integerMulAdx(b0,z1,ui) \
|
||
|
reduceFromDoubleAdx(z1,b0) \
|
||
|
addSub(x1,z1) \
|
||
|
integerSqrAdx(b0,x1) \
|
||
|
integerSqrAdx(b1,z1) \
|
||
|
reduceFromDoubleAdx(x1,b0) \
|
||
|
reduceFromDoubleAdx(z1,b1) \
|
||
|
integerMulAdx(b0,x1,z2) \
|
||
|
integerMulAdx(b1,z1,x2) \
|
||
|
reduceFromDoubleAdx(x1,b0) \
|
||
|
reduceFromDoubleAdx(z1,b1)
|
||
|
|
||
|
#define doubleLeg \
|
||
|
addSub(x1,z1) \
|
||
|
integerSqrLeg(b0,x1) \
|
||
|
integerSqrLeg(b1,z1) \
|
||
|
reduceFromDoubleLeg(x1,b0) \
|
||
|
reduceFromDoubleLeg(z1,b1) \
|
||
|
subtraction(t0,x1,z1) \
|
||
|
multiplyA24Leg(t1,t0) \
|
||
|
additionLeg(t1,t1,z1) \
|
||
|
integerMulLeg(b0,x1,z1) \
|
||
|
integerMulLeg(b1,t0,t1) \
|
||
|
reduceFromDoubleLeg(x1,b0) \
|
||
|
reduceFromDoubleLeg(z1,b1)
|
||
|
|
||
|
#define doubleBmi2Adx \
|
||
|
addSub(x1,z1) \
|
||
|
integerSqrAdx(b0,x1) \
|
||
|
integerSqrAdx(b1,z1) \
|
||
|
reduceFromDoubleAdx(x1,b0) \
|
||
|
reduceFromDoubleAdx(z1,b1) \
|
||
|
subtraction(t0,x1,z1) \
|
||
|
multiplyA24Adx(t1,t0) \
|
||
|
additionAdx(t1,t1,z1) \
|
||
|
integerMulAdx(b0,x1,z1) \
|
||
|
integerMulAdx(b1,t0,t1) \
|
||
|
reduceFromDoubleAdx(x1,b0) \
|
||
|
reduceFromDoubleAdx(z1,b1)
|