summaryrefslogtreecommitdiff
path: root/nacl/crypto_scalarmult/curve25519/athlon/todouble.s
diff options
context:
space:
mode:
Diffstat (limited to 'nacl/crypto_scalarmult/curve25519/athlon/todouble.s')
-rw-r--r--nacl/crypto_scalarmult/curve25519/athlon/todouble.s144
1 files changed, 144 insertions, 0 deletions
diff --git a/nacl/crypto_scalarmult/curve25519/athlon/todouble.s b/nacl/crypto_scalarmult/curve25519/athlon/todouble.s
new file mode 100644
index 00000000..c37aa447
--- /dev/null
+++ b/nacl/crypto_scalarmult/curve25519/athlon/todouble.s
@@ -0,0 +1,144 @@
1.text
2.p2align 5
3.globl _crypto_scalarmult_curve25519_athlon_todouble
4.globl crypto_scalarmult_curve25519_athlon_todouble
5_crypto_scalarmult_curve25519_athlon_todouble:
6crypto_scalarmult_curve25519_athlon_todouble:
7mov %esp,%eax
8and $31,%eax
9add $96,%eax
10sub %eax,%esp
11movl 8(%esp,%eax),%ecx
12movl 0(%ecx),%edx
13movl $0x43300000,4(%esp)
14movl %edx,0(%esp)
15movl 4(%ecx),%edx
16and $0xffffff,%edx
17movl $0x45300000,12(%esp)
18movl %edx,8(%esp)
19movl 7(%ecx),%edx
20and $0xffffff,%edx
21movl $0x46b00000,20(%esp)
22movl %edx,16(%esp)
23movl 10(%ecx),%edx
24and $0xffffff,%edx
25movl $0x48300000,28(%esp)
26movl %edx,24(%esp)
27movl 13(%ecx),%edx
28and $0xffffff,%edx
29movl $0x49b00000,36(%esp)
30movl %edx,32(%esp)
31movl 16(%ecx),%edx
32movl $0x4b300000,44(%esp)
33movl %edx,40(%esp)
34movl 20(%ecx),%edx
35and $0xffffff,%edx
36movl $0x4d300000,52(%esp)
37movl %edx,48(%esp)
38movl 23(%ecx),%edx
39and $0xffffff,%edx
40movl $0x4eb00000,60(%esp)
41movl %edx,56(%esp)
42movl 26(%ecx),%edx
43and $0xffffff,%edx
44movl $0x50300000,68(%esp)
45movl %edx,64(%esp)
46movl 28(%ecx),%ecx
47shr $8,%ecx
48and $0x7fffff,%ecx
49movl $0x51b00000,76(%esp)
50movl %ecx,72(%esp)
51movl 4(%esp,%eax),%ecx
52fldl 72(%esp)
53fsubl crypto_scalarmult_curve25519_athlon_in9offset
54fldl crypto_scalarmult_curve25519_athlon_alpha255
55fadd %st(1),%st(0)
56fsubl crypto_scalarmult_curve25519_athlon_alpha255
57fsubr %st(0),%st(1)
58fldl 0(%esp)
59fsubl crypto_scalarmult_curve25519_athlon_in0offset
60fxch %st(1)
61fmull crypto_scalarmult_curve25519_athlon_scale
62faddp %st(0),%st(1)
63fldl crypto_scalarmult_curve25519_athlon_alpha26
64fadd %st(1),%st(0)
65fsubl crypto_scalarmult_curve25519_athlon_alpha26
66fsubr %st(0),%st(1)
67fxch %st(1)
68fstpl 0(%ecx)
69fldl 8(%esp)
70fsubl crypto_scalarmult_curve25519_athlon_in1offset
71faddp %st(0),%st(1)
72fldl crypto_scalarmult_curve25519_athlon_alpha51
73fadd %st(1),%st(0)
74fsubl crypto_scalarmult_curve25519_athlon_alpha51
75fsubr %st(0),%st(1)
76fxch %st(1)
77fstpl 8(%ecx)
78fldl 16(%esp)
79fsubl crypto_scalarmult_curve25519_athlon_in2offset
80faddp %st(0),%st(1)
81fldl crypto_scalarmult_curve25519_athlon_alpha77
82fadd %st(1),%st(0)
83fsubl crypto_scalarmult_curve25519_athlon_alpha77
84fsubr %st(0),%st(1)
85fxch %st(1)
86fstpl 16(%ecx)
87fldl 24(%esp)
88fsubl crypto_scalarmult_curve25519_athlon_in3offset
89faddp %st(0),%st(1)
90fldl crypto_scalarmult_curve25519_athlon_alpha102
91fadd %st(1),%st(0)
92fsubl crypto_scalarmult_curve25519_athlon_alpha102
93fsubr %st(0),%st(1)
94fxch %st(1)
95fstpl 24(%ecx)
96fldl 32(%esp)
97fsubl crypto_scalarmult_curve25519_athlon_in4offset
98faddp %st(0),%st(1)
99fldl crypto_scalarmult_curve25519_athlon_alpha128
100fadd %st(1),%st(0)
101fsubl crypto_scalarmult_curve25519_athlon_alpha128
102fsubr %st(0),%st(1)
103fxch %st(1)
104fstpl 32(%ecx)
105fldl 40(%esp)
106fsubl crypto_scalarmult_curve25519_athlon_in5offset
107faddp %st(0),%st(1)
108fldl crypto_scalarmult_curve25519_athlon_alpha153
109fadd %st(1),%st(0)
110fsubl crypto_scalarmult_curve25519_athlon_alpha153
111fsubr %st(0),%st(1)
112fxch %st(1)
113fstpl 40(%ecx)
114fldl 48(%esp)
115fsubl crypto_scalarmult_curve25519_athlon_in6offset
116faddp %st(0),%st(1)
117fldl crypto_scalarmult_curve25519_athlon_alpha179
118fadd %st(1),%st(0)
119fsubl crypto_scalarmult_curve25519_athlon_alpha179
120fsubr %st(0),%st(1)
121fxch %st(1)
122fstpl 48(%ecx)
123fldl 56(%esp)
124fsubl crypto_scalarmult_curve25519_athlon_in7offset
125faddp %st(0),%st(1)
126fldl crypto_scalarmult_curve25519_athlon_alpha204
127fadd %st(1),%st(0)
128fsubl crypto_scalarmult_curve25519_athlon_alpha204
129fsubr %st(0),%st(1)
130fxch %st(1)
131fstpl 56(%ecx)
132fldl 64(%esp)
133fsubl crypto_scalarmult_curve25519_athlon_in8offset
134faddp %st(0),%st(1)
135fldl crypto_scalarmult_curve25519_athlon_alpha230
136fadd %st(1),%st(0)
137fsubl crypto_scalarmult_curve25519_athlon_alpha230
138fsubr %st(0),%st(1)
139fxch %st(1)
140fstpl 64(%ecx)
141faddp %st(0),%st(1)
142fstpl 72(%ecx)
143add %eax,%esp
144ret