summaryrefslogtreecommitdiff
path: root/nacl/crypto_onetimeauth/poly1305/x86
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-07-02 09:53:34 -0400
committerirungentoo <irungentoo@gmail.com>2013-07-02 09:53:34 -0400
commite2967396ac73cb7410787886cdaf072a184ffc49 (patch)
tree527a74d25a4a0705fc641994fd35bfab22662034 /nacl/crypto_onetimeauth/poly1305/x86
parent8928c817df345f29aa0b194743595aa11bd6a8ba (diff)
Added NaCl crypto library.
Diffstat (limited to 'nacl/crypto_onetimeauth/poly1305/x86')
-rw-r--r--nacl/crypto_onetimeauth/poly1305/x86/api.h2
-rw-r--r--nacl/crypto_onetimeauth/poly1305/x86/auth.s2779
-rw-r--r--nacl/crypto_onetimeauth/poly1305/x86/constants.s85
-rw-r--r--nacl/crypto_onetimeauth/poly1305/x86/verify.c9
4 files changed, 2875 insertions, 0 deletions
diff --git a/nacl/crypto_onetimeauth/poly1305/x86/api.h b/nacl/crypto_onetimeauth/poly1305/x86/api.h
new file mode 100644
index 00000000..acc133ed
--- /dev/null
+++ b/nacl/crypto_onetimeauth/poly1305/x86/api.h
@@ -0,0 +1,2 @@
1#define CRYPTO_BYTES 16
2#define CRYPTO_KEYBYTES 32
diff --git a/nacl/crypto_onetimeauth/poly1305/x86/auth.s b/nacl/crypto_onetimeauth/poly1305/x86/auth.s
new file mode 100644
index 00000000..acb8c51c
--- /dev/null
+++ b/nacl/crypto_onetimeauth/poly1305/x86/auth.s
@@ -0,0 +1,2779 @@
1
2# qhasm: stack32 arg_out
3
4# qhasm: stack32 arg_m
5
6# qhasm: stack32 arg_l
7
8# qhasm: stack32 arg_ltop
9
10# qhasm: stack32 arg_k
11
12# qhasm: input arg_out
13
14# qhasm: input arg_m
15
16# qhasm: input arg_l
17
18# qhasm: input arg_ltop
19
20# qhasm: input arg_k
21
22# qhasm: int32 eax
23
24# qhasm: int32 ebx
25
26# qhasm: int32 esi
27
28# qhasm: int32 edi
29
30# qhasm: int32 ebp
31
32# qhasm: caller eax
33
34# qhasm: caller ebx
35
36# qhasm: caller esi
37
38# qhasm: caller edi
39
40# qhasm: caller ebp
41
42# qhasm: stack32 eax_stack
43
44# qhasm: stack32 ebx_stack
45
46# qhasm: stack32 esi_stack
47
48# qhasm: stack32 edi_stack
49
50# qhasm: stack32 ebp_stack
51
52# qhasm: int32 out
53
54# qhasm: stack32 out_stack
55
56# qhasm: int32 k
57
58# qhasm: stack32 k_stack
59
60# qhasm: int32 m
61
62# qhasm: int32 l
63
64# qhasm: int32 m0
65
66# qhasm: int32 m1
67
68# qhasm: int32 m2
69
70# qhasm: int32 m3
71
72# qhasm: float80 a0
73
74# qhasm: float80 a1
75
76# qhasm: float80 a2
77
78# qhasm: float80 a3
79
80# qhasm: float80 h0
81
82# qhasm: float80 h1
83
84# qhasm: float80 h2
85
86# qhasm: float80 h3
87
88# qhasm: float80 x0
89
90# qhasm: float80 x1
91
92# qhasm: float80 x2
93
94# qhasm: float80 x3
95
96# qhasm: float80 y0
97
98# qhasm: float80 y1
99
100# qhasm: float80 y2
101
102# qhasm: float80 y3
103
104# qhasm: float80 r0x0
105
106# qhasm: float80 r1x0
107
108# qhasm: float80 r2x0
109
110# qhasm: float80 r3x0
111
112# qhasm: float80 r0x1
113
114# qhasm: float80 r1x1
115
116# qhasm: float80 r2x1
117
118# qhasm: float80 sr3x1
119
120# qhasm: float80 r0x2
121
122# qhasm: float80 r1x2
123
124# qhasm: float80 sr2x2
125
126# qhasm: float80 sr3x2
127
128# qhasm: float80 r0x3
129
130# qhasm: float80 sr1x3
131
132# qhasm: float80 sr2x3
133
134# qhasm: float80 sr3x3
135
136# qhasm: stack64 d0
137
138# qhasm: stack64 d1
139
140# qhasm: stack64 d2
141
142# qhasm: stack64 d3
143
144# qhasm: stack64 r0
145
146# qhasm: stack64 r1
147
148# qhasm: stack64 r2
149
150# qhasm: stack64 r3
151
152# qhasm: stack64 sr1
153
154# qhasm: stack64 sr2
155
156# qhasm: stack64 sr3
157
158# qhasm: enter crypto_onetimeauth_poly1305_x86 stackaligned4096 crypto_onetimeauth_poly1305_x86_constants
159.text
160.p2align 5
161.globl _crypto_onetimeauth_poly1305_x86
162.globl crypto_onetimeauth_poly1305_x86
163_crypto_onetimeauth_poly1305_x86:
164crypto_onetimeauth_poly1305_x86:
165mov %esp,%eax
166sub $crypto_onetimeauth_poly1305_x86_constants,%eax
167and $4095,%eax
168add $192,%eax
169sub %eax,%esp
170
171# qhasm: eax_stack = eax
172# asm 1: movl <eax=int32#1,>eax_stack=stack32#1
173# asm 2: movl <eax=%eax,>eax_stack=0(%esp)
174movl %eax,0(%esp)
175
176# qhasm: ebx_stack = ebx
177# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2
178# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp)
179movl %ebx,4(%esp)
180
181# qhasm: esi_stack = esi
182# asm 1: movl <esi=int32#5,>esi_stack=stack32#3
183# asm 2: movl <esi=%esi,>esi_stack=8(%esp)
184movl %esi,8(%esp)
185
186# qhasm: edi_stack = edi
187# asm 1: movl <edi=int32#6,>edi_stack=stack32#4
188# asm 2: movl <edi=%edi,>edi_stack=12(%esp)
189movl %edi,12(%esp)
190
191# qhasm: ebp_stack = ebp
192# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5
193# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp)
194movl %ebp,16(%esp)
195
196# qhasm: round *(uint16 *) &crypto_onetimeauth_poly1305_x86_rounding
197fldcw crypto_onetimeauth_poly1305_x86_rounding
198
199# qhasm: k = arg_k
200# asm 1: movl <arg_k=stack32#-5,>k=int32#3
201# asm 2: movl <arg_k=20(%esp,%eax),>k=%edx
202movl 20(%esp,%eax),%edx
203
204# qhasm: m0 = *(uint32 *) (k + 0)
205# asm 1: movl 0(<k=int32#3),>m0=int32#2
206# asm 2: movl 0(<k=%edx),>m0=%ecx
207movl 0(%edx),%ecx
208
209# qhasm: m1 = *(uint32 *) (k + 4)
210# asm 1: movl 4(<k=int32#3),>m1=int32#4
211# asm 2: movl 4(<k=%edx),>m1=%ebx
212movl 4(%edx),%ebx
213
214# qhasm: m2 = *(uint32 *) (k + 8)
215# asm 1: movl 8(<k=int32#3),>m2=int32#5
216# asm 2: movl 8(<k=%edx),>m2=%esi
217movl 8(%edx),%esi
218
219# qhasm: m3 = *(uint32 *) (k + 12)
220# asm 1: movl 12(<k=int32#3),>m3=int32#6
221# asm 2: movl 12(<k=%edx),>m3=%edi
222movl 12(%edx),%edi
223
224# qhasm: d0 top = 0x43300000
225# asm 1: movl $0x43300000,>d0=stack64#1
226# asm 2: movl $0x43300000,>d0=100(%esp)
227movl $0x43300000,100(%esp)
228
229# qhasm: d1 top = 0x45300000
230# asm 1: movl $0x45300000,>d1=stack64#2
231# asm 2: movl $0x45300000,>d1=108(%esp)
232movl $0x45300000,108(%esp)
233
234# qhasm: d2 top = 0x47300000
235# asm 1: movl $0x47300000,>d2=stack64#3
236# asm 2: movl $0x47300000,>d2=116(%esp)
237movl $0x47300000,116(%esp)
238
239# qhasm: d3 top = 0x49300000
240# asm 1: movl $0x49300000,>d3=stack64#4
241# asm 2: movl $0x49300000,>d3=124(%esp)
242movl $0x49300000,124(%esp)
243
244# qhasm: m0 &= 0x0fffffff
245# asm 1: and $0x0fffffff,<m0=int32#2
246# asm 2: and $0x0fffffff,<m0=%ecx
247and $0x0fffffff,%ecx
248
249# qhasm: m1 &= 0x0ffffffc
250# asm 1: and $0x0ffffffc,<m1=int32#4
251# asm 2: and $0x0ffffffc,<m1=%ebx
252and $0x0ffffffc,%ebx
253
254# qhasm: m2 &= 0x0ffffffc
255# asm 1: and $0x0ffffffc,<m2=int32#5
256# asm 2: and $0x0ffffffc,<m2=%esi
257and $0x0ffffffc,%esi
258
259# qhasm: m3 &= 0x0ffffffc
260# asm 1: and $0x0ffffffc,<m3=int32#6
261# asm 2: and $0x0ffffffc,<m3=%edi
262and $0x0ffffffc,%edi
263
264# qhasm: inplace d0 bottom = m0
265# asm 1: movl <m0=int32#2,<d0=stack64#1
266# asm 2: movl <m0=%ecx,<d0=96(%esp)
267movl %ecx,96(%esp)
268
269# qhasm: inplace d1 bottom = m1
270# asm 1: movl <m1=int32#4,<d1=stack64#2
271# asm 2: movl <m1=%ebx,<d1=104(%esp)
272movl %ebx,104(%esp)
273
274# qhasm: inplace d2 bottom = m2
275# asm 1: movl <m2=int32#5,<d2=stack64#3
276# asm 2: movl <m2=%esi,<d2=112(%esp)
277movl %esi,112(%esp)
278
279# qhasm: inplace d3 bottom = m3
280# asm 1: movl <m3=int32#6,<d3=stack64#4
281# asm 2: movl <m3=%edi,<d3=120(%esp)
282movl %edi,120(%esp)
283
284# qhasm: a0 = *(float64 *) &d0
285# asm 1: fldl <d0=stack64#1
286# asm 2: fldl <d0=96(%esp)
287fldl 96(%esp)
288# comment:fpstackfrombottom:<a0#24:
289
290# qhasm: a0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset0
291fsubl crypto_onetimeauth_poly1305_x86_doffset0
292# comment:fpstackfrombottom:<a0#24:
293
294# qhasm: a1 = *(float64 *) &d1
295# asm 1: fldl <d1=stack64#2
296# asm 2: fldl <d1=104(%esp)
297fldl 104(%esp)
298# comment:fpstackfrombottom:<a0#24:<a1#25:
299
300# qhasm: a1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset1
301fsubl crypto_onetimeauth_poly1305_x86_doffset1
302# comment:fpstackfrombottom:<a0#24:<a1#25:
303
304# qhasm: a2 = *(float64 *) &d2
305# asm 1: fldl <d2=stack64#3
306# asm 2: fldl <d2=112(%esp)
307fldl 112(%esp)
308# comment:fpstackfrombottom:<a0#24:<a1#25:<a2#26:
309
310# qhasm: a2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset2
311fsubl crypto_onetimeauth_poly1305_x86_doffset2
312# comment:fpstackfrombottom:<a0#24:<a1#25:<a2#26:
313
314# qhasm: a3 = *(float64 *) &d3
315# asm 1: fldl <d3=stack64#4
316# asm 2: fldl <d3=120(%esp)
317fldl 120(%esp)
318# comment:fpstackfrombottom:<a0#24:<a1#25:<a2#26:<a3#27:
319
320# qhasm: a3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset3
321fsubl crypto_onetimeauth_poly1305_x86_doffset3
322# comment:fpstackfrombottom:<a0#24:<a1#25:<a2#26:<a3#27:
323
324# qhasm: internal stacktop a0
325# asm 1: fxch <a0=float80#4
326# asm 2: fxch <a0=%st(3)
327fxch %st(3)
328
329# qhasm: *(float64 *) &r0 = a0
330# asm 1: fstpl >r0=stack64#5
331# asm 2: fstpl >r0=128(%esp)
332fstpl 128(%esp)
333# comment:fpstackfrombottom:<a3#27:<a1#25:<a2#26:
334
335# qhasm: internal stacktop a1
336# asm 1: fxch <a1=float80#2
337# asm 2: fxch <a1=%st(1)
338fxch %st(1)
339
340# qhasm: *(float64 *) &r1 = a1
341# asm 1: fstl >r1=stack64#6
342# asm 2: fstl >r1=136(%esp)
343fstl 136(%esp)
344# comment:fpstackfrombottom:<a3#27:<a2#26:<a1#25:
345
346# qhasm: a1 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
347fmull crypto_onetimeauth_poly1305_x86_scale
348# comment:fpstackfrombottom:<a3#27:<a2#26:<a1#25:
349
350# qhasm: *(float64 *) &sr1 = a1
351# asm 1: fstpl >sr1=stack64#7
352# asm 2: fstpl >sr1=144(%esp)
353fstpl 144(%esp)
354# comment:fpstackfrombottom:<a3#27:<a2#26:
355
356# qhasm: *(float64 *) &r2 = a2
357# asm 1: fstl >r2=stack64#8
358# asm 2: fstl >r2=152(%esp)
359fstl 152(%esp)
360# comment:fpstackfrombottom:<a3#27:<a2#26:
361
362# qhasm: a2 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
363fmull crypto_onetimeauth_poly1305_x86_scale
364# comment:fpstackfrombottom:<a3#27:<a2#26:
365
366# qhasm: *(float64 *) &sr2 = a2
367# asm 1: fstpl >sr2=stack64#9
368# asm 2: fstpl >sr2=160(%esp)
369fstpl 160(%esp)
370# comment:fpstackfrombottom:<a3#27:
371
372# qhasm: *(float64 *) &r3 = a3
373# asm 1: fstl >r3=stack64#10
374# asm 2: fstl >r3=168(%esp)
375fstl 168(%esp)
376# comment:fpstackfrombottom:<a3#27:
377
378# qhasm: a3 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
379fmull crypto_onetimeauth_poly1305_x86_scale
380# comment:fpstackfrombottom:<a3#27:
381
382# qhasm: *(float64 *) &sr3 = a3
383# asm 1: fstpl >sr3=stack64#11
384# asm 2: fstpl >sr3=176(%esp)
385fstpl 176(%esp)
386# comment:fpstackfrombottom:
387
388# qhasm: out = arg_out
389# asm 1: movl <arg_out=stack32#-1,>out=int32#4
390# asm 2: movl <arg_out=4(%esp,%eax),>out=%ebx
391movl 4(%esp,%eax),%ebx
392
393# qhasm: m = arg_m
394# asm 1: movl <arg_m=stack32#-2,>m=int32#5
395# asm 2: movl <arg_m=8(%esp,%eax),>m=%esi
396movl 8(%esp,%eax),%esi
397
398# qhasm: l = arg_l
399# asm 1: movl <arg_l=stack32#-3,>l=int32#2
400# asm 2: movl <arg_l=12(%esp,%eax),>l=%ecx
401movl 12(%esp,%eax),%ecx
402
403# qhasm: h3 = 0
404fldz
405# comment:fpstackfrombottom:<h3#38:
406
407# qhasm: h2 = 0
408fldz
409# comment:fpstackfrombottom:<h3#38:<h2#39:
410
411# qhasm: h1 = 0
412fldz
413# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:
414
415# qhasm: h0 = 0
416fldz
417# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
418
419# qhasm: k_stack = k
420# asm 1: movl <k=int32#3,>k_stack=stack32#6
421# asm 2: movl <k=%edx,>k_stack=20(%esp)
422movl %edx,20(%esp)
423# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
424
425# qhasm: out_stack = out
426# asm 1: movl <out=int32#4,>out_stack=stack32#7
427# asm 2: movl <out=%ebx,>out_stack=24(%esp)
428movl %ebx,24(%esp)
429# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
430
431# qhasm: unsigned<? l - 16
432# asm 1: cmp $16,<l=int32#2
433# asm 2: cmp $16,<l=%ecx
434cmp $16,%ecx
435# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
436# comment:fp stack unchanged by jump
437# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
438
439# qhasm: goto addatmost15bytes if unsigned<
440jb ._addatmost15bytes
441# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
442# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
443
444# qhasm: initialatleast16bytes:
445._initialatleast16bytes:
446# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
447
448# qhasm: m3 = *(uint32 *) (m + 12)
449# asm 1: movl 12(<m=int32#5),>m3=int32#1
450# asm 2: movl 12(<m=%esi),>m3=%eax
451movl 12(%esi),%eax
452# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
453
454# qhasm: m2 = *(uint32 *) (m + 8)
455# asm 1: movl 8(<m=int32#5),>m2=int32#3
456# asm 2: movl 8(<m=%esi),>m2=%edx
457movl 8(%esi),%edx
458# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
459
460# qhasm: m1 = *(uint32 *) (m + 4)
461# asm 1: movl 4(<m=int32#5),>m1=int32#4
462# asm 2: movl 4(<m=%esi),>m1=%ebx
463movl 4(%esi),%ebx
464# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
465
466# qhasm: m0 = *(uint32 *) (m + 0)
467# asm 1: movl 0(<m=int32#5),>m0=int32#6
468# asm 2: movl 0(<m=%esi),>m0=%edi
469movl 0(%esi),%edi
470# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
471
472# qhasm: inplace d3 bottom = m3
473# asm 1: movl <m3=int32#1,<d3=stack64#4
474# asm 2: movl <m3=%eax,<d3=120(%esp)
475movl %eax,120(%esp)
476# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
477
478# qhasm: inplace d2 bottom = m2
479# asm 1: movl <m2=int32#3,<d2=stack64#3
480# asm 2: movl <m2=%edx,<d2=112(%esp)
481movl %edx,112(%esp)
482# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
483
484# qhasm: inplace d1 bottom = m1
485# asm 1: movl <m1=int32#4,<d1=stack64#2
486# asm 2: movl <m1=%ebx,<d1=104(%esp)
487movl %ebx,104(%esp)
488# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
489
490# qhasm: inplace d0 bottom = m0
491# asm 1: movl <m0=int32#6,<d0=stack64#1
492# asm 2: movl <m0=%edi,<d0=96(%esp)
493movl %edi,96(%esp)
494# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
495
496# qhasm: m += 16
497# asm 1: add $16,<m=int32#5
498# asm 2: add $16,<m=%esi
499add $16,%esi
500# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
501
502# qhasm: l -= 16
503# asm 1: sub $16,<l=int32#2
504# asm 2: sub $16,<l=%ecx
505sub $16,%ecx
506# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
507
508# qhasm: internal stacktop h3
509# asm 1: fxch <h3=float80#4
510# asm 2: fxch <h3=%st(3)
511fxch %st(3)
512
513# qhasm: h3 += *(float64 *) &d3
514# asm 1: faddl <d3=stack64#4
515# asm 2: faddl <d3=120(%esp)
516faddl 120(%esp)
517# comment:fpstackfrombottom:<h0#41:<h2#39:<h1#40:<h3#38:
518
519# qhasm: h3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset3minustwo128
520fsubl crypto_onetimeauth_poly1305_x86_doffset3minustwo128
521# comment:fpstackfrombottom:<h0#41:<h2#39:<h1#40:<h3#38:
522
523# qhasm: internal stacktop h1
524# asm 1: fxch <h1=float80#2
525# asm 2: fxch <h1=%st(1)
526fxch %st(1)
527
528# qhasm: h1 += *(float64 *) &d1
529# asm 1: faddl <d1=stack64#2
530# asm 2: faddl <d1=104(%esp)
531faddl 104(%esp)
532# comment:fpstackfrombottom:<h0#41:<h2#39:<h3#38:<h1#40:
533
534# qhasm: h1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset1
535fsubl crypto_onetimeauth_poly1305_x86_doffset1
536# comment:fpstackfrombottom:<h0#41:<h2#39:<h3#38:<h1#40:
537
538# qhasm: internal stacktop h2
539# asm 1: fxch <h2=float80#3
540# asm 2: fxch <h2=%st(2)
541fxch %st(2)
542
543# qhasm: h2 += *(float64 *) &d2
544# asm 1: faddl <d2=stack64#3
545# asm 2: faddl <d2=112(%esp)
546faddl 112(%esp)
547# comment:fpstackfrombottom:<h0#41:<h1#40:<h3#38:<h2#39:
548
549# qhasm: h2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset2
550fsubl crypto_onetimeauth_poly1305_x86_doffset2
551# comment:fpstackfrombottom:<h0#41:<h1#40:<h3#38:<h2#39:
552
553# qhasm: internal stacktop h0
554# asm 1: fxch <h0=float80#4
555# asm 2: fxch <h0=%st(3)
556fxch %st(3)
557
558# qhasm: h0 += *(float64 *) &d0
559# asm 1: faddl <d0=stack64#1
560# asm 2: faddl <d0=96(%esp)
561faddl 96(%esp)
562# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
563
564# qhasm: h0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset0
565fsubl crypto_onetimeauth_poly1305_x86_doffset0
566# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
567
568# qhasm: unsigned<? l - 16
569# asm 1: cmp $16,<l=int32#2
570# asm 2: cmp $16,<l=%ecx
571cmp $16,%ecx
572# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
573# comment:fp stack unchanged by jump
574# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
575
576# qhasm: goto multiplyaddatmost15bytes if unsigned<
577jb ._multiplyaddatmost15bytes
578# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
579# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
580
581# qhasm: multiplyaddatleast16bytes:
582._multiplyaddatleast16bytes:
583# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
584
585# qhasm: m3 = *(uint32 *) (m + 12)
586# asm 1: movl 12(<m=int32#5),>m3=int32#1
587# asm 2: movl 12(<m=%esi),>m3=%eax
588movl 12(%esi),%eax
589# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
590
591# qhasm: m2 = *(uint32 *) (m + 8)
592# asm 1: movl 8(<m=int32#5),>m2=int32#3
593# asm 2: movl 8(<m=%esi),>m2=%edx
594movl 8(%esi),%edx
595# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
596
597# qhasm: m1 = *(uint32 *) (m + 4)
598# asm 1: movl 4(<m=int32#5),>m1=int32#4
599# asm 2: movl 4(<m=%esi),>m1=%ebx
600movl 4(%esi),%ebx
601# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
602
603# qhasm: m0 = *(uint32 *) (m + 0)
604# asm 1: movl 0(<m=int32#5),>m0=int32#6
605# asm 2: movl 0(<m=%esi),>m0=%edi
606movl 0(%esi),%edi
607# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
608
609# qhasm: inplace d3 bottom = m3
610# asm 1: movl <m3=int32#1,<d3=stack64#4
611# asm 2: movl <m3=%eax,<d3=120(%esp)
612movl %eax,120(%esp)
613# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
614
615# qhasm: inplace d2 bottom = m2
616# asm 1: movl <m2=int32#3,<d2=stack64#3
617# asm 2: movl <m2=%edx,<d2=112(%esp)
618movl %edx,112(%esp)
619# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
620
621# qhasm: inplace d1 bottom = m1
622# asm 1: movl <m1=int32#4,<d1=stack64#2
623# asm 2: movl <m1=%ebx,<d1=104(%esp)
624movl %ebx,104(%esp)
625# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
626
627# qhasm: inplace d0 bottom = m0
628# asm 1: movl <m0=int32#6,<d0=stack64#1
629# asm 2: movl <m0=%edi,<d0=96(%esp)
630movl %edi,96(%esp)
631# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
632
633# qhasm: m += 16
634# asm 1: add $16,<m=int32#5
635# asm 2: add $16,<m=%esi
636add $16,%esi
637# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
638
639# qhasm: l -= 16
640# asm 1: sub $16,<l=int32#2
641# asm 2: sub $16,<l=%ecx
642sub $16,%ecx
643# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
644
645# qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
646fldl crypto_onetimeauth_poly1305_x86_alpha130
647# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:
648
649# qhasm: x0 += h3
650# asm 1: fadd <h3=float80#3,<x0=float80#1
651# asm 2: fadd <h3=%st(2),<x0=%st(0)
652fadd %st(2),%st(0)
653# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:
654
655# qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
656fsubl crypto_onetimeauth_poly1305_x86_alpha130
657# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:
658
659# qhasm: h3 -= x0
660# asm 1: fsubr <x0=float80#1,<h3=float80#3
661# asm 2: fsubr <x0=%st(0),<h3=%st(2)
662fsubr %st(0),%st(2)
663# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:
664
665# qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
666fmull crypto_onetimeauth_poly1305_x86_scale
667# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:
668
669# qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
670fldl crypto_onetimeauth_poly1305_x86_alpha32
671# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:<x1#55:
672
673# qhasm: x1 += h0
674# asm 1: fadd <h0=float80#3,<x1=float80#1
675# asm 2: fadd <h0=%st(2),<x1=%st(0)
676fadd %st(2),%st(0)
677# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:<x1#55:
678
679# qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
680fsubl crypto_onetimeauth_poly1305_x86_alpha32
681# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:<x1#55:
682
683# qhasm: h0 -= x1
684# asm 1: fsubr <x1=float80#1,<h0=float80#3
685# asm 2: fsubr <x1=%st(0),<h0=%st(2)
686fsubr %st(0),%st(2)
687# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#54:<x1#55:
688
689# qhasm: internal stacktop h0
690# asm 1: fxch <h0=float80#3
691# asm 2: fxch <h0=%st(2)
692fxch %st(2)
693
694# qhasm: x0 += h0
695# asm 1: faddp <h0=float80#1,<x0=float80#2
696# asm 2: faddp <h0=%st(0),<x0=%st(1)
697faddp %st(0),%st(1)
698# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:
699
700# qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
701fldl crypto_onetimeauth_poly1305_x86_alpha64
702# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:
703
704# qhasm: x2 += h1
705# asm 1: fadd <h1=float80#5,<x2=float80#1
706# asm 2: fadd <h1=%st(4),<x2=%st(0)
707fadd %st(4),%st(0)
708# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:
709
710# qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
711fsubl crypto_onetimeauth_poly1305_x86_alpha64
712# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:
713
714# qhasm: h1 -= x2
715# asm 1: fsubr <x2=float80#1,<h1=float80#5
716# asm 2: fsubr <x2=%st(0),<h1=%st(4)
717fsubr %st(0),%st(4)
718# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:
719
720# qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
721fldl crypto_onetimeauth_poly1305_x86_alpha96
722# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:<x3#57:
723
724# qhasm: x3 += h2
725# asm 1: fadd <h2=float80#7,<x3=float80#1
726# asm 2: fadd <h2=%st(6),<x3=%st(0)
727fadd %st(6),%st(0)
728# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:<x3#57:
729
730# qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
731fsubl crypto_onetimeauth_poly1305_x86_alpha96
732# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:<x3#57:
733
734# qhasm: h2 -= x3
735# asm 1: fsubr <x3=float80#1,<h2=float80#7
736# asm 2: fsubr <x3=%st(0),<h2=%st(6)
737fsubr %st(0),%st(6)
738# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:<x3#57:
739
740# qhasm: internal stacktop h2
741# asm 1: fxch <h2=float80#7
742# asm 2: fxch <h2=%st(6)
743fxch %st(6)
744
745# qhasm: x2 += h2
746# asm 1: faddp <h2=float80#1,<x2=float80#2
747# asm 2: faddp <h2=%st(0),<x2=%st(1)
748faddp %st(0),%st(1)
749# comment:fpstackfrombottom:<x3#57:<h1#40:<h3#38:<x1#55:<x0#54:<x2#56:
750
751# qhasm: internal stacktop h3
752# asm 1: fxch <h3=float80#4
753# asm 2: fxch <h3=%st(3)
754fxch %st(3)
755
756# qhasm: x3 += h3
757# asm 1: faddp <h3=float80#1,<x3=float80#6
758# asm 2: faddp <h3=%st(0),<x3=%st(5)
759faddp %st(0),%st(5)
760# comment:fpstackfrombottom:<x3#57:<h1#40:<x2#56:<x1#55:<x0#54:
761
762# qhasm: internal stacktop h1
763# asm 1: fxch <h1=float80#4
764# asm 2: fxch <h1=%st(3)
765fxch %st(3)
766
767# qhasm: x1 += h1
768# asm 1: faddp <h1=float80#1,<x1=float80#2
769# asm 2: faddp <h1=%st(0),<x1=%st(1)
770faddp %st(0),%st(1)
771# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:
772
773# qhasm: h3 = *(float64 *) &r3
774# asm 1: fldl <r3=stack64#10
775# asm 2: fldl <r3=168(%esp)
776fldl 168(%esp)
777# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:
778
779# qhasm: h3 *= x0
780# asm 1: fmul <x0=float80#4,<h3=float80#1
781# asm 2: fmul <x0=%st(3),<h3=%st(0)
782fmul %st(3),%st(0)
783# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:
784
785# qhasm: h2 = *(float64 *) &r2
786# asm 1: fldl <r2=stack64#8
787# asm 2: fldl <r2=152(%esp)
788fldl 152(%esp)
789# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:<h2#39:
790
791# qhasm: h2 *= x0
792# asm 1: fmul <x0=float80#5,<h2=float80#1
793# asm 2: fmul <x0=%st(4),<h2=%st(0)
794fmul %st(4),%st(0)
795# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:<h2#39:
796
797# qhasm: h1 = *(float64 *) &r1
798# asm 1: fldl <r1=stack64#6
799# asm 2: fldl <r1=136(%esp)
800fldl 136(%esp)
801# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
802
803# qhasm: h1 *= x0
804# asm 1: fmul <x0=float80#6,<h1=float80#1
805# asm 2: fmul <x0=%st(5),<h1=%st(0)
806fmul %st(5),%st(0)
807# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
808
809# qhasm: h0 = *(float64 *) &r0
810# asm 1: fldl <r0=stack64#5
811# asm 2: fldl <r0=128(%esp)
812fldl 128(%esp)
813# comment:fpstackfrombottom:<x3#57:<x0#54:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<h0#41:
814
815# qhasm: h0 *= x0
816# asm 1: fmulp <x0=float80#1,<h0=float80#7
817# asm 2: fmulp <x0=%st(0),<h0=%st(6)
818fmulp %st(0),%st(6)
819# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
820
821# qhasm: r2x1 = *(float64 *) &r2
822# asm 1: fldl <r2=stack64#8
823# asm 2: fldl <r2=152(%esp)
824fldl 152(%esp)
825# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r2x1#58:
826
827# qhasm: r2x1 *= x1
828# asm 1: fmul <x1=float80#5,<r2x1=float80#1
829# asm 2: fmul <x1=%st(4),<r2x1=%st(0)
830fmul %st(4),%st(0)
831# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r2x1#58:
832
833# qhasm: h3 += r2x1
834# asm 1: faddp <r2x1=float80#1,<h3=float80#4
835# asm 2: faddp <r2x1=%st(0),<h3=%st(3)
836faddp %st(0),%st(3)
837# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
838
839# qhasm: r1x1 = *(float64 *) &r1
840# asm 1: fldl <r1=stack64#6
841# asm 2: fldl <r1=136(%esp)
842fldl 136(%esp)
843# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r1x1#59:
844
845# qhasm: r1x1 *= x1
846# asm 1: fmul <x1=float80#5,<r1x1=float80#1
847# asm 2: fmul <x1=%st(4),<r1x1=%st(0)
848fmul %st(4),%st(0)
849# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r1x1#59:
850
851# qhasm: h2 += r1x1
852# asm 1: faddp <r1x1=float80#1,<h2=float80#3
853# asm 2: faddp <r1x1=%st(0),<h2=%st(2)
854faddp %st(0),%st(2)
855# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
856
857# qhasm: r0x1 = *(float64 *) &r0
858# asm 1: fldl <r0=stack64#5
859# asm 2: fldl <r0=128(%esp)
860fldl 128(%esp)
861# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r0x1#60:
862
863# qhasm: r0x1 *= x1
864# asm 1: fmul <x1=float80#5,<r0x1=float80#1
865# asm 2: fmul <x1=%st(4),<r0x1=%st(0)
866fmul %st(4),%st(0)
867# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<r0x1#60:
868
869# qhasm: h1 += r0x1
870# asm 1: faddp <r0x1=float80#1,<h1=float80#2
871# asm 2: faddp <r0x1=%st(0),<h1=%st(1)
872faddp %st(0),%st(1)
873# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:
874
875# qhasm: sr3x1 = *(float64 *) &sr3
876# asm 1: fldl <sr3=stack64#11
877# asm 2: fldl <sr3=176(%esp)
878fldl 176(%esp)
879# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<x1#55:<h3#38:<h2#39:<h1#40:<sr3x1#61:
880
881# qhasm: sr3x1 *= x1
882# asm 1: fmulp <x1=float80#1,<sr3x1=float80#5
883# asm 2: fmulp <x1=%st(0),<sr3x1=%st(4)
884fmulp %st(0),%st(4)
885# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<sr3x1#61:<h3#38:<h2#39:<h1#40:
886
887# qhasm: internal stacktop sr3x1
888# asm 1: fxch <sr3x1=float80#4
889# asm 2: fxch <sr3x1=%st(3)
890fxch %st(3)
891
892# qhasm: h0 += sr3x1
893# asm 1: faddp <sr3x1=float80#1,<h0=float80#6
894# asm 2: faddp <sr3x1=%st(0),<h0=%st(5)
895faddp %st(0),%st(5)
896# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:
897
898# qhasm: r1x2 = *(float64 *) &r1
899# asm 1: fldl <r1=stack64#6
900# asm 2: fldl <r1=136(%esp)
901fldl 136(%esp)
902# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<r1x2#62:
903
904# qhasm: r1x2 *= x2
905# asm 1: fmul <x2=float80#5,<r1x2=float80#1
906# asm 2: fmul <x2=%st(4),<r1x2=%st(0)
907fmul %st(4),%st(0)
908# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<r1x2#62:
909
910# qhasm: h3 += r1x2
911# asm 1: faddp <r1x2=float80#1,<h3=float80#3
912# asm 2: faddp <r1x2=%st(0),<h3=%st(2)
913faddp %st(0),%st(2)
914# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:
915
916# qhasm: r0x2 = *(float64 *) &r0
917# asm 1: fldl <r0=stack64#5
918# asm 2: fldl <r0=128(%esp)
919fldl 128(%esp)
920# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<r0x2#63:
921
922# qhasm: r0x2 *= x2
923# asm 1: fmul <x2=float80#5,<r0x2=float80#1
924# asm 2: fmul <x2=%st(4),<r0x2=%st(0)
925fmul %st(4),%st(0)
926# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<r0x2#63:
927
928# qhasm: h2 += r0x2
929# asm 1: faddp <r0x2=float80#1,<h2=float80#2
930# asm 2: faddp <r0x2=%st(0),<h2=%st(1)
931faddp %st(0),%st(1)
932# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:
933
934# qhasm: sr3x2 = *(float64 *) &sr3
935# asm 1: fldl <sr3=stack64#11
936# asm 2: fldl <sr3=176(%esp)
937fldl 176(%esp)
938# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<sr3x2#64:
939
940# qhasm: sr3x2 *= x2
941# asm 1: fmul <x2=float80#5,<sr3x2=float80#1
942# asm 2: fmul <x2=%st(4),<sr3x2=%st(0)
943fmul %st(4),%st(0)
944# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<sr3x2#64:
945
946# qhasm: h1 += sr3x2
947# asm 1: faddp <sr3x2=float80#1,<h1=float80#4
948# asm 2: faddp <sr3x2=%st(0),<h1=%st(3)
949faddp %st(0),%st(3)
950# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:
951
952# qhasm: sr2x2 = *(float64 *) &sr2
953# asm 1: fldl <sr2=stack64#9
954# asm 2: fldl <sr2=160(%esp)
955fldl 160(%esp)
956# comment:fpstackfrombottom:<x3#57:<h0#41:<x2#56:<h1#40:<h3#38:<h2#39:<sr2x2#65:
957
958# qhasm: sr2x2 *= x2
959# asm 1: fmulp <x2=float80#1,<sr2x2=float80#5
960# asm 2: fmulp <x2=%st(0),<sr2x2=%st(4)
961fmulp %st(0),%st(4)
962# comment:fpstackfrombottom:<x3#57:<h0#41:<sr2x2#65:<h1#40:<h3#38:<h2#39:
963
964# qhasm: internal stacktop sr2x2
965# asm 1: fxch <sr2x2=float80#4
966# asm 2: fxch <sr2x2=%st(3)
967fxch %st(3)
968
969# qhasm: h0 += sr2x2
970# asm 1: faddp <sr2x2=float80#1,<h0=float80#5
971# asm 2: faddp <sr2x2=%st(0),<h0=%st(4)
972faddp %st(0),%st(4)
973# comment:fpstackfrombottom:<x3#57:<h0#41:<h2#39:<h1#40:<h3#38:
974
975# qhasm: r0x3 = *(float64 *) &r0
976# asm 1: fldl <r0=stack64#5
977# asm 2: fldl <r0=128(%esp)
978fldl 128(%esp)
979# comment:fpstackfrombottom:<x3#57:<h0#41:<h2#39:<h1#40:<h3#38:<r0x3#66:
980
981# qhasm: r0x3 *= x3
982# asm 1: fmul <x3=float80#6,<r0x3=float80#1
983# asm 2: fmul <x3=%st(5),<r0x3=%st(0)
984fmul %st(5),%st(0)
985# comment:fpstackfrombottom:<x3#57:<h0#41:<h2#39:<h1#40:<h3#38:<r0x3#66:
986
987# qhasm: h3 += r0x3
988# asm 1: faddp <r0x3=float80#1,<h3=float80#2
989# asm 2: faddp <r0x3=%st(0),<h3=%st(1)
990faddp %st(0),%st(1)
991# comment:fpstackfrombottom:<x3#57:<h0#41:<h2#39:<h1#40:<h3#38:
992
993# qhasm: stacktop h0
994# asm 1: fxch <h0=float80#4
995# asm 2: fxch <h0=%st(3)
996fxch %st(3)
997# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h1#40:<h0#41:
998
999# qhasm: sr3x3 = *(float64 *) &sr3
1000# asm 1: fldl <sr3=stack64#11
1001# asm 2: fldl <sr3=176(%esp)
1002fldl 176(%esp)
1003# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h1#40:<h0#41:<sr3x3#67:
1004
1005# qhasm: sr3x3 *= x3
1006# asm 1: fmul <x3=float80#6,<sr3x3=float80#1
1007# asm 2: fmul <x3=%st(5),<sr3x3=%st(0)
1008fmul %st(5),%st(0)
1009# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h1#40:<h0#41:<sr3x3#67:
1010
1011# qhasm: h2 += sr3x3
1012# asm 1: faddp <sr3x3=float80#1,<h2=float80#4
1013# asm 2: faddp <sr3x3=%st(0),<h2=%st(3)
1014faddp %st(0),%st(3)
1015# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h1#40:<h0#41:
1016
1017# qhasm: stacktop h1
1018# asm 1: fxch <h1=float80#2
1019# asm 2: fxch <h1=%st(1)
1020fxch %st(1)
1021# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h0#41:<h1#40:
1022
1023# qhasm: sr2x3 = *(float64 *) &sr2
1024# asm 1: fldl <sr2=stack64#9
1025# asm 2: fldl <sr2=160(%esp)
1026fldl 160(%esp)
1027# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h0#41:<h1#40:<sr2x3#68:
1028
1029# qhasm: sr2x3 *= x3
1030# asm 1: fmul <x3=float80#6,<sr2x3=float80#1
1031# asm 2: fmul <x3=%st(5),<sr2x3=%st(0)
1032fmul %st(5),%st(0)
1033# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h0#41:<h1#40:<sr2x3#68:
1034
1035# qhasm: h1 += sr2x3
1036# asm 1: faddp <sr2x3=float80#1,<h1=float80#2
1037# asm 2: faddp <sr2x3=%st(0),<h1=%st(1)
1038faddp %st(0),%st(1)
1039# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h0#41:<h1#40:
1040
1041# qhasm: sr1x3 = *(float64 *) &sr1
1042# asm 1: fldl <sr1=stack64#7
1043# asm 2: fldl <sr1=144(%esp)
1044fldl 144(%esp)
1045# comment:fpstackfrombottom:<x3#57:<h3#38:<h2#39:<h0#41:<h1#40:<sr1x3#69:
1046
1047# qhasm: sr1x3 *= x3
1048# asm 1: fmulp <x3=float80#1,<sr1x3=float80#6
1049# asm 2: fmulp <x3=%st(0),<sr1x3=%st(5)
1050fmulp %st(0),%st(5)
1051# comment:fpstackfrombottom:<sr1x3#69:<h3#38:<h2#39:<h0#41:<h1#40:
1052
1053# qhasm: internal stacktop sr1x3
1054# asm 1: fxch <sr1x3=float80#5
1055# asm 2: fxch <sr1x3=%st(4)
1056fxch %st(4)
1057
1058# qhasm: h0 += sr1x3
1059# asm 1: faddp <sr1x3=float80#1,<h0=float80#2
1060# asm 2: faddp <sr1x3=%st(0),<h0=%st(1)
1061faddp %st(0),%st(1)
1062# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:
1063
1064# qhasm: unsigned<? l - 16
1065# asm 1: cmp $16,<l=int32#2
1066# asm 2: cmp $16,<l=%ecx
1067cmp $16,%ecx
1068# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:
1069
1070# qhasm: stacktop h3
1071# asm 1: fxch <h3=float80#3
1072# asm 2: fxch <h3=%st(2)
1073fxch %st(2)
1074# comment:fpstackfrombottom:<h1#40:<h0#41:<h2#39:<h3#38:
1075
1076# qhasm: y3 = *(float64 *) &d3
1077# asm 1: fldl <d3=stack64#4
1078# asm 2: fldl <d3=120(%esp)
1079fldl 120(%esp)
1080# comment:fpstackfrombottom:<h1#40:<h0#41:<h2#39:<h3#38:<y3#71:
1081
1082# qhasm: y3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset3minustwo128
1083fsubl crypto_onetimeauth_poly1305_x86_doffset3minustwo128
1084# comment:fpstackfrombottom:<h1#40:<h0#41:<h2#39:<h3#38:<y3#71:
1085
1086# qhasm: h3 += y3
1087# asm 1: faddp <y3=float80#1,<h3=float80#2
1088# asm 2: faddp <y3=%st(0),<h3=%st(1)
1089faddp %st(0),%st(1)
1090# comment:fpstackfrombottom:<h1#40:<h0#41:<h2#39:<h3#38:
1091
1092# qhasm: stacktop h2
1093# asm 1: fxch <h2=float80#2
1094# asm 2: fxch <h2=%st(1)
1095fxch %st(1)
1096# comment:fpstackfrombottom:<h1#40:<h0#41:<h3#38:<h2#39:
1097
1098# qhasm: y2 = *(float64 *) &d2
1099# asm 1: fldl <d2=stack64#3
1100# asm 2: fldl <d2=112(%esp)
1101fldl 112(%esp)
1102# comment:fpstackfrombottom:<h1#40:<h0#41:<h3#38:<h2#39:<y2#72:
1103
1104# qhasm: y2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset2
1105fsubl crypto_onetimeauth_poly1305_x86_doffset2
1106# comment:fpstackfrombottom:<h1#40:<h0#41:<h3#38:<h2#39:<y2#72:
1107
1108# qhasm: h2 += y2
1109# asm 1: faddp <y2=float80#1,<h2=float80#2
1110# asm 2: faddp <y2=%st(0),<h2=%st(1)
1111faddp %st(0),%st(1)
1112# comment:fpstackfrombottom:<h1#40:<h0#41:<h3#38:<h2#39:
1113
1114# qhasm: stacktop h1
1115# asm 1: fxch <h1=float80#4
1116# asm 2: fxch <h1=%st(3)
1117fxch %st(3)
1118# comment:fpstackfrombottom:<h2#39:<h0#41:<h3#38:<h1#40:
1119
1120# qhasm: y1 = *(float64 *) &d1
1121# asm 1: fldl <d1=stack64#2
1122# asm 2: fldl <d1=104(%esp)
1123fldl 104(%esp)
1124# comment:fpstackfrombottom:<h2#39:<h0#41:<h3#38:<h1#40:<y1#73:
1125
1126# qhasm: y1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset1
1127fsubl crypto_onetimeauth_poly1305_x86_doffset1
1128# comment:fpstackfrombottom:<h2#39:<h0#41:<h3#38:<h1#40:<y1#73:
1129
1130# qhasm: h1 += y1
1131# asm 1: faddp <y1=float80#1,<h1=float80#2
1132# asm 2: faddp <y1=%st(0),<h1=%st(1)
1133faddp %st(0),%st(1)
1134# comment:fpstackfrombottom:<h2#39:<h0#41:<h3#38:<h1#40:
1135
1136# qhasm: stacktop h0
1137# asm 1: fxch <h0=float80#3
1138# asm 2: fxch <h0=%st(2)
1139fxch %st(2)
1140# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1141
1142# qhasm: y0 = *(float64 *) &d0
1143# asm 1: fldl <d0=stack64#1
1144# asm 2: fldl <d0=96(%esp)
1145fldl 96(%esp)
1146# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<y0#74:
1147
1148# qhasm: y0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset0
1149fsubl crypto_onetimeauth_poly1305_x86_doffset0
1150# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<y0#74:
1151
1152# qhasm: h0 += y0
1153# asm 1: faddp <y0=float80#1,<h0=float80#2
1154# asm 2: faddp <y0=%st(0),<h0=%st(1)
1155faddp %st(0),%st(1)
1156# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1157# comment:fp stack unchanged by jump
1158# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1159
1160# qhasm: goto multiplyaddatleast16bytes if !unsigned<
1161jae ._multiplyaddatleast16bytes
1162# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1163# comment:fp stack unchanged by fallthrough
1164# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1165
1166# qhasm: multiplyaddatmost15bytes:
1167._multiplyaddatmost15bytes:
1168# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:
1169
1170# qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
1171fldl crypto_onetimeauth_poly1305_x86_alpha130
1172# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:
1173
1174# qhasm: x0 += h3
1175# asm 1: fadd <h3=float80#3,<x0=float80#1
1176# asm 2: fadd <h3=%st(2),<x0=%st(0)
1177fadd %st(2),%st(0)
1178# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:
1179
1180# qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
1181fsubl crypto_onetimeauth_poly1305_x86_alpha130
1182# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:
1183
1184# qhasm: h3 -= x0
1185# asm 1: fsubr <x0=float80#1,<h3=float80#3
1186# asm 2: fsubr <x0=%st(0),<h3=%st(2)
1187fsubr %st(0),%st(2)
1188# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:
1189
1190# qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
1191fmull crypto_onetimeauth_poly1305_x86_scale
1192# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:
1193
1194# qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
1195fldl crypto_onetimeauth_poly1305_x86_alpha32
1196# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:
1197
1198# qhasm: x1 += h0
1199# asm 1: fadd <h0=float80#3,<x1=float80#1
1200# asm 2: fadd <h0=%st(2),<x1=%st(0)
1201fadd %st(2),%st(0)
1202# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:
1203
1204# qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
1205fsubl crypto_onetimeauth_poly1305_x86_alpha32
1206# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:
1207
1208# qhasm: h0 -= x1
1209# asm 1: fsubr <x1=float80#1,<h0=float80#3
1210# asm 2: fsubr <x1=%st(0),<h0=%st(2)
1211fsubr %st(0),%st(2)
1212# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:
1213
1214# qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
1215fldl crypto_onetimeauth_poly1305_x86_alpha64
1216# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:
1217
1218# qhasm: x2 += h1
1219# asm 1: fadd <h1=float80#6,<x2=float80#1
1220# asm 2: fadd <h1=%st(5),<x2=%st(0)
1221fadd %st(5),%st(0)
1222# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:
1223
1224# qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
1225fsubl crypto_onetimeauth_poly1305_x86_alpha64
1226# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:
1227
1228# qhasm: h1 -= x2
1229# asm 1: fsubr <x2=float80#1,<h1=float80#6
1230# asm 2: fsubr <x2=%st(0),<h1=%st(5)
1231fsubr %st(0),%st(5)
1232# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:
1233
1234# qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
1235fldl crypto_onetimeauth_poly1305_x86_alpha96
1236# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:<x3#78:
1237
1238# qhasm: x3 += h2
1239# asm 1: fadd <h2=float80#8,<x3=float80#1
1240# asm 2: fadd <h2=%st(7),<x3=%st(0)
1241fadd %st(7),%st(0)
1242# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:<x3#78:
1243
1244# qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
1245fsubl crypto_onetimeauth_poly1305_x86_alpha96
1246# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:<x3#78:
1247
1248# qhasm: h2 -= x3
1249# asm 1: fsubr <x3=float80#1,<h2=float80#8
1250# asm 2: fsubr <x3=%st(0),<h2=%st(7)
1251fsubr %st(0),%st(7)
1252# comment:fpstackfrombottom:<h2#39:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:<x3#78:
1253
1254# qhasm: internal stacktop h2
1255# asm 1: fxch <h2=float80#8
1256# asm 2: fxch <h2=%st(7)
1257fxch %st(7)
1258
1259# qhasm: x2 += h2
1260# asm 1: faddp <h2=float80#1,<x2=float80#2
1261# asm 2: faddp <h2=%st(0),<x2=%st(1)
1262faddp %st(0),%st(1)
1263# comment:fpstackfrombottom:<x3#78:<h1#40:<h3#38:<h0#41:<x0#75:<x1#76:<x2#77:
1264
1265# qhasm: internal stacktop h1
1266# asm 1: fxch <h1=float80#6
1267# asm 2: fxch <h1=%st(5)
1268fxch %st(5)
1269
1270# qhasm: x1 += h1
1271# asm 1: faddp <h1=float80#1,<x1=float80#2
1272# asm 2: faddp <h1=%st(0),<x1=%st(1)
1273faddp %st(0),%st(1)
1274# comment:fpstackfrombottom:<x3#78:<x2#77:<h3#38:<h0#41:<x0#75:<x1#76:
1275
1276# qhasm: internal stacktop h3
1277# asm 1: fxch <h3=float80#4
1278# asm 2: fxch <h3=%st(3)
1279fxch %st(3)
1280
1281# qhasm: x3 += h3
1282# asm 1: faddp <h3=float80#1,<x3=float80#6
1283# asm 2: faddp <h3=%st(0),<x3=%st(5)
1284faddp %st(0),%st(5)
1285# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<x0#75:
1286
1287# qhasm: x0 += h0
1288# asm 1: faddp <h0=float80#1,<x0=float80#2
1289# asm 2: faddp <h0=%st(0),<x0=%st(1)
1290faddp %st(0),%st(1)
1291# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:
1292
1293# qhasm: h3 = *(float64 *) &r3
1294# asm 1: fldl <r3=stack64#10
1295# asm 2: fldl <r3=168(%esp)
1296fldl 168(%esp)
1297# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:
1298
1299# qhasm: h3 *= x0
1300# asm 1: fmul <x0=float80#2,<h3=float80#1
1301# asm 2: fmul <x0=%st(1),<h3=%st(0)
1302fmul %st(1),%st(0)
1303# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:
1304
1305# qhasm: h2 = *(float64 *) &r2
1306# asm 1: fldl <r2=stack64#8
1307# asm 2: fldl <r2=152(%esp)
1308fldl 152(%esp)
1309# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:<h2#39:
1310
1311# qhasm: h2 *= x0
1312# asm 1: fmul <x0=float80#3,<h2=float80#1
1313# asm 2: fmul <x0=%st(2),<h2=%st(0)
1314fmul %st(2),%st(0)
1315# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:<h2#39:
1316
1317# qhasm: h1 = *(float64 *) &r1
1318# asm 1: fldl <r1=stack64#6
1319# asm 2: fldl <r1=136(%esp)
1320fldl 136(%esp)
1321# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:<h2#39:<h1#40:
1322
1323# qhasm: h1 *= x0
1324# asm 1: fmul <x0=float80#4,<h1=float80#1
1325# asm 2: fmul <x0=%st(3),<h1=%st(0)
1326fmul %st(3),%st(0)
1327# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:<h2#39:<h1#40:
1328
1329# qhasm: h0 = *(float64 *) &r0
1330# asm 1: fldl <r0=stack64#5
1331# asm 2: fldl <r0=128(%esp)
1332fldl 128(%esp)
1333# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<x0#75:<h3#38:<h2#39:<h1#40:<h0#41:
1334
1335# qhasm: h0 *= x0
1336# asm 1: fmulp <x0=float80#1,<h0=float80#5
1337# asm 2: fmulp <x0=%st(0),<h0=%st(4)
1338fmulp %st(0),%st(4)
1339# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:
1340
1341# qhasm: r2x1 = *(float64 *) &r2
1342# asm 1: fldl <r2=stack64#8
1343# asm 2: fldl <r2=152(%esp)
1344fldl 152(%esp)
1345# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r2x1#79:
1346
1347# qhasm: r2x1 *= x1
1348# asm 1: fmul <x1=float80#6,<r2x1=float80#1
1349# asm 2: fmul <x1=%st(5),<r2x1=%st(0)
1350fmul %st(5),%st(0)
1351# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r2x1#79:
1352
1353# qhasm: h3 += r2x1
1354# asm 1: faddp <r2x1=float80#1,<h3=float80#4
1355# asm 2: faddp <r2x1=%st(0),<h3=%st(3)
1356faddp %st(0),%st(3)
1357# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:
1358
1359# qhasm: r1x1 = *(float64 *) &r1
1360# asm 1: fldl <r1=stack64#6
1361# asm 2: fldl <r1=136(%esp)
1362fldl 136(%esp)
1363# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r1x1#80:
1364
1365# qhasm: r1x1 *= x1
1366# asm 1: fmul <x1=float80#6,<r1x1=float80#1
1367# asm 2: fmul <x1=%st(5),<r1x1=%st(0)
1368fmul %st(5),%st(0)
1369# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r1x1#80:
1370
1371# qhasm: h2 += r1x1
1372# asm 1: faddp <r1x1=float80#1,<h2=float80#3
1373# asm 2: faddp <r1x1=%st(0),<h2=%st(2)
1374faddp %st(0),%st(2)
1375# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:
1376
1377# qhasm: r0x1 = *(float64 *) &r0
1378# asm 1: fldl <r0=stack64#5
1379# asm 2: fldl <r0=128(%esp)
1380fldl 128(%esp)
1381# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r0x1#81:
1382
1383# qhasm: r0x1 *= x1
1384# asm 1: fmul <x1=float80#6,<r0x1=float80#1
1385# asm 2: fmul <x1=%st(5),<r0x1=%st(0)
1386fmul %st(5),%st(0)
1387# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<r0x1#81:
1388
1389# qhasm: h1 += r0x1
1390# asm 1: faddp <r0x1=float80#1,<h1=float80#2
1391# asm 2: faddp <r0x1=%st(0),<h1=%st(1)
1392faddp %st(0),%st(1)
1393# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:
1394
1395# qhasm: sr3x1 = *(float64 *) &sr3
1396# asm 1: fldl <sr3=stack64#11
1397# asm 2: fldl <sr3=176(%esp)
1398fldl 176(%esp)
1399# comment:fpstackfrombottom:<x3#78:<x2#77:<x1#76:<h0#41:<h3#38:<h2#39:<h1#40:<sr3x1#82:
1400
1401# qhasm: sr3x1 *= x1
1402# asm 1: fmulp <x1=float80#1,<sr3x1=float80#6
1403# asm 2: fmulp <x1=%st(0),<sr3x1=%st(5)
1404fmulp %st(0),%st(5)
1405# comment:fpstackfrombottom:<x3#78:<x2#77:<sr3x1#82:<h0#41:<h3#38:<h2#39:<h1#40:
1406
1407# qhasm: internal stacktop sr3x1
1408# asm 1: fxch <sr3x1=float80#5
1409# asm 2: fxch <sr3x1=%st(4)
1410fxch %st(4)
1411
1412# qhasm: h0 += sr3x1
1413# asm 1: faddp <sr3x1=float80#1,<h0=float80#4
1414# asm 2: faddp <sr3x1=%st(0),<h0=%st(3)
1415faddp %st(0),%st(3)
1416# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:
1417
1418# qhasm: r1x2 = *(float64 *) &r1
1419# asm 1: fldl <r1=stack64#6
1420# asm 2: fldl <r1=136(%esp)
1421fldl 136(%esp)
1422# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<r1x2#83:
1423
1424# qhasm: r1x2 *= x2
1425# asm 1: fmul <x2=float80#6,<r1x2=float80#1
1426# asm 2: fmul <x2=%st(5),<r1x2=%st(0)
1427fmul %st(5),%st(0)
1428# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<r1x2#83:
1429
1430# qhasm: h3 += r1x2
1431# asm 1: faddp <r1x2=float80#1,<h3=float80#3
1432# asm 2: faddp <r1x2=%st(0),<h3=%st(2)
1433faddp %st(0),%st(2)
1434# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:
1435
1436# qhasm: r0x2 = *(float64 *) &r0
1437# asm 1: fldl <r0=stack64#5
1438# asm 2: fldl <r0=128(%esp)
1439fldl 128(%esp)
1440# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<r0x2#84:
1441
1442# qhasm: r0x2 *= x2
1443# asm 1: fmul <x2=float80#6,<r0x2=float80#1
1444# asm 2: fmul <x2=%st(5),<r0x2=%st(0)
1445fmul %st(5),%st(0)
1446# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<r0x2#84:
1447
1448# qhasm: h2 += r0x2
1449# asm 1: faddp <r0x2=float80#1,<h2=float80#2
1450# asm 2: faddp <r0x2=%st(0),<h2=%st(1)
1451faddp %st(0),%st(1)
1452# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:
1453
1454# qhasm: sr3x2 = *(float64 *) &sr3
1455# asm 1: fldl <sr3=stack64#11
1456# asm 2: fldl <sr3=176(%esp)
1457fldl 176(%esp)
1458# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<sr3x2#85:
1459
1460# qhasm: sr3x2 *= x2
1461# asm 1: fmul <x2=float80#6,<sr3x2=float80#1
1462# asm 2: fmul <x2=%st(5),<sr3x2=%st(0)
1463fmul %st(5),%st(0)
1464# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<sr3x2#85:
1465
1466# qhasm: h1 += sr3x2
1467# asm 1: faddp <sr3x2=float80#1,<h1=float80#5
1468# asm 2: faddp <sr3x2=%st(0),<h1=%st(4)
1469faddp %st(0),%st(4)
1470# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:
1471
1472# qhasm: sr2x2 = *(float64 *) &sr2
1473# asm 1: fldl <sr2=stack64#9
1474# asm 2: fldl <sr2=160(%esp)
1475fldl 160(%esp)
1476# comment:fpstackfrombottom:<x3#78:<x2#77:<h1#40:<h0#41:<h3#38:<h2#39:<sr2x2#86:
1477
1478# qhasm: sr2x2 *= x2
1479# asm 1: fmulp <x2=float80#1,<sr2x2=float80#6
1480# asm 2: fmulp <x2=%st(0),<sr2x2=%st(5)
1481fmulp %st(0),%st(5)
1482# comment:fpstackfrombottom:<x3#78:<sr2x2#86:<h1#40:<h0#41:<h3#38:<h2#39:
1483
1484# qhasm: internal stacktop sr2x2
1485# asm 1: fxch <sr2x2=float80#5
1486# asm 2: fxch <sr2x2=%st(4)
1487fxch %st(4)
1488
1489# qhasm: h0 += sr2x2
1490# asm 1: faddp <sr2x2=float80#1,<h0=float80#3
1491# asm 2: faddp <sr2x2=%st(0),<h0=%st(2)
1492faddp %st(0),%st(2)
1493# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:
1494
1495# qhasm: r0x3 = *(float64 *) &r0
1496# asm 1: fldl <r0=stack64#5
1497# asm 2: fldl <r0=128(%esp)
1498fldl 128(%esp)
1499# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<r0x3#87:
1500
1501# qhasm: r0x3 *= x3
1502# asm 1: fmul <x3=float80#6,<r0x3=float80#1
1503# asm 2: fmul <x3=%st(5),<r0x3=%st(0)
1504fmul %st(5),%st(0)
1505# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<r0x3#87:
1506
1507# qhasm: h3 += r0x3
1508# asm 1: faddp <r0x3=float80#1,<h3=float80#2
1509# asm 2: faddp <r0x3=%st(0),<h3=%st(1)
1510faddp %st(0),%st(1)
1511# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:
1512
1513# qhasm: sr3x3 = *(float64 *) &sr3
1514# asm 1: fldl <sr3=stack64#11
1515# asm 2: fldl <sr3=176(%esp)
1516fldl 176(%esp)
1517# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<sr3x3#88:
1518
1519# qhasm: sr3x3 *= x3
1520# asm 1: fmul <x3=float80#6,<sr3x3=float80#1
1521# asm 2: fmul <x3=%st(5),<sr3x3=%st(0)
1522fmul %st(5),%st(0)
1523# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<sr3x3#88:
1524
1525# qhasm: h2 += sr3x3
1526# asm 1: faddp <sr3x3=float80#1,<h2=float80#5
1527# asm 2: faddp <sr3x3=%st(0),<h2=%st(4)
1528faddp %st(0),%st(4)
1529# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:
1530
1531# qhasm: sr2x3 = *(float64 *) &sr2
1532# asm 1: fldl <sr2=stack64#9
1533# asm 2: fldl <sr2=160(%esp)
1534fldl 160(%esp)
1535# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<sr2x3#89:
1536
1537# qhasm: sr2x3 *= x3
1538# asm 1: fmul <x3=float80#6,<sr2x3=float80#1
1539# asm 2: fmul <x3=%st(5),<sr2x3=%st(0)
1540fmul %st(5),%st(0)
1541# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<sr2x3#89:
1542
1543# qhasm: h1 += sr2x3
1544# asm 1: faddp <sr2x3=float80#1,<h1=float80#4
1545# asm 2: faddp <sr2x3=%st(0),<h1=%st(3)
1546faddp %st(0),%st(3)
1547# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:
1548
1549# qhasm: sr1x3 = *(float64 *) &sr1
1550# asm 1: fldl <sr1=stack64#7
1551# asm 2: fldl <sr1=144(%esp)
1552fldl 144(%esp)
1553# comment:fpstackfrombottom:<x3#78:<h2#39:<h1#40:<h0#41:<h3#38:<sr1x3#90:
1554
1555# qhasm: sr1x3 *= x3
1556# asm 1: fmulp <x3=float80#1,<sr1x3=float80#6
1557# asm 2: fmulp <x3=%st(0),<sr1x3=%st(5)
1558fmulp %st(0),%st(5)
1559# comment:fpstackfrombottom:<sr1x3#90:<h2#39:<h1#40:<h0#41:<h3#38:
1560
1561# qhasm: internal stacktop sr1x3
1562# asm 1: fxch <sr1x3=float80#5
1563# asm 2: fxch <sr1x3=%st(4)
1564fxch %st(4)
1565
1566# qhasm: h0 += sr1x3
1567# asm 1: faddp <sr1x3=float80#1,<h0=float80#2
1568# asm 2: faddp <sr1x3=%st(0),<h0=%st(1)
1569faddp %st(0),%st(1)
1570# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1571# comment:fp stack unchanged by fallthrough
1572# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1573
1574# qhasm: addatmost15bytes:
1575._addatmost15bytes:
1576# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1577
1578# qhasm: =? l - 0
1579# asm 1: cmp $0,<l=int32#2
1580# asm 2: cmp $0,<l=%ecx
1581cmp $0,%ecx
1582# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1583# comment:fp stack unchanged by jump
1584# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1585
1586# qhasm: goto nomorebytes if =
1587je ._nomorebytes
1588# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1589# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1590
1591# qhasm: stack128 lastchunk
1592# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1593# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1594
1595# qhasm: int32 destination
1596# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1597
1598# qhasm: ((uint32 *)&lastchunk)[0] = 0
1599# asm 1: movl $0,>lastchunk=stack128#1
1600# asm 2: movl $0,>lastchunk=64(%esp)
1601movl $0,64(%esp)
1602# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1603
1604# qhasm: ((uint32 *)&lastchunk)[1] = 0
1605# asm 1: movl $0,4+<lastchunk=stack128#1
1606# asm 2: movl $0,4+<lastchunk=64(%esp)
1607movl $0,4+64(%esp)
1608# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1609
1610# qhasm: ((uint32 *)&lastchunk)[2] = 0
1611# asm 1: movl $0,8+<lastchunk=stack128#1
1612# asm 2: movl $0,8+<lastchunk=64(%esp)
1613movl $0,8+64(%esp)
1614# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1615
1616# qhasm: ((uint32 *)&lastchunk)[3] = 0
1617# asm 1: movl $0,12+<lastchunk=stack128#1
1618# asm 2: movl $0,12+<lastchunk=64(%esp)
1619movl $0,12+64(%esp)
1620# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1621
1622# qhasm: destination = &lastchunk
1623# asm 1: leal <lastchunk=stack128#1,>destination=int32#6
1624# asm 2: leal <lastchunk=64(%esp),>destination=%edi
1625leal 64(%esp),%edi
1626# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1627# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1628# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1629# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1630
1631# qhasm: while (l) { *destination++ = *m++; --l }
1632rep movsb
1633# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1634
1635# qhasm: *(uint8 *) (destination + 0) = 1
1636# asm 1: movb $1,0(<destination=int32#6)
1637# asm 2: movb $1,0(<destination=%edi)
1638movb $1,0(%edi)
1639# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1640
1641# qhasm: m3 = ((uint32 *)&lastchunk)[3]
1642# asm 1: movl 12+<lastchunk=stack128#1,>m3=int32#1
1643# asm 2: movl 12+<lastchunk=64(%esp),>m3=%eax
1644movl 12+64(%esp),%eax
1645# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1646
1647# qhasm: m2 = ((uint32 *)&lastchunk)[2]
1648# asm 1: movl 8+<lastchunk=stack128#1,>m2=int32#2
1649# asm 2: movl 8+<lastchunk=64(%esp),>m2=%ecx
1650movl 8+64(%esp),%ecx
1651# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1652
1653# qhasm: m1 = ((uint32 *)&lastchunk)[1]
1654# asm 1: movl 4+<lastchunk=stack128#1,>m1=int32#3
1655# asm 2: movl 4+<lastchunk=64(%esp),>m1=%edx
1656movl 4+64(%esp),%edx
1657# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1658
1659# qhasm: m0 = ((uint32 *)&lastchunk)[0]
1660# asm 1: movl <lastchunk=stack128#1,>m0=int32#4
1661# asm 2: movl <lastchunk=64(%esp),>m0=%ebx
1662movl 64(%esp),%ebx
1663# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1664
1665# qhasm: inplace d3 bottom = m3
1666# asm 1: movl <m3=int32#1,<d3=stack64#4
1667# asm 2: movl <m3=%eax,<d3=120(%esp)
1668movl %eax,120(%esp)
1669# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1670
1671# qhasm: inplace d2 bottom = m2
1672# asm 1: movl <m2=int32#2,<d2=stack64#3
1673# asm 2: movl <m2=%ecx,<d2=112(%esp)
1674movl %ecx,112(%esp)
1675# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1676
1677# qhasm: inplace d1 bottom = m1
1678# asm 1: movl <m1=int32#3,<d1=stack64#2
1679# asm 2: movl <m1=%edx,<d1=104(%esp)
1680movl %edx,104(%esp)
1681# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1682
1683# qhasm: inplace d0 bottom = m0
1684# asm 1: movl <m0=int32#4,<d0=stack64#1
1685# asm 2: movl <m0=%ebx,<d0=96(%esp)
1686movl %ebx,96(%esp)
1687# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
1688
1689# qhasm: internal stacktop h3
1690# asm 1: fxch <h3=float80#4
1691# asm 2: fxch <h3=%st(3)
1692fxch %st(3)
1693
1694# qhasm: h3 += *(float64 *) &d3
1695# asm 1: faddl <d3=stack64#4
1696# asm 2: faddl <d3=120(%esp)
1697faddl 120(%esp)
1698# comment:fpstackfrombottom:<h0#41:<h2#39:<h1#40:<h3#38:
1699
1700# qhasm: h3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset3
1701fsubl crypto_onetimeauth_poly1305_x86_doffset3
1702# comment:fpstackfrombottom:<h0#41:<h2#39:<h1#40:<h3#38:
1703
1704# qhasm: internal stacktop h2
1705# asm 1: fxch <h2=float80#3
1706# asm 2: fxch <h2=%st(2)
1707fxch %st(2)
1708
1709# qhasm: h2 += *(float64 *) &d2
1710# asm 1: faddl <d2=stack64#3
1711# asm 2: faddl <d2=112(%esp)
1712faddl 112(%esp)
1713# comment:fpstackfrombottom:<h0#41:<h3#38:<h1#40:<h2#39:
1714
1715# qhasm: h2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset2
1716fsubl crypto_onetimeauth_poly1305_x86_doffset2
1717# comment:fpstackfrombottom:<h0#41:<h3#38:<h1#40:<h2#39:
1718
1719# qhasm: internal stacktop h1
1720# asm 1: fxch <h1=float80#2
1721# asm 2: fxch <h1=%st(1)
1722fxch %st(1)
1723
1724# qhasm: h1 += *(float64 *) &d1
1725# asm 1: faddl <d1=stack64#2
1726# asm 2: faddl <d1=104(%esp)
1727faddl 104(%esp)
1728# comment:fpstackfrombottom:<h0#41:<h3#38:<h2#39:<h1#40:
1729
1730# qhasm: h1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset1
1731fsubl crypto_onetimeauth_poly1305_x86_doffset1
1732# comment:fpstackfrombottom:<h0#41:<h3#38:<h2#39:<h1#40:
1733
1734# qhasm: internal stacktop h0
1735# asm 1: fxch <h0=float80#4
1736# asm 2: fxch <h0=%st(3)
1737fxch %st(3)
1738
1739# qhasm: h0 += *(float64 *) &d0
1740# asm 1: faddl <d0=stack64#1
1741# asm 2: faddl <d0=96(%esp)
1742faddl 96(%esp)
1743# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:
1744
1745# qhasm: h0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_doffset0
1746fsubl crypto_onetimeauth_poly1305_x86_doffset0
1747# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:
1748
1749# qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
1750fldl crypto_onetimeauth_poly1305_x86_alpha130
1751# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:
1752
1753# qhasm: x0 += h3
1754# asm 1: fadd <h3=float80#4,<x0=float80#1
1755# asm 2: fadd <h3=%st(3),<x0=%st(0)
1756fadd %st(3),%st(0)
1757# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:
1758
1759# qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
1760fsubl crypto_onetimeauth_poly1305_x86_alpha130
1761# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:
1762
1763# qhasm: h3 -= x0
1764# asm 1: fsubr <x0=float80#1,<h3=float80#4
1765# asm 2: fsubr <x0=%st(0),<h3=%st(3)
1766fsubr %st(0),%st(3)
1767# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:
1768
1769# qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
1770fmull crypto_onetimeauth_poly1305_x86_scale
1771# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:
1772
1773# qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
1774fldl crypto_onetimeauth_poly1305_x86_alpha32
1775# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:
1776
1777# qhasm: x1 += h0
1778# asm 1: fadd <h0=float80#3,<x1=float80#1
1779# asm 2: fadd <h0=%st(2),<x1=%st(0)
1780fadd %st(2),%st(0)
1781# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:
1782
1783# qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
1784fsubl crypto_onetimeauth_poly1305_x86_alpha32
1785# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:
1786
1787# qhasm: h0 -= x1
1788# asm 1: fsubr <x1=float80#1,<h0=float80#3
1789# asm 2: fsubr <x1=%st(0),<h0=%st(2)
1790fsubr %st(0),%st(2)
1791# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:
1792
1793# qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
1794fldl crypto_onetimeauth_poly1305_x86_alpha64
1795# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:
1796
1797# qhasm: x2 += h1
1798# asm 1: fadd <h1=float80#7,<x2=float80#1
1799# asm 2: fadd <h1=%st(6),<x2=%st(0)
1800fadd %st(6),%st(0)
1801# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:
1802
1803# qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
1804fsubl crypto_onetimeauth_poly1305_x86_alpha64
1805# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:
1806
1807# qhasm: h1 -= x2
1808# asm 1: fsubr <x2=float80#1,<h1=float80#7
1809# asm 2: fsubr <x2=%st(0),<h1=%st(6)
1810fsubr %st(0),%st(6)
1811# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:
1812
1813# qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
1814fldl crypto_onetimeauth_poly1305_x86_alpha96
1815# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:<x3#101:
1816
1817# qhasm: x3 += h2
1818# asm 1: fadd <h2=float80#6,<x3=float80#1
1819# asm 2: fadd <h2=%st(5),<x3=%st(0)
1820fadd %st(5),%st(0)
1821# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:<x3#101:
1822
1823# qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
1824fsubl crypto_onetimeauth_poly1305_x86_alpha96
1825# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:<x3#101:
1826
1827# qhasm: h2 -= x3
1828# asm 1: fsubr <x3=float80#1,<h2=float80#6
1829# asm 2: fsubr <x3=%st(0),<h2=%st(5)
1830fsubr %st(0),%st(5)
1831# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<h0#41:<x0#98:<x1#99:<x2#100:<x3#101:
1832
1833# qhasm: internal stacktop h0
1834# asm 1: fxch <h0=float80#5
1835# asm 2: fxch <h0=%st(4)
1836fxch %st(4)
1837
1838# qhasm: x0 += h0
1839# asm 1: faddp <h0=float80#1,<x0=float80#4
1840# asm 2: faddp <h0=%st(0),<x0=%st(3)
1841faddp %st(0),%st(3)
1842# comment:fpstackfrombottom:<h1#40:<h3#38:<h2#39:<x3#101:<x0#98:<x1#99:<x2#100:
1843
1844# qhasm: internal stacktop h1
1845# asm 1: fxch <h1=float80#7
1846# asm 2: fxch <h1=%st(6)
1847fxch %st(6)
1848
1849# qhasm: x1 += h1
1850# asm 1: faddp <h1=float80#1,<x1=float80#2
1851# asm 2: faddp <h1=%st(0),<x1=%st(1)
1852faddp %st(0),%st(1)
1853# comment:fpstackfrombottom:<x2#100:<h3#38:<h2#39:<x3#101:<x0#98:<x1#99:
1854
1855# qhasm: internal stacktop h2
1856# asm 1: fxch <h2=float80#4
1857# asm 2: fxch <h2=%st(3)
1858fxch %st(3)
1859
1860# qhasm: x2 += h2
1861# asm 1: faddp <h2=float80#1,<x2=float80#6
1862# asm 2: faddp <h2=%st(0),<x2=%st(5)
1863faddp %st(0),%st(5)
1864# comment:fpstackfrombottom:<x2#100:<h3#38:<x1#99:<x3#101:<x0#98:
1865
1866# qhasm: internal stacktop h3
1867# asm 1: fxch <h3=float80#4
1868# asm 2: fxch <h3=%st(3)
1869fxch %st(3)
1870
1871# qhasm: x3 += h3
1872# asm 1: faddp <h3=float80#1,<x3=float80#2
1873# asm 2: faddp <h3=%st(0),<x3=%st(1)
1874faddp %st(0),%st(1)
1875# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:
1876
1877# qhasm: h3 = *(float64 *) &r3
1878# asm 1: fldl <r3=stack64#10
1879# asm 2: fldl <r3=168(%esp)
1880fldl 168(%esp)
1881# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:
1882
1883# qhasm: h3 *= x0
1884# asm 1: fmul <x0=float80#4,<h3=float80#1
1885# asm 2: fmul <x0=%st(3),<h3=%st(0)
1886fmul %st(3),%st(0)
1887# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:
1888
1889# qhasm: h2 = *(float64 *) &r2
1890# asm 1: fldl <r2=stack64#8
1891# asm 2: fldl <r2=152(%esp)
1892fldl 152(%esp)
1893# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:<h2#39:
1894
1895# qhasm: h2 *= x0
1896# asm 1: fmul <x0=float80#5,<h2=float80#1
1897# asm 2: fmul <x0=%st(4),<h2=%st(0)
1898fmul %st(4),%st(0)
1899# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:<h2#39:
1900
1901# qhasm: h1 = *(float64 *) &r1
1902# asm 1: fldl <r1=stack64#6
1903# asm 2: fldl <r1=136(%esp)
1904fldl 136(%esp)
1905# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1906
1907# qhasm: h1 *= x0
1908# asm 1: fmul <x0=float80#6,<h1=float80#1
1909# asm 2: fmul <x0=%st(5),<h1=%st(0)
1910fmul %st(5),%st(0)
1911# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1912
1913# qhasm: h0 = *(float64 *) &r0
1914# asm 1: fldl <r0=stack64#5
1915# asm 2: fldl <r0=128(%esp)
1916fldl 128(%esp)
1917# comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<h0#41:
1918
1919# qhasm: h0 *= x0
1920# asm 1: fmulp <x0=float80#1,<h0=float80#7
1921# asm 2: fmulp <x0=%st(0),<h0=%st(6)
1922fmulp %st(0),%st(6)
1923# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1924
1925# qhasm: r2x1 = *(float64 *) &r2
1926# asm 1: fldl <r2=stack64#8
1927# asm 2: fldl <r2=152(%esp)
1928fldl 152(%esp)
1929# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r2x1#102:
1930
1931# qhasm: r2x1 *= x1
1932# asm 1: fmul <x1=float80#6,<r2x1=float80#1
1933# asm 2: fmul <x1=%st(5),<r2x1=%st(0)
1934fmul %st(5),%st(0)
1935# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r2x1#102:
1936
1937# qhasm: h3 += r2x1
1938# asm 1: faddp <r2x1=float80#1,<h3=float80#4
1939# asm 2: faddp <r2x1=%st(0),<h3=%st(3)
1940faddp %st(0),%st(3)
1941# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1942
1943# qhasm: r1x1 = *(float64 *) &r1
1944# asm 1: fldl <r1=stack64#6
1945# asm 2: fldl <r1=136(%esp)
1946fldl 136(%esp)
1947# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r1x1#103:
1948
1949# qhasm: r1x1 *= x1
1950# asm 1: fmul <x1=float80#6,<r1x1=float80#1
1951# asm 2: fmul <x1=%st(5),<r1x1=%st(0)
1952fmul %st(5),%st(0)
1953# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r1x1#103:
1954
1955# qhasm: h2 += r1x1
1956# asm 1: faddp <r1x1=float80#1,<h2=float80#3
1957# asm 2: faddp <r1x1=%st(0),<h2=%st(2)
1958faddp %st(0),%st(2)
1959# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1960
1961# qhasm: r0x1 = *(float64 *) &r0
1962# asm 1: fldl <r0=stack64#5
1963# asm 2: fldl <r0=128(%esp)
1964fldl 128(%esp)
1965# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r0x1#104:
1966
1967# qhasm: r0x1 *= x1
1968# asm 1: fmul <x1=float80#6,<r0x1=float80#1
1969# asm 2: fmul <x1=%st(5),<r0x1=%st(0)
1970fmul %st(5),%st(0)
1971# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<r0x1#104:
1972
1973# qhasm: h1 += r0x1
1974# asm 1: faddp <r0x1=float80#1,<h1=float80#2
1975# asm 2: faddp <r0x1=%st(0),<h1=%st(1)
1976faddp %st(0),%st(1)
1977# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:
1978
1979# qhasm: sr3x1 = *(float64 *) &sr3
1980# asm 1: fldl <sr3=stack64#11
1981# asm 2: fldl <sr3=176(%esp)
1982fldl 176(%esp)
1983# comment:fpstackfrombottom:<x2#100:<h0#41:<x1#99:<x3#101:<h3#38:<h2#39:<h1#40:<sr3x1#105:
1984
1985# qhasm: sr3x1 *= x1
1986# asm 1: fmulp <x1=float80#1,<sr3x1=float80#6
1987# asm 2: fmulp <x1=%st(0),<sr3x1=%st(5)
1988fmulp %st(0),%st(5)
1989# comment:fpstackfrombottom:<x2#100:<h0#41:<sr3x1#105:<x3#101:<h3#38:<h2#39:<h1#40:
1990
1991# qhasm: internal stacktop sr3x1
1992# asm 1: fxch <sr3x1=float80#5
1993# asm 2: fxch <sr3x1=%st(4)
1994fxch %st(4)
1995
1996# qhasm: h0 += sr3x1
1997# asm 1: faddp <sr3x1=float80#1,<h0=float80#6
1998# asm 2: faddp <sr3x1=%st(0),<h0=%st(5)
1999faddp %st(0),%st(5)
2000# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:
2001
2002# qhasm: r1x2 = *(float64 *) &r1
2003# asm 1: fldl <r1=stack64#6
2004# asm 2: fldl <r1=136(%esp)
2005fldl 136(%esp)
2006# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<r1x2#106:
2007
2008# qhasm: r1x2 *= x2
2009# asm 1: fmul <x2=float80#7,<r1x2=float80#1
2010# asm 2: fmul <x2=%st(6),<r1x2=%st(0)
2011fmul %st(6),%st(0)
2012# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<r1x2#106:
2013
2014# qhasm: h3 += r1x2
2015# asm 1: faddp <r1x2=float80#1,<h3=float80#3
2016# asm 2: faddp <r1x2=%st(0),<h3=%st(2)
2017faddp %st(0),%st(2)
2018# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:
2019
2020# qhasm: r0x2 = *(float64 *) &r0
2021# asm 1: fldl <r0=stack64#5
2022# asm 2: fldl <r0=128(%esp)
2023fldl 128(%esp)
2024# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<r0x2#107:
2025
2026# qhasm: r0x2 *= x2
2027# asm 1: fmul <x2=float80#7,<r0x2=float80#1
2028# asm 2: fmul <x2=%st(6),<r0x2=%st(0)
2029fmul %st(6),%st(0)
2030# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<r0x2#107:
2031
2032# qhasm: h2 += r0x2
2033# asm 1: faddp <r0x2=float80#1,<h2=float80#2
2034# asm 2: faddp <r0x2=%st(0),<h2=%st(1)
2035faddp %st(0),%st(1)
2036# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:
2037
2038# qhasm: sr3x2 = *(float64 *) &sr3
2039# asm 1: fldl <sr3=stack64#11
2040# asm 2: fldl <sr3=176(%esp)
2041fldl 176(%esp)
2042# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<sr3x2#108:
2043
2044# qhasm: sr3x2 *= x2
2045# asm 1: fmul <x2=float80#7,<sr3x2=float80#1
2046# asm 2: fmul <x2=%st(6),<sr3x2=%st(0)
2047fmul %st(6),%st(0)
2048# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<sr3x2#108:
2049
2050# qhasm: h1 += sr3x2
2051# asm 1: faddp <sr3x2=float80#1,<h1=float80#5
2052# asm 2: faddp <sr3x2=%st(0),<h1=%st(4)
2053faddp %st(0),%st(4)
2054# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:
2055
2056# qhasm: sr2x2 = *(float64 *) &sr2
2057# asm 1: fldl <sr2=stack64#9
2058# asm 2: fldl <sr2=160(%esp)
2059fldl 160(%esp)
2060# comment:fpstackfrombottom:<x2#100:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:<sr2x2#109:
2061
2062# qhasm: sr2x2 *= x2
2063# asm 1: fmulp <x2=float80#1,<sr2x2=float80#7
2064# asm 2: fmulp <x2=%st(0),<sr2x2=%st(6)
2065fmulp %st(0),%st(6)
2066# comment:fpstackfrombottom:<sr2x2#109:<h0#41:<h1#40:<x3#101:<h3#38:<h2#39:
2067
2068# qhasm: internal stacktop sr2x2
2069# asm 1: fxch <sr2x2=float80#6
2070# asm 2: fxch <sr2x2=%st(5)
2071fxch %st(5)
2072
2073# qhasm: h0 += sr2x2
2074# asm 1: faddp <sr2x2=float80#1,<h0=float80#5
2075# asm 2: faddp <sr2x2=%st(0),<h0=%st(4)
2076faddp %st(0),%st(4)
2077# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:
2078
2079# qhasm: r0x3 = *(float64 *) &r0
2080# asm 1: fldl <r0=stack64#5
2081# asm 2: fldl <r0=128(%esp)
2082fldl 128(%esp)
2083# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<r0x3#110:
2084
2085# qhasm: r0x3 *= x3
2086# asm 1: fmul <x3=float80#3,<r0x3=float80#1
2087# asm 2: fmul <x3=%st(2),<r0x3=%st(0)
2088fmul %st(2),%st(0)
2089# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<r0x3#110:
2090
2091# qhasm: h3 += r0x3
2092# asm 1: faddp <r0x3=float80#1,<h3=float80#2
2093# asm 2: faddp <r0x3=%st(0),<h3=%st(1)
2094faddp %st(0),%st(1)
2095# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:
2096
2097# qhasm: sr3x3 = *(float64 *) &sr3
2098# asm 1: fldl <sr3=stack64#11
2099# asm 2: fldl <sr3=176(%esp)
2100fldl 176(%esp)
2101# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<sr3x3#111:
2102
2103# qhasm: sr3x3 *= x3
2104# asm 1: fmul <x3=float80#3,<sr3x3=float80#1
2105# asm 2: fmul <x3=%st(2),<sr3x3=%st(0)
2106fmul %st(2),%st(0)
2107# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<sr3x3#111:
2108
2109# qhasm: h2 += sr3x3
2110# asm 1: faddp <sr3x3=float80#1,<h2=float80#6
2111# asm 2: faddp <sr3x3=%st(0),<h2=%st(5)
2112faddp %st(0),%st(5)
2113# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:
2114
2115# qhasm: sr2x3 = *(float64 *) &sr2
2116# asm 1: fldl <sr2=stack64#9
2117# asm 2: fldl <sr2=160(%esp)
2118fldl 160(%esp)
2119# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<sr2x3#112:
2120
2121# qhasm: sr2x3 *= x3
2122# asm 1: fmul <x3=float80#3,<sr2x3=float80#1
2123# asm 2: fmul <x3=%st(2),<sr2x3=%st(0)
2124fmul %st(2),%st(0)
2125# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<sr2x3#112:
2126
2127# qhasm: h1 += sr2x3
2128# asm 1: faddp <sr2x3=float80#1,<h1=float80#4
2129# asm 2: faddp <sr2x3=%st(0),<h1=%st(3)
2130faddp %st(0),%st(3)
2131# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:
2132
2133# qhasm: sr1x3 = *(float64 *) &sr1
2134# asm 1: fldl <sr1=stack64#7
2135# asm 2: fldl <sr1=144(%esp)
2136fldl 144(%esp)
2137# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<x3#101:<h3#38:<sr1x3#113:
2138
2139# qhasm: sr1x3 *= x3
2140# asm 1: fmulp <x3=float80#1,<sr1x3=float80#3
2141# asm 2: fmulp <x3=%st(0),<sr1x3=%st(2)
2142fmulp %st(0),%st(2)
2143# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<sr1x3#113:<h3#38:
2144
2145# qhasm: internal stacktop sr1x3
2146# asm 1: fxch <sr1x3=float80#2
2147# asm 2: fxch <sr1x3=%st(1)
2148fxch %st(1)
2149
2150# qhasm: h0 += sr1x3
2151# asm 1: faddp <sr1x3=float80#1,<h0=float80#4
2152# asm 2: faddp <sr1x3=%st(0),<h0=%st(3)
2153faddp %st(0),%st(3)
2154# comment:fpstackfrombottom:<h2#39:<h0#41:<h1#40:<h3#38:
2155# comment:automatically reorganizing fp stack for fallthrough
2156
2157# qhasm: internal stacktop h2
2158# asm 1: fxch <h2=float80#4
2159# asm 2: fxch <h2=%st(3)
2160fxch %st(3)
2161# comment:fpstackfrombottom:<h3#38:<h0#41:<h1#40:<h2#39:
2162
2163# qhasm: internal stacktop h0
2164# asm 1: fxch <h0=float80#3
2165# asm 2: fxch <h0=%st(2)
2166fxch %st(2)
2167# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
2168# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
2169
2170# qhasm: nomorebytes:
2171._nomorebytes:
2172# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:
2173
2174# qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
2175fldl crypto_onetimeauth_poly1305_x86_alpha130
2176# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:
2177
2178# qhasm: x0 += h3
2179# asm 1: fadd <h3=float80#5,<x0=float80#1
2180# asm 2: fadd <h3=%st(4),<x0=%st(0)
2181fadd %st(4),%st(0)
2182# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:
2183
2184# qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha130
2185fsubl crypto_onetimeauth_poly1305_x86_alpha130
2186# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:
2187
2188# qhasm: h3 -= x0
2189# asm 1: fsubr <x0=float80#1,<h3=float80#5
2190# asm 2: fsubr <x0=%st(0),<h3=%st(4)
2191fsubr %st(0),%st(4)
2192# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:
2193
2194# qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_x86_scale
2195fmull crypto_onetimeauth_poly1305_x86_scale
2196# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:
2197
2198# qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
2199fldl crypto_onetimeauth_poly1305_x86_alpha32
2200# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:
2201
2202# qhasm: x1 += h0
2203# asm 1: fadd <h0=float80#3,<x1=float80#1
2204# asm 2: fadd <h0=%st(2),<x1=%st(0)
2205fadd %st(2),%st(0)
2206# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:
2207
2208# qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha32
2209fsubl crypto_onetimeauth_poly1305_x86_alpha32
2210# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:
2211
2212# qhasm: h0 -= x1
2213# asm 1: fsubr <x1=float80#1,<h0=float80#3
2214# asm 2: fsubr <x1=%st(0),<h0=%st(2)
2215fsubr %st(0),%st(2)
2216# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:
2217
2218# qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
2219fldl crypto_onetimeauth_poly1305_x86_alpha64
2220# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:
2221
2222# qhasm: x2 += h1
2223# asm 1: fadd <h1=float80#5,<x2=float80#1
2224# asm 2: fadd <h1=%st(4),<x2=%st(0)
2225fadd %st(4),%st(0)
2226# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:
2227
2228# qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha64
2229fsubl crypto_onetimeauth_poly1305_x86_alpha64
2230# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:
2231
2232# qhasm: h1 -= x2
2233# asm 1: fsubr <x2=float80#1,<h1=float80#5
2234# asm 2: fsubr <x2=%st(0),<h1=%st(4)
2235fsubr %st(0),%st(4)
2236# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:
2237
2238# qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
2239fldl crypto_onetimeauth_poly1305_x86_alpha96
2240# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:<x3#117:
2241
2242# qhasm: x3 += h2
2243# asm 1: fadd <h2=float80#7,<x3=float80#1
2244# asm 2: fadd <h2=%st(6),<x3=%st(0)
2245fadd %st(6),%st(0)
2246# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:<x3#117:
2247
2248# qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_x86_alpha96
2249fsubl crypto_onetimeauth_poly1305_x86_alpha96
2250# comment:fpstackfrombottom:<h3#38:<h2#39:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:<x3#117:
2251
2252# qhasm: stacktop h2
2253# asm 1: fxch <h2=float80#7
2254# asm 2: fxch <h2=%st(6)
2255fxch %st(6)
2256# comment:fpstackfrombottom:<h3#38:<x3#117:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:<h2#39:
2257
2258# qhasm: h2 -= x3
2259# asm 1: fsub <x3=float80#7,<h2=float80#1
2260# asm 2: fsub <x3=%st(6),<h2=%st(0)
2261fsub %st(6),%st(0)
2262# comment:fpstackfrombottom:<h3#38:<x3#117:<h1#40:<h0#41:<x0#114:<x1#115:<x2#116:<h2#39:
2263
2264# qhasm: internal stacktop h0
2265# asm 1: fxch <h0=float80#5
2266# asm 2: fxch <h0=%st(4)
2267fxch %st(4)
2268
2269# qhasm: x0 += h0
2270# asm 1: faddp <h0=float80#1,<x0=float80#4
2271# asm 2: faddp <h0=%st(0),<x0=%st(3)
2272faddp %st(0),%st(3)
2273# comment:fpstackfrombottom:<h3#38:<x3#117:<h1#40:<h2#39:<x0#114:<x1#115:<x2#116:
2274
2275# qhasm: internal stacktop h1
2276# asm 1: fxch <h1=float80#5
2277# asm 2: fxch <h1=%st(4)
2278fxch %st(4)
2279
2280# qhasm: x1 += h1
2281# asm 1: faddp <h1=float80#1,<x1=float80#2
2282# asm 2: faddp <h1=%st(0),<x1=%st(1)
2283faddp %st(0),%st(1)
2284# comment:fpstackfrombottom:<h3#38:<x3#117:<x2#116:<h2#39:<x0#114:<x1#115:
2285
2286# qhasm: internal stacktop h2
2287# asm 1: fxch <h2=float80#3
2288# asm 2: fxch <h2=%st(2)
2289fxch %st(2)
2290
2291# qhasm: x2 += h2
2292# asm 1: faddp <h2=float80#1,<x2=float80#4
2293# asm 2: faddp <h2=%st(0),<x2=%st(3)
2294faddp %st(0),%st(3)
2295# comment:fpstackfrombottom:<h3#38:<x3#117:<x2#116:<x1#115:<x0#114:
2296
2297# qhasm: internal stacktop h3
2298# asm 1: fxch <h3=float80#5
2299# asm 2: fxch <h3=%st(4)
2300fxch %st(4)
2301
2302# qhasm: x3 += h3
2303# asm 1: faddp <h3=float80#1,<x3=float80#4
2304# asm 2: faddp <h3=%st(0),<x3=%st(3)
2305faddp %st(0),%st(3)
2306# comment:fpstackfrombottom:<x0#114:<x3#117:<x2#116:<x1#115:
2307
2308# qhasm: internal stacktop x0
2309# asm 1: fxch <x0=float80#4
2310# asm 2: fxch <x0=%st(3)
2311fxch %st(3)
2312
2313# qhasm: x0 += *(float64 *) &crypto_onetimeauth_poly1305_x86_hoffset0
2314faddl crypto_onetimeauth_poly1305_x86_hoffset0
2315# comment:fpstackfrombottom:<x1#115:<x3#117:<x2#116:<x0#114:
2316
2317# qhasm: internal stacktop x1
2318# asm 1: fxch <x1=float80#4
2319# asm 2: fxch <x1=%st(3)
2320fxch %st(3)
2321
2322# qhasm: x1 += *(float64 *) &crypto_onetimeauth_poly1305_x86_hoffset1
2323faddl crypto_onetimeauth_poly1305_x86_hoffset1
2324# comment:fpstackfrombottom:<x0#114:<x3#117:<x2#116:<x1#115:
2325
2326# qhasm: internal stacktop x2
2327# asm 1: fxch <x2=float80#2
2328# asm 2: fxch <x2=%st(1)
2329fxch %st(1)
2330
2331# qhasm: x2 += *(float64 *) &crypto_onetimeauth_poly1305_x86_hoffset2
2332faddl crypto_onetimeauth_poly1305_x86_hoffset2
2333# comment:fpstackfrombottom:<x0#114:<x3#117:<x1#115:<x2#116:
2334
2335# qhasm: internal stacktop x3
2336# asm 1: fxch <x3=float80#3
2337# asm 2: fxch <x3=%st(2)
2338fxch %st(2)
2339
2340# qhasm: x3 += *(float64 *) &crypto_onetimeauth_poly1305_x86_hoffset3
2341faddl crypto_onetimeauth_poly1305_x86_hoffset3
2342# comment:fpstackfrombottom:<x0#114:<x2#116:<x1#115:<x3#117:
2343
2344# qhasm: internal stacktop x0
2345# asm 1: fxch <x0=float80#4
2346# asm 2: fxch <x0=%st(3)
2347fxch %st(3)
2348
2349# qhasm: *(float64 *) &d0 = x0
2350# asm 1: fstpl >d0=stack64#1
2351# asm 2: fstpl >d0=96(%esp)
2352fstpl 96(%esp)
2353# comment:fpstackfrombottom:<x3#117:<x2#116:<x1#115:
2354
2355# qhasm: *(float64 *) &d1 = x1
2356# asm 1: fstpl >d1=stack64#2
2357# asm 2: fstpl >d1=104(%esp)
2358fstpl 104(%esp)
2359# comment:fpstackfrombottom:<x3#117:<x2#116:
2360
2361# qhasm: *(float64 *) &d2 = x2
2362# asm 1: fstpl >d2=stack64#3
2363# asm 2: fstpl >d2=112(%esp)
2364fstpl 112(%esp)
2365# comment:fpstackfrombottom:<x3#117:
2366
2367# qhasm: *(float64 *) &d3 = x3
2368# asm 1: fstpl >d3=stack64#4
2369# asm 2: fstpl >d3=120(%esp)
2370fstpl 120(%esp)
2371# comment:fpstackfrombottom:
2372
2373# qhasm: int32 f0
2374
2375# qhasm: int32 f1
2376
2377# qhasm: int32 f2
2378
2379# qhasm: int32 f3
2380
2381# qhasm: int32 f4
2382
2383# qhasm: int32 g0
2384
2385# qhasm: int32 g1
2386
2387# qhasm: int32 g2
2388
2389# qhasm: int32 g3
2390
2391# qhasm: int32 f
2392
2393# qhasm: int32 notf
2394
2395# qhasm: stack32 f1_stack
2396
2397# qhasm: stack32 f2_stack
2398
2399# qhasm: stack32 f3_stack
2400
2401# qhasm: stack32 f4_stack
2402
2403# qhasm: stack32 g0_stack
2404
2405# qhasm: stack32 g1_stack
2406
2407# qhasm: stack32 g2_stack
2408
2409# qhasm: stack32 g3_stack
2410
2411# qhasm: g0 = top d0
2412# asm 1: movl <d0=stack64#1,>g0=int32#1
2413# asm 2: movl <d0=100(%esp),>g0=%eax
2414movl 100(%esp),%eax
2415
2416# qhasm: g0 &= 63
2417# asm 1: and $63,<g0=int32#1
2418# asm 2: and $63,<g0=%eax
2419and $63,%eax
2420
2421# qhasm: g1 = top d1
2422# asm 1: movl <d1=stack64#2,>g1=int32#2
2423# asm 2: movl <d1=108(%esp),>g1=%ecx
2424movl 108(%esp),%ecx
2425
2426# qhasm: g1 &= 63
2427# asm 1: and $63,<g1=int32#2
2428# asm 2: and $63,<g1=%ecx
2429and $63,%ecx
2430
2431# qhasm: g2 = top d2
2432# asm 1: movl <d2=stack64#3,>g2=int32#3
2433# asm 2: movl <d2=116(%esp),>g2=%edx
2434movl 116(%esp),%edx
2435
2436# qhasm: g2 &= 63
2437# asm 1: and $63,<g2=int32#3
2438# asm 2: and $63,<g2=%edx
2439and $63,%edx
2440
2441# qhasm: g3 = top d3
2442# asm 1: movl <d3=stack64#4,>g3=int32#4
2443# asm 2: movl <d3=124(%esp),>g3=%ebx
2444movl 124(%esp),%ebx
2445
2446# qhasm: g3 &= 63
2447# asm 1: and $63,<g3=int32#4
2448# asm 2: and $63,<g3=%ebx
2449and $63,%ebx
2450
2451# qhasm: f1 = bottom d1
2452# asm 1: movl <d1=stack64#2,>f1=int32#5
2453# asm 2: movl <d1=104(%esp),>f1=%esi
2454movl 104(%esp),%esi
2455
2456# qhasm: carry? f1 += g0
2457# asm 1: addl <g0=int32#1,<f1=int32#5
2458# asm 2: addl <g0=%eax,<f1=%esi
2459addl %eax,%esi
2460
2461# qhasm: f1_stack = f1
2462# asm 1: movl <f1=int32#5,>f1_stack=stack32#8
2463# asm 2: movl <f1=%esi,>f1_stack=28(%esp)
2464movl %esi,28(%esp)
2465
2466# qhasm: f2 = bottom d2
2467# asm 1: movl <d2=stack64#3,>f2=int32#1
2468# asm 2: movl <d2=112(%esp),>f2=%eax
2469movl 112(%esp),%eax
2470
2471# qhasm: carry? f2 += g1 + carry
2472# asm 1: adcl <g1=int32#2,<f2=int32#1
2473# asm 2: adcl <g1=%ecx,<f2=%eax
2474adcl %ecx,%eax
2475
2476# qhasm: f2_stack = f2
2477# asm 1: movl <f2=int32#1,>f2_stack=stack32#9
2478# asm 2: movl <f2=%eax,>f2_stack=32(%esp)
2479movl %eax,32(%esp)
2480
2481# qhasm: f3 = bottom d3
2482# asm 1: movl <d3=stack64#4,>f3=int32#1
2483# asm 2: movl <d3=120(%esp),>f3=%eax
2484movl 120(%esp),%eax
2485
2486# qhasm: carry? f3 += g2 + carry
2487# asm 1: adcl <g2=int32#3,<f3=int32#1
2488# asm 2: adcl <g2=%edx,<f3=%eax
2489adcl %edx,%eax
2490
2491# qhasm: f3_stack = f3
2492# asm 1: movl <f3=int32#1,>f3_stack=stack32#10
2493# asm 2: movl <f3=%eax,>f3_stack=36(%esp)
2494movl %eax,36(%esp)
2495
2496# qhasm: f4 = 0
2497# asm 1: mov $0,>f4=int32#1
2498# asm 2: mov $0,>f4=%eax
2499mov $0,%eax
2500
2501# qhasm: carry? f4 += g3 + carry
2502# asm 1: adcl <g3=int32#4,<f4=int32#1
2503# asm 2: adcl <g3=%ebx,<f4=%eax
2504adcl %ebx,%eax
2505
2506# qhasm: f4_stack = f4
2507# asm 1: movl <f4=int32#1,>f4_stack=stack32#11
2508# asm 2: movl <f4=%eax,>f4_stack=40(%esp)
2509movl %eax,40(%esp)
2510
2511# qhasm: g0 = 5
2512# asm 1: mov $5,>g0=int32#1
2513# asm 2: mov $5,>g0=%eax
2514mov $5,%eax
2515
2516# qhasm: f0 = bottom d0
2517# asm 1: movl <d0=stack64#1,>f0=int32#2
2518# asm 2: movl <d0=96(%esp),>f0=%ecx
2519movl 96(%esp),%ecx
2520
2521# qhasm: carry? g0 += f0
2522# asm 1: addl <f0=int32#2,<g0=int32#1
2523# asm 2: addl <f0=%ecx,<g0=%eax
2524addl %ecx,%eax
2525
2526# qhasm: g0_stack = g0
2527# asm 1: movl <g0=int32#1,>g0_stack=stack32#12
2528# asm 2: movl <g0=%eax,>g0_stack=44(%esp)
2529movl %eax,44(%esp)
2530
2531# qhasm: g1 = 0
2532# asm 1: mov $0,>g1=int32#1
2533# asm 2: mov $0,>g1=%eax
2534mov $0,%eax
2535
2536# qhasm: f1 = f1_stack
2537# asm 1: movl <f1_stack=stack32#8,>f1=int32#3
2538# asm 2: movl <f1_stack=28(%esp),>f1=%edx
2539movl 28(%esp),%edx
2540
2541# qhasm: carry? g1 += f1 + carry
2542# asm 1: adcl <f1=int32#3,<g1=int32#1
2543# asm 2: adcl <f1=%edx,<g1=%eax
2544adcl %edx,%eax
2545
2546# qhasm: g1_stack = g1
2547# asm 1: movl <g1=int32#1,>g1_stack=stack32#8
2548# asm 2: movl <g1=%eax,>g1_stack=28(%esp)
2549movl %eax,28(%esp)
2550
2551# qhasm: g2 = 0
2552# asm 1: mov $0,>g2=int32#1
2553# asm 2: mov $0,>g2=%eax
2554mov $0,%eax
2555
2556# qhasm: f2 = f2_stack
2557# asm 1: movl <f2_stack=stack32#9,>f2=int32#4
2558# asm 2: movl <f2_stack=32(%esp),>f2=%ebx
2559movl 32(%esp),%ebx
2560
2561# qhasm: carry? g2 += f2 + carry
2562# asm 1: adcl <f2=int32#4,<g2=int32#1
2563# asm 2: adcl <f2=%ebx,<g2=%eax
2564adcl %ebx,%eax
2565
2566# qhasm: g2_stack = g2
2567# asm 1: movl <g2=int32#1,>g2_stack=stack32#9
2568# asm 2: movl <g2=%eax,>g2_stack=32(%esp)
2569movl %eax,32(%esp)
2570
2571# qhasm: g3 = 0
2572# asm 1: mov $0,>g3=int32#1
2573# asm 2: mov $0,>g3=%eax
2574mov $0,%eax
2575
2576# qhasm: f3 = f3_stack
2577# asm 1: movl <f3_stack=stack32#10,>f3=int32#5
2578# asm 2: movl <f3_stack=36(%esp),>f3=%esi
2579movl 36(%esp),%esi
2580
2581# qhasm: carry? g3 += f3 + carry
2582# asm 1: adcl <f3=int32#5,<g3=int32#1
2583# asm 2: adcl <f3=%esi,<g3=%eax
2584adcl %esi,%eax
2585
2586# qhasm: g3_stack = g3
2587# asm 1: movl <g3=int32#1,>g3_stack=stack32#10
2588# asm 2: movl <g3=%eax,>g3_stack=36(%esp)
2589movl %eax,36(%esp)
2590
2591# qhasm: f = 0xfffffffc
2592# asm 1: mov $0xfffffffc,>f=int32#1
2593# asm 2: mov $0xfffffffc,>f=%eax
2594mov $0xfffffffc,%eax
2595
2596# qhasm: f4 = f4_stack
2597# asm 1: movl <f4_stack=stack32#11,>f4=int32#6
2598# asm 2: movl <f4_stack=40(%esp),>f4=%edi
2599movl 40(%esp),%edi
2600
2601# qhasm: carry? f += f4 + carry
2602# asm 1: adcl <f4=int32#6,<f=int32#1
2603# asm 2: adcl <f4=%edi,<f=%eax
2604adcl %edi,%eax
2605
2606# qhasm: (int32) f >>= 16
2607# asm 1: sar $16,<f=int32#1
2608# asm 2: sar $16,<f=%eax
2609sar $16,%eax
2610
2611# qhasm: notf = f
2612# asm 1: mov <f=int32#1,>notf=int32#6
2613# asm 2: mov <f=%eax,>notf=%edi
2614mov %eax,%edi
2615
2616# qhasm: notf ^= 0xffffffff
2617# asm 1: xor $0xffffffff,<notf=int32#6
2618# asm 2: xor $0xffffffff,<notf=%edi
2619xor $0xffffffff,%edi
2620
2621# qhasm: f0 &= f
2622# asm 1: andl <f=int32#1,<f0=int32#2
2623# asm 2: andl <f=%eax,<f0=%ecx
2624andl %eax,%ecx
2625
2626# qhasm: g0 = g0_stack
2627# asm 1: movl <g0_stack=stack32#12,>g0=int32#7
2628# asm 2: movl <g0_stack=44(%esp),>g0=%ebp
2629movl 44(%esp),%ebp
2630
2631# qhasm: g0 &= notf
2632# asm 1: andl <notf=int32#6,<g0=int32#7
2633# asm 2: andl <notf=%edi,<g0=%ebp
2634andl %edi,%ebp
2635
2636# qhasm: f0 |= g0
2637# asm 1: orl <g0=int32#7,<f0=int32#2
2638# asm 2: orl <g0=%ebp,<f0=%ecx
2639orl %ebp,%ecx
2640
2641# qhasm: f1 &= f
2642# asm 1: andl <f=int32#1,<f1=int32#3
2643# asm 2: andl <f=%eax,<f1=%edx
2644andl %eax,%edx
2645
2646# qhasm: g1 = g1_stack
2647# asm 1: movl <g1_stack=stack32#8,>g1=int32#7
2648# asm 2: movl <g1_stack=28(%esp),>g1=%ebp
2649movl 28(%esp),%ebp
2650
2651# qhasm: g1 &= notf
2652# asm 1: andl <notf=int32#6,<g1=int32#7
2653# asm 2: andl <notf=%edi,<g1=%ebp
2654andl %edi,%ebp
2655
2656# qhasm: f1 |= g1
2657# asm 1: orl <g1=int32#7,<f1=int32#3
2658# asm 2: orl <g1=%ebp,<f1=%edx
2659orl %ebp,%edx
2660
2661# qhasm: f2 &= f
2662# asm 1: andl <f=int32#1,<f2=int32#4
2663# asm 2: andl <f=%eax,<f2=%ebx
2664andl %eax,%ebx
2665
2666# qhasm: g2 = g2_stack
2667# asm 1: movl <g2_stack=stack32#9,>g2=int32#7
2668# asm 2: movl <g2_stack=32(%esp),>g2=%ebp
2669movl 32(%esp),%ebp
2670
2671# qhasm: g2 &= notf
2672# asm 1: andl <notf=int32#6,<g2=int32#7
2673# asm 2: andl <notf=%edi,<g2=%ebp
2674andl %edi,%ebp
2675
2676# qhasm: f2 |= g2
2677# asm 1: orl <g2=int32#7,<f2=int32#4
2678# asm 2: orl <g2=%ebp,<f2=%ebx
2679orl %ebp,%ebx
2680
2681# qhasm: f3 &= f
2682# asm 1: andl <f=int32#1,<f3=int32#5
2683# asm 2: andl <f=%eax,<f3=%esi
2684andl %eax,%esi
2685
2686# qhasm: g3 = g3_stack
2687# asm 1: movl <g3_stack=stack32#10,>g3=int32#1
2688# asm 2: movl <g3_stack=36(%esp),>g3=%eax
2689movl 36(%esp),%eax
2690
2691# qhasm: g3 &= notf
2692# asm 1: andl <notf=int32#6,<g3=int32#1
2693# asm 2: andl <notf=%edi,<g3=%eax
2694andl %edi,%eax
2695
2696# qhasm: f3 |= g3
2697# asm 1: orl <g3=int32#1,<f3=int32#5
2698# asm 2: orl <g3=%eax,<f3=%esi
2699orl %eax,%esi
2700
2701# qhasm: k = k_stack
2702# asm 1: movl <k_stack=stack32#6,>k=int32#1
2703# asm 2: movl <k_stack=20(%esp),>k=%eax
2704movl 20(%esp),%eax
2705
2706# qhasm: carry? f0 += *(uint32 *) (k + 16)
2707# asm 1: addl 16(<k=int32#1),<f0=int32#2
2708# asm 2: addl 16(<k=%eax),<f0=%ecx
2709addl 16(%eax),%ecx
2710
2711# qhasm: carry? f1 += *(uint32 *) (k + 20) + carry
2712# asm 1: adcl 20(<k=int32#1),<f1=int32#3
2713# asm 2: adcl 20(<k=%eax),<f1=%edx
2714adcl 20(%eax),%edx
2715
2716# qhasm: carry? f2 += *(uint32 *) (k + 24) + carry
2717# asm 1: adcl 24(<k=int32#1),<f2=int32#4
2718# asm 2: adcl 24(<k=%eax),<f2=%ebx
2719adcl 24(%eax),%ebx
2720
2721# qhasm: carry? f3 += *(uint32 *) (k + 28) + carry
2722# asm 1: adcl 28(<k=int32#1),<f3=int32#5
2723# asm 2: adcl 28(<k=%eax),<f3=%esi
2724adcl 28(%eax),%esi
2725
2726# qhasm: out = out_stack
2727# asm 1: movl <out_stack=stack32#7,>out=int32#1
2728# asm 2: movl <out_stack=24(%esp),>out=%eax
2729movl 24(%esp),%eax
2730
2731# qhasm: *(uint32 *) (out + 0) = f0
2732# asm 1: movl <f0=int32#2,0(<out=int32#1)
2733# asm 2: movl <f0=%ecx,0(<out=%eax)
2734movl %ecx,0(%eax)
2735
2736# qhasm: *(uint32 *) (out + 4) = f1
2737# asm 1: movl <f1=int32#3,4(<out=int32#1)
2738# asm 2: movl <f1=%edx,4(<out=%eax)
2739movl %edx,4(%eax)
2740
2741# qhasm: *(uint32 *) (out + 8) = f2
2742# asm 1: movl <f2=int32#4,8(<out=int32#1)
2743# asm 2: movl <f2=%ebx,8(<out=%eax)
2744movl %ebx,8(%eax)
2745
2746# qhasm: *(uint32 *) (out + 12) = f3
2747# asm 1: movl <f3=int32#5,12(<out=int32#1)
2748# asm 2: movl <f3=%esi,12(<out=%eax)
2749movl %esi,12(%eax)
2750
2751# qhasm: eax = eax_stack
2752# asm 1: movl <eax_stack=stack32#1,>eax=int32#1
2753# asm 2: movl <eax_stack=0(%esp),>eax=%eax
2754movl 0(%esp),%eax
2755
2756# qhasm: ebx = ebx_stack
2757# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4
2758# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx
2759movl 4(%esp),%ebx
2760
2761# qhasm: esi = esi_stack
2762# asm 1: movl <esi_stack=stack32#3,>esi=int32#5
2763# asm 2: movl <esi_stack=8(%esp),>esi=%esi
2764movl 8(%esp),%esi
2765
2766# qhasm: edi = edi_stack
2767# asm 1: movl <edi_stack=stack32#4,>edi=int32#6
2768# asm 2: movl <edi_stack=12(%esp),>edi=%edi
2769movl 12(%esp),%edi
2770
2771# qhasm: ebp = ebp_stack
2772# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7
2773# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp
2774movl 16(%esp),%ebp
2775
2776# qhasm: leave
2777add %eax,%esp
2778xor %eax,%eax
2779ret
diff --git a/nacl/crypto_onetimeauth/poly1305/x86/constants.s b/nacl/crypto_onetimeauth/poly1305/x86/constants.s
new file mode 100644
index 00000000..ab2456c3
--- /dev/null
+++ b/nacl/crypto_onetimeauth/poly1305/x86/constants.s
@@ -0,0 +1,85 @@
1# version 20080912
2# D. J. Bernstein
3# Public domain.
4
5.data
6.section .rodata
7.p2align 5
8
9.globl _crypto_onetimeauth_poly1305_x86_constants
10.globl crypto_onetimeauth_poly1305_x86_constants
11.globl crypto_onetimeauth_poly1305_x86_scale
12.globl crypto_onetimeauth_poly1305_x86_two32
13.globl crypto_onetimeauth_poly1305_x86_two64
14.globl crypto_onetimeauth_poly1305_x86_two96
15.globl crypto_onetimeauth_poly1305_x86_alpha32
16.globl crypto_onetimeauth_poly1305_x86_alpha64
17.globl crypto_onetimeauth_poly1305_x86_alpha96
18.globl crypto_onetimeauth_poly1305_x86_alpha130
19.globl crypto_onetimeauth_poly1305_x86_doffset0
20.globl crypto_onetimeauth_poly1305_x86_doffset1
21.globl crypto_onetimeauth_poly1305_x86_doffset2
22.globl crypto_onetimeauth_poly1305_x86_doffset3
23.globl crypto_onetimeauth_poly1305_x86_doffset3minustwo128
24.globl crypto_onetimeauth_poly1305_x86_hoffset0
25.globl crypto_onetimeauth_poly1305_x86_hoffset1
26.globl crypto_onetimeauth_poly1305_x86_hoffset2
27.globl crypto_onetimeauth_poly1305_x86_hoffset3
28.globl crypto_onetimeauth_poly1305_x86_rounding
29
30_crypto_onetimeauth_poly1305_x86_constants:
31crypto_onetimeauth_poly1305_x86_constants:
32crypto_onetimeauth_poly1305_x86_scale:
33.long 0x0,0x37f40000
34
35crypto_onetimeauth_poly1305_x86_two32:
36.long 0x0,0x41f00000
37
38crypto_onetimeauth_poly1305_x86_two64:
39.long 0x0,0x43f00000
40
41crypto_onetimeauth_poly1305_x86_two96:
42.long 0x0,0x45f00000
43
44crypto_onetimeauth_poly1305_x86_alpha32:
45.long 0x0,0x45e80000
46
47crypto_onetimeauth_poly1305_x86_alpha64:
48.long 0x0,0x47e80000
49
50crypto_onetimeauth_poly1305_x86_alpha96:
51.long 0x0,0x49e80000
52
53crypto_onetimeauth_poly1305_x86_alpha130:
54.long 0x0,0x4c080000
55
56crypto_onetimeauth_poly1305_x86_doffset0:
57.long 0x0,0x43300000
58
59crypto_onetimeauth_poly1305_x86_doffset1:
60.long 0x0,0x45300000
61
62crypto_onetimeauth_poly1305_x86_doffset2:
63.long 0x0,0x47300000
64
65crypto_onetimeauth_poly1305_x86_doffset3:
66.long 0x0,0x49300000
67
68crypto_onetimeauth_poly1305_x86_doffset3minustwo128:
69.long 0x0,0x492ffffe
70
71crypto_onetimeauth_poly1305_x86_hoffset0:
72.long 0xfffffffb,0x43300001
73
74crypto_onetimeauth_poly1305_x86_hoffset1:
75.long 0xfffffffe,0x45300001
76
77crypto_onetimeauth_poly1305_x86_hoffset2:
78.long 0xfffffffe,0x47300001
79
80crypto_onetimeauth_poly1305_x86_hoffset3:
81.long 0xfffffffe,0x49300003
82
83crypto_onetimeauth_poly1305_x86_rounding:
84.byte 0x7f
85.byte 0x13
diff --git a/nacl/crypto_onetimeauth/poly1305/x86/verify.c b/nacl/crypto_onetimeauth/poly1305/x86/verify.c
new file mode 100644
index 00000000..c7e063f1
--- /dev/null
+++ b/nacl/crypto_onetimeauth/poly1305/x86/verify.c
@@ -0,0 +1,9 @@
1#include "crypto_verify_16.h"
2#include "crypto_onetimeauth.h"
3
4int crypto_onetimeauth_verify(const unsigned char *h,const unsigned char *in,unsigned long long inlen,const unsigned char *k)
5{
6 unsigned char correct[16];
7 crypto_onetimeauth(correct,in,inlen,k);
8 return crypto_verify_16(h,correct);
9}