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