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