option to use big-endian sorting for intfilter binsearch case
[mkp224o.git] / ed25519 / ref10 / ge_msub.q
blobe3cadd882dd448fa80208ff9889a3c448bc01cb7
1 :name:fe:r->X:r->Y:r->Z:r->T:t0:t1:t2:t3:t4:t5:p->X:p->Y:p->Z:p->T:q->yplusx:q->yminusx:q->xy2d:
2 fe r:var/r=fe:
4 enter f:enter/f:>X1=fe#11:>Y1=fe#12:>Z1=fe#13:>T1=fe#14:>ypx2=fe#15:>ymx2=fe#16:>xy2d2=fe#17:
5 return:nofallthrough:<X3=fe#1:<Y3=fe#2:<Z3=fe#3:<T3=fe#4:leave:
7 h=f+g:<f=fe:<g=fe:>h=fe:asm/fe_add(>h,<f,<g);:
8 h=f-g:<f=fe:<g=fe:>h=fe:asm/fe_sub(>h,<f,<g);:
9 h=f*g:<f=fe:<g=fe:>h=fe:asm/fe_mul(>h,<f,<g);:
10 h=f^2:<f=fe:>h=fe:asm/fe_sq(>h,<f);:
11 h=2*g:<g=fe:>h=fe:asm/fe_add(>h,<g,<g);:
15 enter ge_msub
17 fe X1
18 fe Y1
19 fe Z1
20 fe T1
21 fe ypx2
22 fe ymx2
23 fe xy2d2
24 fe X3
25 fe Y3
26 fe Z3
27 fe T3
28 fe YpX1
29 fe YmX1
30 fe A
31 fe B
32 fe C
33 fe D
35 YpX1 = Y1+X1
36 YmX1 = Y1-X1
37 A = YpX1*ymx2
38 B = YmX1*ypx2
39 C = xy2d2*T1
40 D = 2*Z1
41 X3 = A-B
42 Y3 = A+B
43 Z3 = D-C
44 T3 = D+C
46 return