]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/i386/poly1305-x86.S
Regen assembly files for i386.
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / i386 / poly1305-x86.S
1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from poly1305-x86.pl. */
3 #ifdef PIC
4 .text
5 .align  64
6 .globl  poly1305_init
7 .type   poly1305_init,@function
8 .align  16
9 poly1305_init:
10 .L_poly1305_init_begin:
11         pushl   %ebp
12         pushl   %ebx
13         pushl   %esi
14         pushl   %edi
15         movl    20(%esp),%edi
16         movl    24(%esp),%esi
17         movl    28(%esp),%ebp
18         xorl    %eax,%eax
19         movl    %eax,(%edi)
20         movl    %eax,4(%edi)
21         movl    %eax,8(%edi)
22         movl    %eax,12(%edi)
23         movl    %eax,16(%edi)
24         movl    %eax,20(%edi)
25         cmpl    $0,%esi
26         je      .L000nokey
27         movl    (%esi),%eax
28         movl    4(%esi),%ebx
29         movl    8(%esi),%ecx
30         movl    12(%esi),%edx
31         andl    $268435455,%eax
32         andl    $268435452,%ebx
33         andl    $268435452,%ecx
34         andl    $268435452,%edx
35         movl    %eax,24(%edi)
36         movl    %ebx,28(%edi)
37         movl    %ecx,32(%edi)
38         movl    %edx,36(%edi)
39         movl    $0,%eax
40 .L000nokey:
41         popl    %edi
42         popl    %esi
43         popl    %ebx
44         popl    %ebp
45         ret
46 .size   poly1305_init,.-.L_poly1305_init_begin
47 .globl  poly1305_blocks
48 .type   poly1305_blocks,@function
49 .align  16
50 poly1305_blocks:
51 .L_poly1305_blocks_begin:
52         pushl   %ebp
53         pushl   %ebx
54         pushl   %esi
55         pushl   %edi
56         movl    20(%esp),%edi
57         movl    24(%esp),%esi
58         movl    28(%esp),%ecx
59 .L001enter_blocks:
60         andl    $-15,%ecx
61         jz      .L002nodata
62         subl    $64,%esp
63         movl    24(%edi),%eax
64         movl    28(%edi),%ebx
65         leal    (%esi,%ecx,1),%ebp
66         movl    32(%edi),%ecx
67         movl    36(%edi),%edx
68         movl    %ebp,92(%esp)
69         movl    %esi,%ebp
70         movl    %eax,36(%esp)
71         movl    %ebx,%eax
72         shrl    $2,%eax
73         movl    %ebx,40(%esp)
74         addl    %ebx,%eax
75         movl    %ecx,%ebx
76         shrl    $2,%ebx
77         movl    %ecx,44(%esp)
78         addl    %ecx,%ebx
79         movl    %edx,%ecx
80         shrl    $2,%ecx
81         movl    %edx,48(%esp)
82         addl    %edx,%ecx
83         movl    %eax,52(%esp)
84         movl    %ebx,56(%esp)
85         movl    %ecx,60(%esp)
86         movl    (%edi),%eax
87         movl    4(%edi),%ebx
88         movl    8(%edi),%ecx
89         movl    12(%edi),%esi
90         movl    16(%edi),%edi
91         jmp     .L003loop
92 .align  32
93 .L003loop:
94         addl    (%ebp),%eax
95         adcl    4(%ebp),%ebx
96         adcl    8(%ebp),%ecx
97         adcl    12(%ebp),%esi
98         leal    16(%ebp),%ebp
99         adcl    96(%esp),%edi
100         movl    %eax,(%esp)
101         movl    %esi,12(%esp)
102         mull    36(%esp)
103         movl    %edi,16(%esp)
104         movl    %eax,%edi
105         movl    %ebx,%eax
106         movl    %edx,%esi
107         mull    60(%esp)
108         addl    %eax,%edi
109         movl    %ecx,%eax
110         adcl    %edx,%esi
111         mull    56(%esp)
112         addl    %eax,%edi
113         movl    12(%esp),%eax
114         adcl    %edx,%esi
115         mull    52(%esp)
116         addl    %eax,%edi
117         movl    (%esp),%eax
118         adcl    %edx,%esi
119         mull    40(%esp)
120         movl    %edi,20(%esp)
121         xorl    %edi,%edi
122         addl    %eax,%esi
123         movl    %ebx,%eax
124         adcl    %edx,%edi
125         mull    36(%esp)
126         addl    %eax,%esi
127         movl    %ecx,%eax
128         adcl    %edx,%edi
129         mull    60(%esp)
130         addl    %eax,%esi
131         movl    12(%esp),%eax
132         adcl    %edx,%edi
133         mull    56(%esp)
134         addl    %eax,%esi
135         movl    16(%esp),%eax
136         adcl    %edx,%edi
137         imull   52(%esp),%eax
138         addl    %eax,%esi
139         movl    (%esp),%eax
140         adcl    $0,%edi
141         mull    44(%esp)
142         movl    %esi,24(%esp)
143         xorl    %esi,%esi
144         addl    %eax,%edi
145         movl    %ebx,%eax
146         adcl    %edx,%esi
147         mull    40(%esp)
148         addl    %eax,%edi
149         movl    %ecx,%eax
150         adcl    %edx,%esi
151         mull    36(%esp)
152         addl    %eax,%edi
153         movl    12(%esp),%eax
154         adcl    %edx,%esi
155         mull    60(%esp)
156         addl    %eax,%edi
157         movl    16(%esp),%eax
158         adcl    %edx,%esi
159         imull   56(%esp),%eax
160         addl    %eax,%edi
161         movl    (%esp),%eax
162         adcl    $0,%esi
163         mull    48(%esp)
164         movl    %edi,28(%esp)
165         xorl    %edi,%edi
166         addl    %eax,%esi
167         movl    %ebx,%eax
168         adcl    %edx,%edi
169         mull    44(%esp)
170         addl    %eax,%esi
171         movl    %ecx,%eax
172         adcl    %edx,%edi
173         mull    40(%esp)
174         addl    %eax,%esi
175         movl    12(%esp),%eax
176         adcl    %edx,%edi
177         mull    36(%esp)
178         addl    %eax,%esi
179         movl    16(%esp),%ecx
180         adcl    %edx,%edi
181         movl    %ecx,%edx
182         imull   60(%esp),%ecx
183         addl    %ecx,%esi
184         movl    20(%esp),%eax
185         adcl    $0,%edi
186         imull   36(%esp),%edx
187         addl    %edi,%edx
188         movl    24(%esp),%ebx
189         movl    28(%esp),%ecx
190         movl    %edx,%edi
191         shrl    $2,%edx
192         andl    $3,%edi
193         leal    (%edx,%edx,4),%edx
194         addl    %edx,%eax
195         adcl    $0,%ebx
196         adcl    $0,%ecx
197         adcl    $0,%esi
198         adcl    $0,%edi
199         cmpl    92(%esp),%ebp
200         jne     .L003loop
201         movl    84(%esp),%edx
202         addl    $64,%esp
203         movl    %eax,(%edx)
204         movl    %ebx,4(%edx)
205         movl    %ecx,8(%edx)
206         movl    %esi,12(%edx)
207         movl    %edi,16(%edx)
208 .L002nodata:
209         popl    %edi
210         popl    %esi
211         popl    %ebx
212         popl    %ebp
213         ret
214 .size   poly1305_blocks,.-.L_poly1305_blocks_begin
215 .globl  poly1305_emit
216 .type   poly1305_emit,@function
217 .align  16
218 poly1305_emit:
219 .L_poly1305_emit_begin:
220         pushl   %ebp
221         pushl   %ebx
222         pushl   %esi
223         pushl   %edi
224         movl    20(%esp),%ebp
225 .L004enter_emit:
226         movl    24(%esp),%edi
227         movl    (%ebp),%eax
228         movl    4(%ebp),%ebx
229         movl    8(%ebp),%ecx
230         movl    12(%ebp),%edx
231         movl    16(%ebp),%esi
232         addl    $5,%eax
233         adcl    $0,%ebx
234         adcl    $0,%ecx
235         adcl    $0,%edx
236         adcl    $0,%esi
237         shrl    $2,%esi
238         negl    %esi
239         andl    %esi,%eax
240         andl    %esi,%ebx
241         andl    %esi,%ecx
242         andl    %esi,%edx
243         movl    %eax,(%edi)
244         movl    %ebx,4(%edi)
245         movl    %ecx,8(%edi)
246         movl    %edx,12(%edi)
247         notl    %esi
248         movl    (%ebp),%eax
249         movl    4(%ebp),%ebx
250         movl    8(%ebp),%ecx
251         movl    12(%ebp),%edx
252         movl    28(%esp),%ebp
253         andl    %esi,%eax
254         andl    %esi,%ebx
255         andl    %esi,%ecx
256         andl    %esi,%edx
257         orl     (%edi),%eax
258         orl     4(%edi),%ebx
259         orl     8(%edi),%ecx
260         orl     12(%edi),%edx
261         addl    (%ebp),%eax
262         adcl    4(%ebp),%ebx
263         adcl    8(%ebp),%ecx
264         adcl    12(%ebp),%edx
265         movl    %eax,(%edi)
266         movl    %ebx,4(%edi)
267         movl    %ecx,8(%edi)
268         movl    %edx,12(%edi)
269         popl    %edi
270         popl    %esi
271         popl    %ebx
272         popl    %ebp
273         ret
274 .size   poly1305_emit,.-.L_poly1305_emit_begin
275 .byte   80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54
276 .byte   44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
277 .byte   60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
278 .byte   114,103,62,0
279 .align  4
280 #else
281 .text
282 .align  64
283 .globl  poly1305_init
284 .type   poly1305_init,@function
285 .align  16
286 poly1305_init:
287 .L_poly1305_init_begin:
288         pushl   %ebp
289         pushl   %ebx
290         pushl   %esi
291         pushl   %edi
292         movl    20(%esp),%edi
293         movl    24(%esp),%esi
294         movl    28(%esp),%ebp
295         xorl    %eax,%eax
296         movl    %eax,(%edi)
297         movl    %eax,4(%edi)
298         movl    %eax,8(%edi)
299         movl    %eax,12(%edi)
300         movl    %eax,16(%edi)
301         movl    %eax,20(%edi)
302         cmpl    $0,%esi
303         je      .L000nokey
304         movl    (%esi),%eax
305         movl    4(%esi),%ebx
306         movl    8(%esi),%ecx
307         movl    12(%esi),%edx
308         andl    $268435455,%eax
309         andl    $268435452,%ebx
310         andl    $268435452,%ecx
311         andl    $268435452,%edx
312         movl    %eax,24(%edi)
313         movl    %ebx,28(%edi)
314         movl    %ecx,32(%edi)
315         movl    %edx,36(%edi)
316         movl    $0,%eax
317 .L000nokey:
318         popl    %edi
319         popl    %esi
320         popl    %ebx
321         popl    %ebp
322         ret
323 .size   poly1305_init,.-.L_poly1305_init_begin
324 .globl  poly1305_blocks
325 .type   poly1305_blocks,@function
326 .align  16
327 poly1305_blocks:
328 .L_poly1305_blocks_begin:
329         pushl   %ebp
330         pushl   %ebx
331         pushl   %esi
332         pushl   %edi
333         movl    20(%esp),%edi
334         movl    24(%esp),%esi
335         movl    28(%esp),%ecx
336 .L001enter_blocks:
337         andl    $-15,%ecx
338         jz      .L002nodata
339         subl    $64,%esp
340         movl    24(%edi),%eax
341         movl    28(%edi),%ebx
342         leal    (%esi,%ecx,1),%ebp
343         movl    32(%edi),%ecx
344         movl    36(%edi),%edx
345         movl    %ebp,92(%esp)
346         movl    %esi,%ebp
347         movl    %eax,36(%esp)
348         movl    %ebx,%eax
349         shrl    $2,%eax
350         movl    %ebx,40(%esp)
351         addl    %ebx,%eax
352         movl    %ecx,%ebx
353         shrl    $2,%ebx
354         movl    %ecx,44(%esp)
355         addl    %ecx,%ebx
356         movl    %edx,%ecx
357         shrl    $2,%ecx
358         movl    %edx,48(%esp)
359         addl    %edx,%ecx
360         movl    %eax,52(%esp)
361         movl    %ebx,56(%esp)
362         movl    %ecx,60(%esp)
363         movl    (%edi),%eax
364         movl    4(%edi),%ebx
365         movl    8(%edi),%ecx
366         movl    12(%edi),%esi
367         movl    16(%edi),%edi
368         jmp     .L003loop
369 .align  32
370 .L003loop:
371         addl    (%ebp),%eax
372         adcl    4(%ebp),%ebx
373         adcl    8(%ebp),%ecx
374         adcl    12(%ebp),%esi
375         leal    16(%ebp),%ebp
376         adcl    96(%esp),%edi
377         movl    %eax,(%esp)
378         movl    %esi,12(%esp)
379         mull    36(%esp)
380         movl    %edi,16(%esp)
381         movl    %eax,%edi
382         movl    %ebx,%eax
383         movl    %edx,%esi
384         mull    60(%esp)
385         addl    %eax,%edi
386         movl    %ecx,%eax
387         adcl    %edx,%esi
388         mull    56(%esp)
389         addl    %eax,%edi
390         movl    12(%esp),%eax
391         adcl    %edx,%esi
392         mull    52(%esp)
393         addl    %eax,%edi
394         movl    (%esp),%eax
395         adcl    %edx,%esi
396         mull    40(%esp)
397         movl    %edi,20(%esp)
398         xorl    %edi,%edi
399         addl    %eax,%esi
400         movl    %ebx,%eax
401         adcl    %edx,%edi
402         mull    36(%esp)
403         addl    %eax,%esi
404         movl    %ecx,%eax
405         adcl    %edx,%edi
406         mull    60(%esp)
407         addl    %eax,%esi
408         movl    12(%esp),%eax
409         adcl    %edx,%edi
410         mull    56(%esp)
411         addl    %eax,%esi
412         movl    16(%esp),%eax
413         adcl    %edx,%edi
414         imull   52(%esp),%eax
415         addl    %eax,%esi
416         movl    (%esp),%eax
417         adcl    $0,%edi
418         mull    44(%esp)
419         movl    %esi,24(%esp)
420         xorl    %esi,%esi
421         addl    %eax,%edi
422         movl    %ebx,%eax
423         adcl    %edx,%esi
424         mull    40(%esp)
425         addl    %eax,%edi
426         movl    %ecx,%eax
427         adcl    %edx,%esi
428         mull    36(%esp)
429         addl    %eax,%edi
430         movl    12(%esp),%eax
431         adcl    %edx,%esi
432         mull    60(%esp)
433         addl    %eax,%edi
434         movl    16(%esp),%eax
435         adcl    %edx,%esi
436         imull   56(%esp),%eax
437         addl    %eax,%edi
438         movl    (%esp),%eax
439         adcl    $0,%esi
440         mull    48(%esp)
441         movl    %edi,28(%esp)
442         xorl    %edi,%edi
443         addl    %eax,%esi
444         movl    %ebx,%eax
445         adcl    %edx,%edi
446         mull    44(%esp)
447         addl    %eax,%esi
448         movl    %ecx,%eax
449         adcl    %edx,%edi
450         mull    40(%esp)
451         addl    %eax,%esi
452         movl    12(%esp),%eax
453         adcl    %edx,%edi
454         mull    36(%esp)
455         addl    %eax,%esi
456         movl    16(%esp),%ecx
457         adcl    %edx,%edi
458         movl    %ecx,%edx
459         imull   60(%esp),%ecx
460         addl    %ecx,%esi
461         movl    20(%esp),%eax
462         adcl    $0,%edi
463         imull   36(%esp),%edx
464         addl    %edi,%edx
465         movl    24(%esp),%ebx
466         movl    28(%esp),%ecx
467         movl    %edx,%edi
468         shrl    $2,%edx
469         andl    $3,%edi
470         leal    (%edx,%edx,4),%edx
471         addl    %edx,%eax
472         adcl    $0,%ebx
473         adcl    $0,%ecx
474         adcl    $0,%esi
475         adcl    $0,%edi
476         cmpl    92(%esp),%ebp
477         jne     .L003loop
478         movl    84(%esp),%edx
479         addl    $64,%esp
480         movl    %eax,(%edx)
481         movl    %ebx,4(%edx)
482         movl    %ecx,8(%edx)
483         movl    %esi,12(%edx)
484         movl    %edi,16(%edx)
485 .L002nodata:
486         popl    %edi
487         popl    %esi
488         popl    %ebx
489         popl    %ebp
490         ret
491 .size   poly1305_blocks,.-.L_poly1305_blocks_begin
492 .globl  poly1305_emit
493 .type   poly1305_emit,@function
494 .align  16
495 poly1305_emit:
496 .L_poly1305_emit_begin:
497         pushl   %ebp
498         pushl   %ebx
499         pushl   %esi
500         pushl   %edi
501         movl    20(%esp),%ebp
502 .L004enter_emit:
503         movl    24(%esp),%edi
504         movl    (%ebp),%eax
505         movl    4(%ebp),%ebx
506         movl    8(%ebp),%ecx
507         movl    12(%ebp),%edx
508         movl    16(%ebp),%esi
509         addl    $5,%eax
510         adcl    $0,%ebx
511         adcl    $0,%ecx
512         adcl    $0,%edx
513         adcl    $0,%esi
514         shrl    $2,%esi
515         negl    %esi
516         andl    %esi,%eax
517         andl    %esi,%ebx
518         andl    %esi,%ecx
519         andl    %esi,%edx
520         movl    %eax,(%edi)
521         movl    %ebx,4(%edi)
522         movl    %ecx,8(%edi)
523         movl    %edx,12(%edi)
524         notl    %esi
525         movl    (%ebp),%eax
526         movl    4(%ebp),%ebx
527         movl    8(%ebp),%ecx
528         movl    12(%ebp),%edx
529         movl    28(%esp),%ebp
530         andl    %esi,%eax
531         andl    %esi,%ebx
532         andl    %esi,%ecx
533         andl    %esi,%edx
534         orl     (%edi),%eax
535         orl     4(%edi),%ebx
536         orl     8(%edi),%ecx
537         orl     12(%edi),%edx
538         addl    (%ebp),%eax
539         adcl    4(%ebp),%ebx
540         adcl    8(%ebp),%ecx
541         adcl    12(%ebp),%edx
542         movl    %eax,(%edi)
543         movl    %ebx,4(%edi)
544         movl    %ecx,8(%edi)
545         movl    %edx,12(%edi)
546         popl    %edi
547         popl    %esi
548         popl    %ebx
549         popl    %ebp
550         ret
551 .size   poly1305_emit,.-.L_poly1305_emit_begin
552 .byte   80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54
553 .byte   44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
554 .byte   60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
555 .byte   114,103,62,0
556 .align  4
557 #endif