summaryrefslogtreecommitdiff
path: root/nacl/crypto_scalarmult/curve25519/athlon/square.s
diff options
context:
space:
mode:
Diffstat (limited to 'nacl/crypto_scalarmult/curve25519/athlon/square.s')
-rw-r--r--nacl/crypto_scalarmult/curve25519/athlon/square.s298
1 files changed, 298 insertions, 0 deletions
diff --git a/nacl/crypto_scalarmult/curve25519/athlon/square.s b/nacl/crypto_scalarmult/curve25519/athlon/square.s
new file mode 100644
index 00000000..754def78
--- /dev/null
+++ b/nacl/crypto_scalarmult/curve25519/athlon/square.s
@@ -0,0 +1,298 @@
1.text
2.p2align 5
3.globl _crypto_scalarmult_curve25519_athlon_square
4.globl crypto_scalarmult_curve25519_athlon_square
5_crypto_scalarmult_curve25519_athlon_square:
6crypto_scalarmult_curve25519_athlon_square:
7mov %esp,%eax
8and $31,%eax
9add $64,%eax
10sub %eax,%esp
11movl 8(%esp,%eax),%edx
12movl 4(%esp,%eax),%ecx
13fldl 72(%edx)
14fmul %st(0),%st(0)
15fldl 0(%edx)
16fadd %st(0),%st(0)
17fldl 8(%edx)
18fadd %st(0),%st(0)
19fldl 16(%edx)
20fadd %st(0),%st(0)
21fldl 56(%edx)
22fxch %st(4)
23fmull crypto_scalarmult_curve25519_athlon_scale
24fldl 72(%edx)
25fmul %st(4),%st(0)
26fldl 64(%edx)
27fmul %st(4),%st(0)
28faddp %st(0),%st(1)
29fxch %st(4)
30fstl 0(%esp)
31fxch %st(3)
32fstl 8(%esp)
33fxch %st(3)
34fmull 64(%edx)
35faddp %st(0),%st(1)
36fldl 48(%edx)
37fxch %st(5)
38fmul %st(0),%st(3)
39fxch %st(3)
40faddp %st(0),%st(1)
41fxch %st(2)
42fadd %st(0),%st(0)
43fldl 56(%edx)
44fmul %st(2),%st(0)
45faddp %st(0),%st(4)
46fxch %st(1)
47fstl 16(%esp)
48fldl 40(%edx)
49fxch %st(5)
50fmul %st(0),%st(1)
51fxch %st(1)
52faddp %st(0),%st(3)
53fadd %st(0),%st(0)
54fstpl 48(%esp)
55fldl 24(%edx)
56fadd %st(0),%st(0)
57fstl 24(%esp)
58fldl 48(%edx)
59fmul %st(1),%st(0)
60faddp %st(0),%st(4)
61fmul %st(4),%st(0)
62faddp %st(0),%st(2)
63fxch %st(3)
64fadd %st(0),%st(0)
65fstpl 40(%esp)
66fldl 32(%edx)
67fmul %st(0),%st(0)
68faddp %st(0),%st(1)
69fldl crypto_scalarmult_curve25519_athlon_alpha230
70fadd %st(1),%st(0)
71fsubl crypto_scalarmult_curve25519_athlon_alpha230
72fsubr %st(0),%st(1)
73fldl 8(%esp)
74fldl 72(%edx)
75fmul %st(0),%st(1)
76fldl 16(%esp)
77fmul %st(0),%st(1)
78fldl 64(%edx)
79fmul %st(0),%st(1)
80fxch %st(1)
81faddp %st(0),%st(3)
82fldl 24(%esp)
83fmul %st(0),%st(1)
84fxch %st(1)
85faddp %st(0),%st(2)
86fldl 32(%edx)
87fadd %st(0),%st(0)
88fstl 32(%esp)
89fmull 40(%edx)
90faddp %st(0),%st(6)
91fxch %st(3)
92faddp %st(0),%st(5)
93fldl crypto_scalarmult_curve25519_athlon_alpha255
94fadd %st(5),%st(0)
95fsubl crypto_scalarmult_curve25519_athlon_alpha255
96fsubr %st(0),%st(5)
97fldl 56(%edx)
98fmul %st(0),%st(4)
99fxch %st(4)
100faddp %st(0),%st(3)
101fldl 32(%esp)
102fmul %st(0),%st(4)
103fxch %st(4)
104faddp %st(0),%st(2)
105fldl 48(%edx)
106fmul %st(0),%st(4)
107fxch %st(4)
108faddp %st(0),%st(3)
109fxch %st(3)
110fmull 40(%esp)
111faddp %st(0),%st(1)
112fxch %st(3)
113fstpl 64(%ecx)
114fldl 40(%edx)
115fmul %st(0),%st(0)
116faddp %st(0),%st(1)
117fxch %st(2)
118fmull crypto_scalarmult_curve25519_athlon_scale
119fxch %st(3)
120fstpl 72(%ecx)
121faddp %st(0),%st(1)
122fmull crypto_scalarmult_curve25519_athlon_scale
123fldl 24(%esp)
124fmull 72(%edx)
125fldl 0(%edx)
126fmul %st(0),%st(0)
127faddp %st(0),%st(2)
128fldl 32(%esp)
129fmull 64(%edx)
130faddp %st(0),%st(1)
131fldl 0(%esp)
132fmull 8(%edx)
133faddp %st(0),%st(3)
134fldl 40(%esp)
135fmull 56(%edx)
136faddp %st(0),%st(1)
137fldl crypto_scalarmult_curve25519_athlon_alpha26
138fadd %st(2),%st(0)
139fsubl crypto_scalarmult_curve25519_athlon_alpha26
140fsubr %st(0),%st(2)
141faddp %st(0),%st(3)
142fldl crypto_scalarmult_curve25519_athlon_alpha51
143fadd %st(3),%st(0)
144fsubl crypto_scalarmult_curve25519_athlon_alpha51
145fsubr %st(0),%st(3)
146fldl 48(%edx)
147fmul %st(0),%st(0)
148faddp %st(0),%st(2)
149fxch %st(1)
150fmull crypto_scalarmult_curve25519_athlon_scale
151fldl 0(%esp)
152fmull 16(%edx)
153faddp %st(0),%st(1)
154fldl 8(%edx)
155fmul %st(0),%st(0)
156faddp %st(0),%st(1)
157faddp %st(0),%st(1)
158fldl crypto_scalarmult_curve25519_athlon_alpha77
159fadd %st(1),%st(0)
160fsubl crypto_scalarmult_curve25519_athlon_alpha77
161fsubr %st(0),%st(1)
162fxch %st(2)
163fstpl 0(%ecx)
164fldl 32(%esp)
165fmull 72(%edx)
166fldl 40(%esp)
167fmull 64(%edx)
168faddp %st(0),%st(1)
169fldl 48(%esp)
170fmull 56(%edx)
171faddp %st(0),%st(1)
172fmull crypto_scalarmult_curve25519_athlon_scale
173fldl 0(%esp)
174fmull 24(%edx)
175faddp %st(0),%st(1)
176fldl 8(%esp)
177fmull 16(%edx)
178faddp %st(0),%st(1)
179faddp %st(0),%st(2)
180fldl crypto_scalarmult_curve25519_athlon_alpha102
181fadd %st(2),%st(0)
182fsubl crypto_scalarmult_curve25519_athlon_alpha102
183fsubr %st(0),%st(2)
184fxch %st(3)
185fstpl 8(%ecx)
186fldl 40(%esp)
187fmull 72(%edx)
188fldl 48(%esp)
189fmull 64(%edx)
190faddp %st(0),%st(1)
191fldl 56(%edx)
192fmul %st(0),%st(0)
193faddp %st(0),%st(1)
194fmull crypto_scalarmult_curve25519_athlon_scale
195fldl 0(%esp)
196fmull 32(%edx)
197faddp %st(0),%st(1)
198fldl 8(%esp)
199fmull 24(%edx)
200faddp %st(0),%st(1)
201fldl 16(%edx)
202fmul %st(0),%st(0)
203faddp %st(0),%st(1)
204faddp %st(0),%st(3)
205fldl crypto_scalarmult_curve25519_athlon_alpha128
206fadd %st(3),%st(0)
207fsubl crypto_scalarmult_curve25519_athlon_alpha128
208fsubr %st(0),%st(3)
209fxch %st(1)
210fstpl 16(%ecx)
211fldl 48(%esp)
212fldl 72(%edx)
213fmul %st(0),%st(1)
214fmul %st(5),%st(0)
215fxch %st(5)
216fmull 64(%edx)
217faddp %st(0),%st(1)
218fmull crypto_scalarmult_curve25519_athlon_scale
219fldl 0(%esp)
220fmull 40(%edx)
221faddp %st(0),%st(1)
222fldl 8(%esp)
223fmull 32(%edx)
224faddp %st(0),%st(1)
225fldl 16(%esp)
226fmull 24(%edx)
227faddp %st(0),%st(1)
228faddp %st(0),%st(1)
229fldl crypto_scalarmult_curve25519_athlon_alpha153
230fadd %st(1),%st(0)
231fsubl crypto_scalarmult_curve25519_athlon_alpha153
232fsubr %st(0),%st(1)
233fxch %st(2)
234fstpl 24(%ecx)
235fldl 64(%edx)
236fmul %st(0),%st(0)
237faddp %st(0),%st(4)
238fxch %st(3)
239fmull crypto_scalarmult_curve25519_athlon_scale
240fldl 0(%esp)
241fmull 48(%edx)
242faddp %st(0),%st(1)
243fldl 8(%esp)
244fmull 40(%edx)
245faddp %st(0),%st(1)
246fldl 16(%esp)
247fmull 32(%edx)
248faddp %st(0),%st(1)
249fldl 24(%edx)
250fmul %st(0),%st(0)
251faddp %st(0),%st(1)
252faddp %st(0),%st(1)
253fldl crypto_scalarmult_curve25519_athlon_alpha179
254fadd %st(1),%st(0)
255fsubl crypto_scalarmult_curve25519_athlon_alpha179
256fsubr %st(0),%st(1)
257fldl 64(%edx)
258fadd %st(0),%st(0)
259fmull 72(%edx)
260fmull crypto_scalarmult_curve25519_athlon_scale
261fldl 0(%esp)
262fmull 56(%edx)
263faddp %st(0),%st(1)
264fldl 8(%esp)
265fmull 48(%edx)
266faddp %st(0),%st(1)
267fldl 16(%esp)
268fmull 40(%edx)
269faddp %st(0),%st(1)
270fldl 24(%esp)
271fmull 32(%edx)
272faddp %st(0),%st(1)
273faddp %st(0),%st(1)
274fldl crypto_scalarmult_curve25519_athlon_alpha204
275fadd %st(1),%st(0)
276fsubl crypto_scalarmult_curve25519_athlon_alpha204
277fsubr %st(0),%st(1)
278fldl 64(%ecx)
279faddp %st(0),%st(1)
280fldl crypto_scalarmult_curve25519_athlon_alpha230
281fadd %st(1),%st(0)
282fldl 72(%ecx)
283fxch %st(1)
284fsubl crypto_scalarmult_curve25519_athlon_alpha230
285fsubr %st(0),%st(2)
286faddp %st(0),%st(1)
287fxch %st(4)
288fstpl 32(%ecx)
289fxch %st(4)
290fstpl 40(%ecx)
291fxch %st(1)
292fstpl 48(%ecx)
293fstpl 56(%ecx)
294fxch %st(1)
295fstpl 64(%ecx)
296fstpl 72(%ecx)
297add %eax,%esp
298ret