summaryrefslogtreecommitdiff
path: root/nacl/crypto_scalarmult/curve25519/athlon/mult.s
diff options
context:
space:
mode:
Diffstat (limited to 'nacl/crypto_scalarmult/curve25519/athlon/mult.s')
-rw-r--r--nacl/crypto_scalarmult/curve25519/athlon/mult.s410
1 files changed, 410 insertions, 0 deletions
diff --git a/nacl/crypto_scalarmult/curve25519/athlon/mult.s b/nacl/crypto_scalarmult/curve25519/athlon/mult.s
new file mode 100644
index 00000000..16f0e908
--- /dev/null
+++ b/nacl/crypto_scalarmult/curve25519/athlon/mult.s
@@ -0,0 +1,410 @@
1.text
2.p2align 5
3.globl _crypto_scalarmult_curve25519_athlon_mult
4.globl crypto_scalarmult_curve25519_athlon_mult
5_crypto_scalarmult_curve25519_athlon_mult:
6crypto_scalarmult_curve25519_athlon_mult:
7mov %esp,%eax
8and $31,%eax
9add $32,%eax
10sub %eax,%esp
11movl %ebp,0(%esp)
12movl 4(%esp,%eax),%ecx
13movl 8(%esp,%eax),%edx
14movl 12(%esp,%eax),%ebp
15fldl 72(%edx)
16fmull 72(%ebp)
17fmull crypto_scalarmult_curve25519_athlon_scale
18fldl 0(%edx)
19fmull 64(%ebp)
20faddp %st(0),%st(1)
21fldl 8(%edx)
22fmull 56(%ebp)
23faddp %st(0),%st(1)
24fldl 0(%edx)
25fmull 72(%ebp)
26fldl 16(%edx)
27fmull 48(%ebp)
28faddp %st(0),%st(2)
29fldl 8(%edx)
30fmull 64(%ebp)
31faddp %st(0),%st(1)
32fldl 24(%edx)
33fmull 40(%ebp)
34faddp %st(0),%st(2)
35fldl 16(%edx)
36fmull 56(%ebp)
37faddp %st(0),%st(1)
38fldl 32(%edx)
39fmull 32(%ebp)
40faddp %st(0),%st(2)
41fldl 24(%edx)
42fmull 48(%ebp)
43faddp %st(0),%st(1)
44fldl 8(%edx)
45fmull 72(%ebp)
46fldl 40(%edx)
47fmull 24(%ebp)
48faddp %st(0),%st(3)
49fldl 32(%edx)
50fmull 40(%ebp)
51faddp %st(0),%st(2)
52fldl 16(%edx)
53fmull 64(%ebp)
54faddp %st(0),%st(1)
55fldl 48(%edx)
56fmull 16(%ebp)
57faddp %st(0),%st(3)
58fldl 40(%edx)
59fmull 32(%ebp)
60faddp %st(0),%st(2)
61fldl 24(%edx)
62fmull 56(%ebp)
63faddp %st(0),%st(1)
64fldl 56(%edx)
65fmull 8(%ebp)
66faddp %st(0),%st(3)
67fldl 48(%edx)
68fmull 24(%ebp)
69faddp %st(0),%st(2)
70fldl 32(%edx)
71fmull 48(%ebp)
72faddp %st(0),%st(1)
73fldl 64(%edx)
74fmull 0(%ebp)
75faddp %st(0),%st(3)
76fldl 56(%edx)
77fmull 16(%ebp)
78faddp %st(0),%st(2)
79fldl 40(%edx)
80fmull 40(%ebp)
81faddp %st(0),%st(1)
82fldl 16(%edx)
83fmull 72(%ebp)
84fldl 48(%edx)
85fmull 32(%ebp)
86faddp %st(0),%st(2)
87fldl 64(%edx)
88fmull 8(%ebp)
89faddp %st(0),%st(3)
90fldl crypto_scalarmult_curve25519_athlon_alpha230
91fadd %st(4),%st(0)
92fldl 24(%edx)
93fmull 64(%ebp)
94faddp %st(0),%st(2)
95fldl 56(%edx)
96fmull 24(%ebp)
97faddp %st(0),%st(3)
98fldl 72(%edx)
99fmull 0(%ebp)
100faddp %st(0),%st(4)
101fsubl crypto_scalarmult_curve25519_athlon_alpha230
102fldl 32(%edx)
103fmull 56(%ebp)
104faddp %st(0),%st(2)
105fldl 24(%edx)
106fmull 72(%ebp)
107fldl 64(%edx)
108fmull 16(%ebp)
109faddp %st(0),%st(4)
110fxch %st(1)
111fadd %st(0),%st(4)
112fldl 40(%edx)
113fmull 48(%ebp)
114faddp %st(0),%st(3)
115fldl 32(%edx)
116fmull 64(%ebp)
117faddp %st(0),%st(2)
118fsubrp %st(0),%st(5)
119fldl crypto_scalarmult_curve25519_athlon_alpha255
120fadd %st(4),%st(0)
121fldl 48(%edx)
122fmull 40(%ebp)
123faddp %st(0),%st(3)
124fldl 40(%edx)
125fmull 56(%ebp)
126faddp %st(0),%st(2)
127fldl 72(%edx)
128fmull 8(%ebp)
129faddp %st(0),%st(4)
130fsubl crypto_scalarmult_curve25519_athlon_alpha255
131fldl 56(%edx)
132fmull 32(%ebp)
133faddp %st(0),%st(3)
134fldl 32(%edx)
135fmull 72(%ebp)
136fldl 48(%edx)
137fmull 48(%ebp)
138faddp %st(0),%st(3)
139fldl 64(%edx)
140fmull 24(%ebp)
141faddp %st(0),%st(4)
142fxch %st(1)
143fadd %st(0),%st(4)
144fsubrp %st(0),%st(5)
145fxch %st(5)
146fstpl 64(%ecx)
147fldl 40(%edx)
148fmull 64(%ebp)
149faddp %st(0),%st(5)
150fldl 56(%edx)
151fmull 40(%ebp)
152faddp %st(0),%st(1)
153fldl 72(%edx)
154fmull 16(%ebp)
155faddp %st(0),%st(2)
156fxch %st(2)
157fmull crypto_scalarmult_curve25519_athlon_scale
158fldl 48(%edx)
159fmull 56(%ebp)
160faddp %st(0),%st(5)
161fldl 64(%edx)
162fmull 32(%ebp)
163faddp %st(0),%st(3)
164fxch %st(1)
165fmull crypto_scalarmult_curve25519_athlon_scale
166fldl 0(%edx)
167fmull 0(%ebp)
168faddp %st(0),%st(2)
169fxch %st(3)
170fstpl 72(%ecx)
171fldl 40(%edx)
172fmull 72(%ebp)
173fldl 56(%edx)
174fmull 48(%ebp)
175faddp %st(0),%st(5)
176fldl 72(%edx)
177fmull 24(%ebp)
178faddp %st(0),%st(3)
179fldl 0(%edx)
180fmull 8(%ebp)
181faddp %st(0),%st(4)
182fldl crypto_scalarmult_curve25519_athlon_alpha26
183fadd %st(2),%st(0)
184fldl 48(%edx)
185fmull 64(%ebp)
186faddp %st(0),%st(2)
187fldl 64(%edx)
188fmull 40(%ebp)
189faddp %st(0),%st(6)
190fxch %st(3)
191fmull crypto_scalarmult_curve25519_athlon_scale
192fldl 8(%edx)
193fmull 0(%ebp)
194faddp %st(0),%st(5)
195fxch %st(3)
196fsubl crypto_scalarmult_curve25519_athlon_alpha26
197fldl 56(%edx)
198fmull 56(%ebp)
199faddp %st(0),%st(2)
200fldl 72(%edx)
201fmull 32(%ebp)
202faddp %st(0),%st(6)
203fldl 0(%edx)
204fmull 16(%ebp)
205faddp %st(0),%st(4)
206fadd %st(0),%st(4)
207fsubrp %st(0),%st(2)
208fldl 48(%edx)
209fmull 72(%ebp)
210fldl 64(%edx)
211fmull 48(%ebp)
212faddp %st(0),%st(2)
213fxch %st(5)
214fmull crypto_scalarmult_curve25519_athlon_scale
215fldl 8(%edx)
216fmull 8(%ebp)
217faddp %st(0),%st(4)
218fldl crypto_scalarmult_curve25519_athlon_alpha51
219fadd %st(5),%st(0)
220fldl 56(%edx)
221fmull 64(%ebp)
222faddp %st(0),%st(7)
223fldl 72(%edx)
224fmull 40(%ebp)
225faddp %st(0),%st(3)
226fldl 0(%edx)
227fmull 24(%ebp)
228faddp %st(0),%st(2)
229fldl 16(%edx)
230fmull 0(%ebp)
231faddp %st(0),%st(5)
232fsubl crypto_scalarmult_curve25519_athlon_alpha51
233fxch %st(3)
234fstpl 0(%ecx)
235fldl 64(%edx)
236fmull 56(%ebp)
237faddp %st(0),%st(6)
238fxch %st(1)
239fmull crypto_scalarmult_curve25519_athlon_scale
240fldl 8(%edx)
241fmull 16(%ebp)
242faddp %st(0),%st(2)
243fxch %st(2)
244fadd %st(0),%st(3)
245fsubrp %st(0),%st(4)
246fldl 56(%edx)
247fmull 72(%ebp)
248fldl 72(%edx)
249fmull 48(%ebp)
250faddp %st(0),%st(6)
251fldl 0(%edx)
252fmull 32(%ebp)
253faddp %st(0),%st(3)
254fldl 16(%edx)
255fmull 8(%ebp)
256faddp %st(0),%st(2)
257fldl crypto_scalarmult_curve25519_athlon_alpha77
258fadd %st(4),%st(0)
259fldl 64(%edx)
260fmull 64(%ebp)
261faddp %st(0),%st(2)
262fxch %st(6)
263fmull crypto_scalarmult_curve25519_athlon_scale
264fldl 8(%edx)
265fmull 24(%ebp)
266faddp %st(0),%st(4)
267fldl 24(%edx)
268fmull 0(%ebp)
269faddp %st(0),%st(3)
270fxch %st(6)
271fsubl crypto_scalarmult_curve25519_athlon_alpha77
272fxch %st(5)
273fstpl 8(%ecx)
274fldl 72(%edx)
275fmull 56(%ebp)
276faddp %st(0),%st(1)
277fldl 0(%edx)
278fmull 40(%ebp)
279faddp %st(0),%st(6)
280fldl 16(%edx)
281fmull 16(%ebp)
282faddp %st(0),%st(3)
283fxch %st(4)
284fadd %st(0),%st(1)
285fsubrp %st(0),%st(3)
286fldl 64(%edx)
287fmull 72(%ebp)
288fxch %st(4)
289fmull crypto_scalarmult_curve25519_athlon_scale
290fldl 8(%edx)
291fmull 32(%ebp)
292faddp %st(0),%st(6)
293fldl 24(%edx)
294fmull 8(%ebp)
295faddp %st(0),%st(3)
296fldl crypto_scalarmult_curve25519_athlon_alpha102
297fadd %st(2),%st(0)
298fldl 72(%edx)
299fmull 64(%ebp)
300faddp %st(0),%st(6)
301fldl 0(%edx)
302fmull 48(%ebp)
303faddp %st(0),%st(2)
304fldl 16(%edx)
305fmull 24(%ebp)
306faddp %st(0),%st(7)
307fldl 32(%edx)
308fmull 0(%ebp)
309faddp %st(0),%st(4)
310fsubl crypto_scalarmult_curve25519_athlon_alpha102
311fxch %st(4)
312fstpl 16(%ecx)
313fxch %st(4)
314fmull crypto_scalarmult_curve25519_athlon_scale
315fldl 8(%edx)
316fmull 40(%ebp)
317faddp %st(0),%st(5)
318fldl 24(%edx)
319fmull 16(%ebp)
320faddp %st(0),%st(6)
321fxch %st(3)
322fadd %st(0),%st(2)
323fsubrp %st(0),%st(1)
324fldl 0(%edx)
325fmull 56(%ebp)
326faddp %st(0),%st(3)
327fldl 16(%edx)
328fmull 32(%ebp)
329faddp %st(0),%st(4)
330fldl 32(%edx)
331fmull 8(%ebp)
332faddp %st(0),%st(5)
333fldl crypto_scalarmult_curve25519_athlon_alpha128
334fadd %st(2),%st(0)
335fldl 8(%edx)
336fmull 48(%ebp)
337faddp %st(0),%st(4)
338fldl 24(%edx)
339fmull 24(%ebp)
340faddp %st(0),%st(5)
341fldl 40(%edx)
342fmull 0(%ebp)
343faddp %st(0),%st(6)
344fsubl crypto_scalarmult_curve25519_athlon_alpha128
345fxch %st(1)
346fstpl 24(%ecx)
347fldl 16(%edx)
348fmull 40(%ebp)
349faddp %st(0),%st(3)
350fldl 32(%edx)
351fmull 16(%ebp)
352faddp %st(0),%st(4)
353fadd %st(0),%st(4)
354fsubrp %st(0),%st(1)
355fstpl 32(%ecx)
356fldl 24(%edx)
357fmull 32(%ebp)
358faddp %st(0),%st(1)
359fldl 40(%edx)
360fmull 8(%ebp)
361faddp %st(0),%st(2)
362fldl crypto_scalarmult_curve25519_athlon_alpha153
363fadd %st(3),%st(0)
364fldl 32(%edx)
365fmull 24(%ebp)
366faddp %st(0),%st(2)
367fldl 48(%edx)
368fmull 0(%ebp)
369faddp %st(0),%st(3)
370fsubl crypto_scalarmult_curve25519_athlon_alpha153
371fldl 40(%edx)
372fmull 16(%ebp)
373faddp %st(0),%st(2)
374fadd %st(0),%st(2)
375fsubrp %st(0),%st(3)
376fxch %st(2)
377fstpl 40(%ecx)
378fldl 48(%edx)
379fmull 8(%ebp)
380faddp %st(0),%st(2)
381fldl crypto_scalarmult_curve25519_athlon_alpha179
382fadd %st(1),%st(0)
383fldl 56(%edx)
384fmull 0(%ebp)
385faddp %st(0),%st(3)
386fsubl crypto_scalarmult_curve25519_athlon_alpha179
387fldl 64(%ecx)
388fldl 72(%ecx)
389fxch %st(2)
390fadd %st(0),%st(4)
391fsubrp %st(0),%st(3)
392fldl crypto_scalarmult_curve25519_athlon_alpha204
393fadd %st(4),%st(0)
394fsubl crypto_scalarmult_curve25519_athlon_alpha204
395fadd %st(0),%st(1)
396fsubrp %st(0),%st(4)
397fldl crypto_scalarmult_curve25519_athlon_alpha230
398fadd %st(1),%st(0)
399fsubl crypto_scalarmult_curve25519_athlon_alpha230
400fsubr %st(0),%st(1)
401faddp %st(0),%st(2)
402fxch %st(2)
403fstpl 48(%ecx)
404fxch %st(2)
405fstpl 56(%ecx)
406fstpl 64(%ecx)
407fstpl 72(%ecx)
408movl 0(%esp),%ebp
409add %eax,%esp
410ret