]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/i386/e_padlock-x86.S
Import DTS files from Linux 5.2
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / i386 / e_padlock-x86.S
1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from e_padlock-x86.pl. */
3 #ifdef PIC
4 .text
5 .globl  padlock_capability
6 .type   padlock_capability,@function
7 .align  16
8 padlock_capability:
9 .L_padlock_capability_begin:
10         pushl   %ebx
11         pushfl
12         popl    %eax
13         movl    %eax,%ecx
14         xorl    $2097152,%eax
15         pushl   %eax
16         popfl
17         pushfl
18         popl    %eax
19         xorl    %eax,%ecx
20         xorl    %eax,%eax
21         btl     $21,%ecx
22         jnc     .L000noluck
23         .byte   0x0f,0xa2
24         xorl    %eax,%eax
25         cmpl    $0x746e6543,%ebx
26         jne     .L001zhaoxin
27         cmpl    $0x48727561,%edx
28         jne     .L000noluck
29         cmpl    $0x736c7561,%ecx
30         jne     .L000noluck
31         jmp     .L002zhaoxinEnd
32 .L001zhaoxin:
33         cmpl    $0x68532020,%ebx
34         jne     .L000noluck
35         cmpl    $0x68676e61,%edx
36         jne     .L000noluck
37         cmpl    $0x20206961,%ecx
38         jne     .L000noluck
39 .L002zhaoxinEnd:
40         movl    $3221225472,%eax
41         .byte   0x0f,0xa2
42         movl    %eax,%edx
43         xorl    %eax,%eax
44         cmpl    $3221225473,%edx
45         jb      .L000noluck
46         movl    $1,%eax
47         .byte   0x0f,0xa2
48         orl     $15,%eax
49         xorl    %ebx,%ebx
50         andl    $4095,%eax
51         cmpl    $1791,%eax
52         sete    %bl
53         movl    $3221225473,%eax
54         pushl   %ebx
55         .byte   0x0f,0xa2
56         popl    %ebx
57         movl    %edx,%eax
58         shll    $4,%ebx
59         andl    $4294967279,%eax
60         orl     %ebx,%eax
61 .L000noluck:
62         popl    %ebx
63         ret
64 .size   padlock_capability,.-.L_padlock_capability_begin
65 .globl  padlock_key_bswap
66 .type   padlock_key_bswap,@function
67 .align  16
68 padlock_key_bswap:
69 .L_padlock_key_bswap_begin:
70         movl    4(%esp),%edx
71         movl    240(%edx),%ecx
72 .L003bswap_loop:
73         movl    (%edx),%eax
74         bswap   %eax
75         movl    %eax,(%edx)
76         leal    4(%edx),%edx
77         subl    $1,%ecx
78         jnz     .L003bswap_loop
79         ret
80 .size   padlock_key_bswap,.-.L_padlock_key_bswap_begin
81 .globl  padlock_verify_context
82 .type   padlock_verify_context,@function
83 .align  16
84 padlock_verify_context:
85 .L_padlock_verify_context_begin:
86         movl    4(%esp),%edx
87         leal    .Lpadlock_saved_context-.L004verify_pic_point,%eax
88         pushfl
89         call    _padlock_verify_ctx
90 .L004verify_pic_point:
91         leal    4(%esp),%esp
92         ret
93 .size   padlock_verify_context,.-.L_padlock_verify_context_begin
94 .type   _padlock_verify_ctx,@function
95 .align  16
96 _padlock_verify_ctx:
97         addl    (%esp),%eax
98         btl     $30,4(%esp)
99         jnc     .L005verified
100         cmpl    (%eax),%edx
101         je      .L005verified
102         pushfl
103         popfl
104 .L005verified:
105         movl    %edx,(%eax)
106         ret
107 .size   _padlock_verify_ctx,.-_padlock_verify_ctx
108 .globl  padlock_reload_key
109 .type   padlock_reload_key,@function
110 .align  16
111 padlock_reload_key:
112 .L_padlock_reload_key_begin:
113         pushfl
114         popfl
115         ret
116 .size   padlock_reload_key,.-.L_padlock_reload_key_begin
117 .globl  padlock_aes_block
118 .type   padlock_aes_block,@function
119 .align  16
120 padlock_aes_block:
121 .L_padlock_aes_block_begin:
122         pushl   %edi
123         pushl   %esi
124         pushl   %ebx
125         movl    16(%esp),%edi
126         movl    20(%esp),%esi
127         movl    24(%esp),%edx
128         movl    $1,%ecx
129         leal    32(%edx),%ebx
130         leal    16(%edx),%edx
131 .byte   243,15,167,200
132         popl    %ebx
133         popl    %esi
134         popl    %edi
135         ret
136 .size   padlock_aes_block,.-.L_padlock_aes_block_begin
137 .globl  padlock_ecb_encrypt
138 .type   padlock_ecb_encrypt,@function
139 .align  16
140 padlock_ecb_encrypt:
141 .L_padlock_ecb_encrypt_begin:
142         pushl   %ebp
143         pushl   %ebx
144         pushl   %esi
145         pushl   %edi
146         movl    20(%esp),%edi
147         movl    24(%esp),%esi
148         movl    28(%esp),%edx
149         movl    32(%esp),%ecx
150         testl   $15,%edx
151         jnz     .L006ecb_abort
152         testl   $15,%ecx
153         jnz     .L006ecb_abort
154         leal    .Lpadlock_saved_context-.L007ecb_pic_point,%eax
155         pushfl
156         cld
157         call    _padlock_verify_ctx
158 .L007ecb_pic_point:
159         leal    16(%edx),%edx
160         xorl    %eax,%eax
161         xorl    %ebx,%ebx
162         testl   $32,(%edx)
163         jnz     .L008ecb_aligned
164         testl   $15,%edi
165         setz    %al
166         testl   $15,%esi
167         setz    %bl
168         testl   %ebx,%eax
169         jnz     .L008ecb_aligned
170         negl    %eax
171         movl    $512,%ebx
172         notl    %eax
173         leal    -24(%esp),%ebp
174         cmpl    %ebx,%ecx
175         cmovcl  %ecx,%ebx
176         andl    %ebx,%eax
177         movl    %ecx,%ebx
178         negl    %eax
179         andl    $511,%ebx
180         leal    (%eax,%ebp,1),%esp
181         movl    $512,%eax
182         cmovzl  %eax,%ebx
183         movl    %ebp,%eax
184         andl    $-16,%ebp
185         andl    $-16,%esp
186         movl    %eax,16(%ebp)
187         cmpl    %ebx,%ecx
188         ja      .L009ecb_loop
189         movl    %esi,%eax
190         cmpl    %esp,%ebp
191         cmovel  %edi,%eax
192         addl    %ecx,%eax
193         negl    %eax
194         andl    $4095,%eax
195         cmpl    $128,%eax
196         movl    $-128,%eax
197         cmovael %ebx,%eax
198         andl    %eax,%ebx
199         jz      .L010ecb_unaligned_tail
200         jmp     .L009ecb_loop
201 .align  16
202 .L009ecb_loop:
203         movl    %edi,(%ebp)
204         movl    %esi,4(%ebp)
205         movl    %ecx,8(%ebp)
206         movl    %ebx,%ecx
207         movl    %ebx,12(%ebp)
208         testl   $15,%edi
209         cmovnzl %esp,%edi
210         testl   $15,%esi
211         jz      .L011ecb_inp_aligned
212         shrl    $2,%ecx
213 .byte   243,165
214         subl    %ebx,%edi
215         movl    %ebx,%ecx
216         movl    %edi,%esi
217 .L011ecb_inp_aligned:
218         leal    -16(%edx),%eax
219         leal    16(%edx),%ebx
220         shrl    $4,%ecx
221 .byte   243,15,167,200
222         movl    (%ebp),%edi
223         movl    12(%ebp),%ebx
224         testl   $15,%edi
225         jz      .L012ecb_out_aligned
226         movl    %ebx,%ecx
227         leal    (%esp),%esi
228         shrl    $2,%ecx
229 .byte   243,165
230         subl    %ebx,%edi
231 .L012ecb_out_aligned:
232         movl    4(%ebp),%esi
233         movl    8(%ebp),%ecx
234         addl    %ebx,%edi
235         addl    %ebx,%esi
236         subl    %ebx,%ecx
237         movl    $512,%ebx
238         jz      .L013ecb_break
239         cmpl    %ebx,%ecx
240         jae     .L009ecb_loop
241 .L010ecb_unaligned_tail:
242         xorl    %eax,%eax
243         cmpl    %ebp,%esp
244         cmovel  %ecx,%eax
245         subl    %eax,%esp
246         movl    %edi,%eax
247         movl    %ecx,%ebx
248         shrl    $2,%ecx
249         leal    (%esp),%edi
250 .byte   243,165
251         movl    %esp,%esi
252         movl    %eax,%edi
253         movl    %ebx,%ecx
254         jmp     .L009ecb_loop
255 .align  16
256 .L013ecb_break:
257         cmpl    %ebp,%esp
258         je      .L014ecb_done
259         pxor    %xmm0,%xmm0
260         leal    (%esp),%eax
261 .L015ecb_bzero:
262         movaps  %xmm0,(%eax)
263         leal    16(%eax),%eax
264         cmpl    %eax,%ebp
265         ja      .L015ecb_bzero
266 .L014ecb_done:
267         movl    16(%ebp),%ebp
268         leal    24(%ebp),%esp
269         jmp     .L016ecb_exit
270 .align  16
271 .L008ecb_aligned:
272         leal    (%esi,%ecx,1),%ebp
273         negl    %ebp
274         andl    $4095,%ebp
275         xorl    %eax,%eax
276         cmpl    $128,%ebp
277         movl    $127,%ebp
278         cmovael %eax,%ebp
279         andl    %ecx,%ebp
280         subl    %ebp,%ecx
281         jz      .L017ecb_aligned_tail
282         leal    -16(%edx),%eax
283         leal    16(%edx),%ebx
284         shrl    $4,%ecx
285 .byte   243,15,167,200
286         testl   %ebp,%ebp
287         jz      .L016ecb_exit
288 .L017ecb_aligned_tail:
289         movl    %ebp,%ecx
290         leal    -24(%esp),%ebp
291         movl    %ebp,%esp
292         movl    %ebp,%eax
293         subl    %ecx,%esp
294         andl    $-16,%ebp
295         andl    $-16,%esp
296         movl    %eax,16(%ebp)
297         movl    %edi,%eax
298         movl    %ecx,%ebx
299         shrl    $2,%ecx
300         leal    (%esp),%edi
301 .byte   243,165
302         movl    %esp,%esi
303         movl    %eax,%edi
304         movl    %ebx,%ecx
305         jmp     .L009ecb_loop
306 .L016ecb_exit:
307         movl    $1,%eax
308         leal    4(%esp),%esp
309 .L006ecb_abort:
310         popl    %edi
311         popl    %esi
312         popl    %ebx
313         popl    %ebp
314         ret
315 .size   padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin
316 .globl  padlock_cbc_encrypt
317 .type   padlock_cbc_encrypt,@function
318 .align  16
319 padlock_cbc_encrypt:
320 .L_padlock_cbc_encrypt_begin:
321         pushl   %ebp
322         pushl   %ebx
323         pushl   %esi
324         pushl   %edi
325         movl    20(%esp),%edi
326         movl    24(%esp),%esi
327         movl    28(%esp),%edx
328         movl    32(%esp),%ecx
329         testl   $15,%edx
330         jnz     .L018cbc_abort
331         testl   $15,%ecx
332         jnz     .L018cbc_abort
333         leal    .Lpadlock_saved_context-.L019cbc_pic_point,%eax
334         pushfl
335         cld
336         call    _padlock_verify_ctx
337 .L019cbc_pic_point:
338         leal    16(%edx),%edx
339         xorl    %eax,%eax
340         xorl    %ebx,%ebx
341         testl   $32,(%edx)
342         jnz     .L020cbc_aligned
343         testl   $15,%edi
344         setz    %al
345         testl   $15,%esi
346         setz    %bl
347         testl   %ebx,%eax
348         jnz     .L020cbc_aligned
349         negl    %eax
350         movl    $512,%ebx
351         notl    %eax
352         leal    -24(%esp),%ebp
353         cmpl    %ebx,%ecx
354         cmovcl  %ecx,%ebx
355         andl    %ebx,%eax
356         movl    %ecx,%ebx
357         negl    %eax
358         andl    $511,%ebx
359         leal    (%eax,%ebp,1),%esp
360         movl    $512,%eax
361         cmovzl  %eax,%ebx
362         movl    %ebp,%eax
363         andl    $-16,%ebp
364         andl    $-16,%esp
365         movl    %eax,16(%ebp)
366         cmpl    %ebx,%ecx
367         ja      .L021cbc_loop
368         movl    %esi,%eax
369         cmpl    %esp,%ebp
370         cmovel  %edi,%eax
371         addl    %ecx,%eax
372         negl    %eax
373         andl    $4095,%eax
374         cmpl    $64,%eax
375         movl    $-64,%eax
376         cmovael %ebx,%eax
377         andl    %eax,%ebx
378         jz      .L022cbc_unaligned_tail
379         jmp     .L021cbc_loop
380 .align  16
381 .L021cbc_loop:
382         movl    %edi,(%ebp)
383         movl    %esi,4(%ebp)
384         movl    %ecx,8(%ebp)
385         movl    %ebx,%ecx
386         movl    %ebx,12(%ebp)
387         testl   $15,%edi
388         cmovnzl %esp,%edi
389         testl   $15,%esi
390         jz      .L023cbc_inp_aligned
391         shrl    $2,%ecx
392 .byte   243,165
393         subl    %ebx,%edi
394         movl    %ebx,%ecx
395         movl    %edi,%esi
396 .L023cbc_inp_aligned:
397         leal    -16(%edx),%eax
398         leal    16(%edx),%ebx
399         shrl    $4,%ecx
400 .byte   243,15,167,208
401         movaps  (%eax),%xmm0
402         movaps  %xmm0,-16(%edx)
403         movl    (%ebp),%edi
404         movl    12(%ebp),%ebx
405         testl   $15,%edi
406         jz      .L024cbc_out_aligned
407         movl    %ebx,%ecx
408         leal    (%esp),%esi
409         shrl    $2,%ecx
410 .byte   243,165
411         subl    %ebx,%edi
412 .L024cbc_out_aligned:
413         movl    4(%ebp),%esi
414         movl    8(%ebp),%ecx
415         addl    %ebx,%edi
416         addl    %ebx,%esi
417         subl    %ebx,%ecx
418         movl    $512,%ebx
419         jz      .L025cbc_break
420         cmpl    %ebx,%ecx
421         jae     .L021cbc_loop
422 .L022cbc_unaligned_tail:
423         xorl    %eax,%eax
424         cmpl    %ebp,%esp
425         cmovel  %ecx,%eax
426         subl    %eax,%esp
427         movl    %edi,%eax
428         movl    %ecx,%ebx
429         shrl    $2,%ecx
430         leal    (%esp),%edi
431 .byte   243,165
432         movl    %esp,%esi
433         movl    %eax,%edi
434         movl    %ebx,%ecx
435         jmp     .L021cbc_loop
436 .align  16
437 .L025cbc_break:
438         cmpl    %ebp,%esp
439         je      .L026cbc_done
440         pxor    %xmm0,%xmm0
441         leal    (%esp),%eax
442 .L027cbc_bzero:
443         movaps  %xmm0,(%eax)
444         leal    16(%eax),%eax
445         cmpl    %eax,%ebp
446         ja      .L027cbc_bzero
447 .L026cbc_done:
448         movl    16(%ebp),%ebp
449         leal    24(%ebp),%esp
450         jmp     .L028cbc_exit
451 .align  16
452 .L020cbc_aligned:
453         leal    (%esi,%ecx,1),%ebp
454         negl    %ebp
455         andl    $4095,%ebp
456         xorl    %eax,%eax
457         cmpl    $64,%ebp
458         movl    $63,%ebp
459         cmovael %eax,%ebp
460         andl    %ecx,%ebp
461         subl    %ebp,%ecx
462         jz      .L029cbc_aligned_tail
463         leal    -16(%edx),%eax
464         leal    16(%edx),%ebx
465         shrl    $4,%ecx
466 .byte   243,15,167,208
467         movaps  (%eax),%xmm0
468         movaps  %xmm0,-16(%edx)
469         testl   %ebp,%ebp
470         jz      .L028cbc_exit
471 .L029cbc_aligned_tail:
472         movl    %ebp,%ecx
473         leal    -24(%esp),%ebp
474         movl    %ebp,%esp
475         movl    %ebp,%eax
476         subl    %ecx,%esp
477         andl    $-16,%ebp
478         andl    $-16,%esp
479         movl    %eax,16(%ebp)
480         movl    %edi,%eax
481         movl    %ecx,%ebx
482         shrl    $2,%ecx
483         leal    (%esp),%edi
484 .byte   243,165
485         movl    %esp,%esi
486         movl    %eax,%edi
487         movl    %ebx,%ecx
488         jmp     .L021cbc_loop
489 .L028cbc_exit:
490         movl    $1,%eax
491         leal    4(%esp),%esp
492 .L018cbc_abort:
493         popl    %edi
494         popl    %esi
495         popl    %ebx
496         popl    %ebp
497         ret
498 .size   padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin
499 .globl  padlock_cfb_encrypt
500 .type   padlock_cfb_encrypt,@function
501 .align  16
502 padlock_cfb_encrypt:
503 .L_padlock_cfb_encrypt_begin:
504         pushl   %ebp
505         pushl   %ebx
506         pushl   %esi
507         pushl   %edi
508         movl    20(%esp),%edi
509         movl    24(%esp),%esi
510         movl    28(%esp),%edx
511         movl    32(%esp),%ecx
512         testl   $15,%edx
513         jnz     .L030cfb_abort
514         testl   $15,%ecx
515         jnz     .L030cfb_abort
516         leal    .Lpadlock_saved_context-.L031cfb_pic_point,%eax
517         pushfl
518         cld
519         call    _padlock_verify_ctx
520 .L031cfb_pic_point:
521         leal    16(%edx),%edx
522         xorl    %eax,%eax
523         xorl    %ebx,%ebx
524         testl   $32,(%edx)
525         jnz     .L032cfb_aligned
526         testl   $15,%edi
527         setz    %al
528         testl   $15,%esi
529         setz    %bl
530         testl   %ebx,%eax
531         jnz     .L032cfb_aligned
532         negl    %eax
533         movl    $512,%ebx
534         notl    %eax
535         leal    -24(%esp),%ebp
536         cmpl    %ebx,%ecx
537         cmovcl  %ecx,%ebx
538         andl    %ebx,%eax
539         movl    %ecx,%ebx
540         negl    %eax
541         andl    $511,%ebx
542         leal    (%eax,%ebp,1),%esp
543         movl    $512,%eax
544         cmovzl  %eax,%ebx
545         movl    %ebp,%eax
546         andl    $-16,%ebp
547         andl    $-16,%esp
548         movl    %eax,16(%ebp)
549         jmp     .L033cfb_loop
550 .align  16
551 .L033cfb_loop:
552         movl    %edi,(%ebp)
553         movl    %esi,4(%ebp)
554         movl    %ecx,8(%ebp)
555         movl    %ebx,%ecx
556         movl    %ebx,12(%ebp)
557         testl   $15,%edi
558         cmovnzl %esp,%edi
559         testl   $15,%esi
560         jz      .L034cfb_inp_aligned
561         shrl    $2,%ecx
562 .byte   243,165
563         subl    %ebx,%edi
564         movl    %ebx,%ecx
565         movl    %edi,%esi
566 .L034cfb_inp_aligned:
567         leal    -16(%edx),%eax
568         leal    16(%edx),%ebx
569         shrl    $4,%ecx
570 .byte   243,15,167,224
571         movaps  (%eax),%xmm0
572         movaps  %xmm0,-16(%edx)
573         movl    (%ebp),%edi
574         movl    12(%ebp),%ebx
575         testl   $15,%edi
576         jz      .L035cfb_out_aligned
577         movl    %ebx,%ecx
578         leal    (%esp),%esi
579         shrl    $2,%ecx
580 .byte   243,165
581         subl    %ebx,%edi
582 .L035cfb_out_aligned:
583         movl    4(%ebp),%esi
584         movl    8(%ebp),%ecx
585         addl    %ebx,%edi
586         addl    %ebx,%esi
587         subl    %ebx,%ecx
588         movl    $512,%ebx
589         jnz     .L033cfb_loop
590         cmpl    %ebp,%esp
591         je      .L036cfb_done
592         pxor    %xmm0,%xmm0
593         leal    (%esp),%eax
594 .L037cfb_bzero:
595         movaps  %xmm0,(%eax)
596         leal    16(%eax),%eax
597         cmpl    %eax,%ebp
598         ja      .L037cfb_bzero
599 .L036cfb_done:
600         movl    16(%ebp),%ebp
601         leal    24(%ebp),%esp
602         jmp     .L038cfb_exit
603 .align  16
604 .L032cfb_aligned:
605         leal    -16(%edx),%eax
606         leal    16(%edx),%ebx
607         shrl    $4,%ecx
608 .byte   243,15,167,224
609         movaps  (%eax),%xmm0
610         movaps  %xmm0,-16(%edx)
611 .L038cfb_exit:
612         movl    $1,%eax
613         leal    4(%esp),%esp
614 .L030cfb_abort:
615         popl    %edi
616         popl    %esi
617         popl    %ebx
618         popl    %ebp
619         ret
620 .size   padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin
621 .globl  padlock_ofb_encrypt
622 .type   padlock_ofb_encrypt,@function
623 .align  16
624 padlock_ofb_encrypt:
625 .L_padlock_ofb_encrypt_begin:
626         pushl   %ebp
627         pushl   %ebx
628         pushl   %esi
629         pushl   %edi
630         movl    20(%esp),%edi
631         movl    24(%esp),%esi
632         movl    28(%esp),%edx
633         movl    32(%esp),%ecx
634         testl   $15,%edx
635         jnz     .L039ofb_abort
636         testl   $15,%ecx
637         jnz     .L039ofb_abort
638         leal    .Lpadlock_saved_context-.L040ofb_pic_point,%eax
639         pushfl
640         cld
641         call    _padlock_verify_ctx
642 .L040ofb_pic_point:
643         leal    16(%edx),%edx
644         xorl    %eax,%eax
645         xorl    %ebx,%ebx
646         testl   $32,(%edx)
647         jnz     .L041ofb_aligned
648         testl   $15,%edi
649         setz    %al
650         testl   $15,%esi
651         setz    %bl
652         testl   %ebx,%eax
653         jnz     .L041ofb_aligned
654         negl    %eax
655         movl    $512,%ebx
656         notl    %eax
657         leal    -24(%esp),%ebp
658         cmpl    %ebx,%ecx
659         cmovcl  %ecx,%ebx
660         andl    %ebx,%eax
661         movl    %ecx,%ebx
662         negl    %eax
663         andl    $511,%ebx
664         leal    (%eax,%ebp,1),%esp
665         movl    $512,%eax
666         cmovzl  %eax,%ebx
667         movl    %ebp,%eax
668         andl    $-16,%ebp
669         andl    $-16,%esp
670         movl    %eax,16(%ebp)
671         jmp     .L042ofb_loop
672 .align  16
673 .L042ofb_loop:
674         movl    %edi,(%ebp)
675         movl    %esi,4(%ebp)
676         movl    %ecx,8(%ebp)
677         movl    %ebx,%ecx
678         movl    %ebx,12(%ebp)
679         testl   $15,%edi
680         cmovnzl %esp,%edi
681         testl   $15,%esi
682         jz      .L043ofb_inp_aligned
683         shrl    $2,%ecx
684 .byte   243,165
685         subl    %ebx,%edi
686         movl    %ebx,%ecx
687         movl    %edi,%esi
688 .L043ofb_inp_aligned:
689         leal    -16(%edx),%eax
690         leal    16(%edx),%ebx
691         shrl    $4,%ecx
692 .byte   243,15,167,232
693         movaps  (%eax),%xmm0
694         movaps  %xmm0,-16(%edx)
695         movl    (%ebp),%edi
696         movl    12(%ebp),%ebx
697         testl   $15,%edi
698         jz      .L044ofb_out_aligned
699         movl    %ebx,%ecx
700         leal    (%esp),%esi
701         shrl    $2,%ecx
702 .byte   243,165
703         subl    %ebx,%edi
704 .L044ofb_out_aligned:
705         movl    4(%ebp),%esi
706         movl    8(%ebp),%ecx
707         addl    %ebx,%edi
708         addl    %ebx,%esi
709         subl    %ebx,%ecx
710         movl    $512,%ebx
711         jnz     .L042ofb_loop
712         cmpl    %ebp,%esp
713         je      .L045ofb_done
714         pxor    %xmm0,%xmm0
715         leal    (%esp),%eax
716 .L046ofb_bzero:
717         movaps  %xmm0,(%eax)
718         leal    16(%eax),%eax
719         cmpl    %eax,%ebp
720         ja      .L046ofb_bzero
721 .L045ofb_done:
722         movl    16(%ebp),%ebp
723         leal    24(%ebp),%esp
724         jmp     .L047ofb_exit
725 .align  16
726 .L041ofb_aligned:
727         leal    -16(%edx),%eax
728         leal    16(%edx),%ebx
729         shrl    $4,%ecx
730 .byte   243,15,167,232
731         movaps  (%eax),%xmm0
732         movaps  %xmm0,-16(%edx)
733 .L047ofb_exit:
734         movl    $1,%eax
735         leal    4(%esp),%esp
736 .L039ofb_abort:
737         popl    %edi
738         popl    %esi
739         popl    %ebx
740         popl    %ebp
741         ret
742 .size   padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin
743 .globl  padlock_ctr32_encrypt
744 .type   padlock_ctr32_encrypt,@function
745 .align  16
746 padlock_ctr32_encrypt:
747 .L_padlock_ctr32_encrypt_begin:
748         pushl   %ebp
749         pushl   %ebx
750         pushl   %esi
751         pushl   %edi
752         movl    20(%esp),%edi
753         movl    24(%esp),%esi
754         movl    28(%esp),%edx
755         movl    32(%esp),%ecx
756         testl   $15,%edx
757         jnz     .L048ctr32_abort
758         testl   $15,%ecx
759         jnz     .L048ctr32_abort
760         leal    .Lpadlock_saved_context-.L049ctr32_pic_point,%eax
761         pushfl
762         cld
763         call    _padlock_verify_ctx
764 .L049ctr32_pic_point:
765         leal    16(%edx),%edx
766         xorl    %eax,%eax
767         movq    -16(%edx),%mm0
768         movl    $512,%ebx
769         notl    %eax
770         leal    -24(%esp),%ebp
771         cmpl    %ebx,%ecx
772         cmovcl  %ecx,%ebx
773         andl    %ebx,%eax
774         movl    %ecx,%ebx
775         negl    %eax
776         andl    $511,%ebx
777         leal    (%eax,%ebp,1),%esp
778         movl    $512,%eax
779         cmovzl  %eax,%ebx
780         movl    %ebp,%eax
781         andl    $-16,%ebp
782         andl    $-16,%esp
783         movl    %eax,16(%ebp)
784         jmp     .L050ctr32_loop
785 .align  16
786 .L050ctr32_loop:
787         movl    %edi,(%ebp)
788         movl    %esi,4(%ebp)
789         movl    %ecx,8(%ebp)
790         movl    %ebx,%ecx
791         movl    %ebx,12(%ebp)
792         movl    -4(%edx),%ecx
793         xorl    %edi,%edi
794         movl    -8(%edx),%eax
795 .L051ctr32_prepare:
796         movl    %ecx,12(%esp,%edi,1)
797         bswap   %ecx
798         movq    %mm0,(%esp,%edi,1)
799         incl    %ecx
800         movl    %eax,8(%esp,%edi,1)
801         bswap   %ecx
802         leal    16(%edi),%edi
803         cmpl    %ebx,%edi
804         jb      .L051ctr32_prepare
805         movl    %ecx,-4(%edx)
806         leal    (%esp),%esi
807         leal    (%esp),%edi
808         movl    %ebx,%ecx
809         leal    -16(%edx),%eax
810         leal    16(%edx),%ebx
811         shrl    $4,%ecx
812 .byte   243,15,167,200
813         movl    (%ebp),%edi
814         movl    12(%ebp),%ebx
815         movl    4(%ebp),%esi
816         xorl    %ecx,%ecx
817 .L052ctr32_xor:
818         movups  (%esi,%ecx,1),%xmm1
819         leal    16(%ecx),%ecx
820         pxor    -16(%esp,%ecx,1),%xmm1
821         movups  %xmm1,-16(%edi,%ecx,1)
822         cmpl    %ebx,%ecx
823         jb      .L052ctr32_xor
824         movl    8(%ebp),%ecx
825         addl    %ebx,%edi
826         addl    %ebx,%esi
827         subl    %ebx,%ecx
828         movl    $512,%ebx
829         jnz     .L050ctr32_loop
830         pxor    %xmm0,%xmm0
831         leal    (%esp),%eax
832 .L053ctr32_bzero:
833         movaps  %xmm0,(%eax)
834         leal    16(%eax),%eax
835         cmpl    %eax,%ebp
836         ja      .L053ctr32_bzero
837 .L054ctr32_done:
838         movl    16(%ebp),%ebp
839         leal    24(%ebp),%esp
840         movl    $1,%eax
841         leal    4(%esp),%esp
842         emms
843 .L048ctr32_abort:
844         popl    %edi
845         popl    %esi
846         popl    %ebx
847         popl    %ebp
848         ret
849 .size   padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin
850 .globl  padlock_xstore
851 .type   padlock_xstore,@function
852 .align  16
853 padlock_xstore:
854 .L_padlock_xstore_begin:
855         pushl   %edi
856         movl    8(%esp),%edi
857         movl    12(%esp),%edx
858 .byte   15,167,192
859         popl    %edi
860         ret
861 .size   padlock_xstore,.-.L_padlock_xstore_begin
862 .type   _win32_segv_handler,@function
863 .align  16
864 _win32_segv_handler:
865         movl    $1,%eax
866         movl    4(%esp),%edx
867         movl    12(%esp),%ecx
868         cmpl    $3221225477,(%edx)
869         jne     .L055ret
870         addl    $4,184(%ecx)
871         movl    $0,%eax
872 .L055ret:
873         ret
874 .size   _win32_segv_handler,.-_win32_segv_handler
875 .globl  padlock_sha1_oneshot
876 .type   padlock_sha1_oneshot,@function
877 .align  16
878 padlock_sha1_oneshot:
879 .L_padlock_sha1_oneshot_begin:
880         pushl   %edi
881         pushl   %esi
882         xorl    %eax,%eax
883         movl    12(%esp),%edi
884         movl    16(%esp),%esi
885         movl    20(%esp),%ecx
886         movl    %esp,%edx
887         addl    $-128,%esp
888         movups  (%edi),%xmm0
889         andl    $-16,%esp
890         movl    16(%edi),%eax
891         movaps  %xmm0,(%esp)
892         movl    %esp,%edi
893         movl    %eax,16(%esp)
894         xorl    %eax,%eax
895 .byte   243,15,166,200
896         movaps  (%esp),%xmm0
897         movl    16(%esp),%eax
898         movl    %edx,%esp
899         movl    12(%esp),%edi
900         movups  %xmm0,(%edi)
901         movl    %eax,16(%edi)
902         popl    %esi
903         popl    %edi
904         ret
905 .size   padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin
906 .globl  padlock_sha1_blocks
907 .type   padlock_sha1_blocks,@function
908 .align  16
909 padlock_sha1_blocks:
910 .L_padlock_sha1_blocks_begin:
911         pushl   %edi
912         pushl   %esi
913         movl    12(%esp),%edi
914         movl    16(%esp),%esi
915         movl    %esp,%edx
916         movl    20(%esp),%ecx
917         addl    $-128,%esp
918         movups  (%edi),%xmm0
919         andl    $-16,%esp
920         movl    16(%edi),%eax
921         movaps  %xmm0,(%esp)
922         movl    %esp,%edi
923         movl    %eax,16(%esp)
924         movl    $-1,%eax
925 .byte   243,15,166,200
926         movaps  (%esp),%xmm0
927         movl    16(%esp),%eax
928         movl    %edx,%esp
929         movl    12(%esp),%edi
930         movups  %xmm0,(%edi)
931         movl    %eax,16(%edi)
932         popl    %esi
933         popl    %edi
934         ret
935 .size   padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin
936 .globl  padlock_sha256_oneshot
937 .type   padlock_sha256_oneshot,@function
938 .align  16
939 padlock_sha256_oneshot:
940 .L_padlock_sha256_oneshot_begin:
941         pushl   %edi
942         pushl   %esi
943         xorl    %eax,%eax
944         movl    12(%esp),%edi
945         movl    16(%esp),%esi
946         movl    20(%esp),%ecx
947         movl    %esp,%edx
948         addl    $-128,%esp
949         movups  (%edi),%xmm0
950         andl    $-16,%esp
951         movups  16(%edi),%xmm1
952         movaps  %xmm0,(%esp)
953         movl    %esp,%edi
954         movaps  %xmm1,16(%esp)
955         xorl    %eax,%eax
956 .byte   243,15,166,208
957         movaps  (%esp),%xmm0
958         movaps  16(%esp),%xmm1
959         movl    %edx,%esp
960         movl    12(%esp),%edi
961         movups  %xmm0,(%edi)
962         movups  %xmm1,16(%edi)
963         popl    %esi
964         popl    %edi
965         ret
966 .size   padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin
967 .globl  padlock_sha256_blocks
968 .type   padlock_sha256_blocks,@function
969 .align  16
970 padlock_sha256_blocks:
971 .L_padlock_sha256_blocks_begin:
972         pushl   %edi
973         pushl   %esi
974         movl    12(%esp),%edi
975         movl    16(%esp),%esi
976         movl    20(%esp),%ecx
977         movl    %esp,%edx
978         addl    $-128,%esp
979         movups  (%edi),%xmm0
980         andl    $-16,%esp
981         movups  16(%edi),%xmm1
982         movaps  %xmm0,(%esp)
983         movl    %esp,%edi
984         movaps  %xmm1,16(%esp)
985         movl    $-1,%eax
986 .byte   243,15,166,208
987         movaps  (%esp),%xmm0
988         movaps  16(%esp),%xmm1
989         movl    %edx,%esp
990         movl    12(%esp),%edi
991         movups  %xmm0,(%edi)
992         movups  %xmm1,16(%edi)
993         popl    %esi
994         popl    %edi
995         ret
996 .size   padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin
997 .globl  padlock_sha512_blocks
998 .type   padlock_sha512_blocks,@function
999 .align  16
1000 padlock_sha512_blocks:
1001 .L_padlock_sha512_blocks_begin:
1002         pushl   %edi
1003         pushl   %esi
1004         movl    12(%esp),%edi
1005         movl    16(%esp),%esi
1006         movl    20(%esp),%ecx
1007         movl    %esp,%edx
1008         addl    $-128,%esp
1009         movups  (%edi),%xmm0
1010         andl    $-16,%esp
1011         movups  16(%edi),%xmm1
1012         movups  32(%edi),%xmm2
1013         movups  48(%edi),%xmm3
1014         movaps  %xmm0,(%esp)
1015         movl    %esp,%edi
1016         movaps  %xmm1,16(%esp)
1017         movaps  %xmm2,32(%esp)
1018         movaps  %xmm3,48(%esp)
1019 .byte   243,15,166,224
1020         movaps  (%esp),%xmm0
1021         movaps  16(%esp),%xmm1
1022         movaps  32(%esp),%xmm2
1023         movaps  48(%esp),%xmm3
1024         movl    %edx,%esp
1025         movl    12(%esp),%edi
1026         movups  %xmm0,(%edi)
1027         movups  %xmm1,16(%edi)
1028         movups  %xmm2,32(%edi)
1029         movups  %xmm3,48(%edi)
1030         popl    %esi
1031         popl    %edi
1032         ret
1033 .size   padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin
1034 .byte   86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32
1035 .byte   109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65
1036 .byte   77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
1037 .byte   110,115,115,108,46,111,114,103,62,0
1038 .align  16
1039 .data
1040 .align  4
1041 .Lpadlock_saved_context:
1042 .long   0
1043 #else
1044 .text
1045 .globl  padlock_capability
1046 .type   padlock_capability,@function
1047 .align  16
1048 padlock_capability:
1049 .L_padlock_capability_begin:
1050         pushl   %ebx
1051         pushfl
1052         popl    %eax
1053         movl    %eax,%ecx
1054         xorl    $2097152,%eax
1055         pushl   %eax
1056         popfl
1057         pushfl
1058         popl    %eax
1059         xorl    %eax,%ecx
1060         xorl    %eax,%eax
1061         btl     $21,%ecx
1062         jnc     .L000noluck
1063         .byte   0x0f,0xa2
1064         xorl    %eax,%eax
1065         cmpl    $0x746e6543,%ebx
1066         jne     .L001zhaoxin
1067         cmpl    $0x48727561,%edx
1068         jne     .L000noluck
1069         cmpl    $0x736c7561,%ecx
1070         jne     .L000noluck
1071         jmp     .L002zhaoxinEnd
1072 .L001zhaoxin:
1073         cmpl    $0x68532020,%ebx
1074         jne     .L000noluck
1075         cmpl    $0x68676e61,%edx
1076         jne     .L000noluck
1077         cmpl    $0x20206961,%ecx
1078         jne     .L000noluck
1079 .L002zhaoxinEnd:
1080         movl    $3221225472,%eax
1081         .byte   0x0f,0xa2
1082         movl    %eax,%edx
1083         xorl    %eax,%eax
1084         cmpl    $3221225473,%edx
1085         jb      .L000noluck
1086         movl    $1,%eax
1087         .byte   0x0f,0xa2
1088         orl     $15,%eax
1089         xorl    %ebx,%ebx
1090         andl    $4095,%eax
1091         cmpl    $1791,%eax
1092         sete    %bl
1093         movl    $3221225473,%eax
1094         pushl   %ebx
1095         .byte   0x0f,0xa2
1096         popl    %ebx
1097         movl    %edx,%eax
1098         shll    $4,%ebx
1099         andl    $4294967279,%eax
1100         orl     %ebx,%eax
1101 .L000noluck:
1102         popl    %ebx
1103         ret
1104 .size   padlock_capability,.-.L_padlock_capability_begin
1105 .globl  padlock_key_bswap
1106 .type   padlock_key_bswap,@function
1107 .align  16
1108 padlock_key_bswap:
1109 .L_padlock_key_bswap_begin:
1110         movl    4(%esp),%edx
1111         movl    240(%edx),%ecx
1112 .L003bswap_loop:
1113         movl    (%edx),%eax
1114         bswap   %eax
1115         movl    %eax,(%edx)
1116         leal    4(%edx),%edx
1117         subl    $1,%ecx
1118         jnz     .L003bswap_loop
1119         ret
1120 .size   padlock_key_bswap,.-.L_padlock_key_bswap_begin
1121 .globl  padlock_verify_context
1122 .type   padlock_verify_context,@function
1123 .align  16
1124 padlock_verify_context:
1125 .L_padlock_verify_context_begin:
1126         movl    4(%esp),%edx
1127         leal    .Lpadlock_saved_context-.L004verify_pic_point,%eax
1128         pushfl
1129         call    _padlock_verify_ctx
1130 .L004verify_pic_point:
1131         leal    4(%esp),%esp
1132         ret
1133 .size   padlock_verify_context,.-.L_padlock_verify_context_begin
1134 .type   _padlock_verify_ctx,@function
1135 .align  16
1136 _padlock_verify_ctx:
1137         addl    (%esp),%eax
1138         btl     $30,4(%esp)
1139         jnc     .L005verified
1140         cmpl    (%eax),%edx
1141         je      .L005verified
1142         pushfl
1143         popfl
1144 .L005verified:
1145         movl    %edx,(%eax)
1146         ret
1147 .size   _padlock_verify_ctx,.-_padlock_verify_ctx
1148 .globl  padlock_reload_key
1149 .type   padlock_reload_key,@function
1150 .align  16
1151 padlock_reload_key:
1152 .L_padlock_reload_key_begin:
1153         pushfl
1154         popfl
1155         ret
1156 .size   padlock_reload_key,.-.L_padlock_reload_key_begin
1157 .globl  padlock_aes_block
1158 .type   padlock_aes_block,@function
1159 .align  16
1160 padlock_aes_block:
1161 .L_padlock_aes_block_begin:
1162         pushl   %edi
1163         pushl   %esi
1164         pushl   %ebx
1165         movl    16(%esp),%edi
1166         movl    20(%esp),%esi
1167         movl    24(%esp),%edx
1168         movl    $1,%ecx
1169         leal    32(%edx),%ebx
1170         leal    16(%edx),%edx
1171 .byte   243,15,167,200
1172         popl    %ebx
1173         popl    %esi
1174         popl    %edi
1175         ret
1176 .size   padlock_aes_block,.-.L_padlock_aes_block_begin
1177 .globl  padlock_ecb_encrypt
1178 .type   padlock_ecb_encrypt,@function
1179 .align  16
1180 padlock_ecb_encrypt:
1181 .L_padlock_ecb_encrypt_begin:
1182         pushl   %ebp
1183         pushl   %ebx
1184         pushl   %esi
1185         pushl   %edi
1186         movl    20(%esp),%edi
1187         movl    24(%esp),%esi
1188         movl    28(%esp),%edx
1189         movl    32(%esp),%ecx
1190         testl   $15,%edx
1191         jnz     .L006ecb_abort
1192         testl   $15,%ecx
1193         jnz     .L006ecb_abort
1194         leal    .Lpadlock_saved_context-.L007ecb_pic_point,%eax
1195         pushfl
1196         cld
1197         call    _padlock_verify_ctx
1198 .L007ecb_pic_point:
1199         leal    16(%edx),%edx
1200         xorl    %eax,%eax
1201         xorl    %ebx,%ebx
1202         testl   $32,(%edx)
1203         jnz     .L008ecb_aligned
1204         testl   $15,%edi
1205         setz    %al
1206         testl   $15,%esi
1207         setz    %bl
1208         testl   %ebx,%eax
1209         jnz     .L008ecb_aligned
1210         negl    %eax
1211         movl    $512,%ebx
1212         notl    %eax
1213         leal    -24(%esp),%ebp
1214         cmpl    %ebx,%ecx
1215         cmovcl  %ecx,%ebx
1216         andl    %ebx,%eax
1217         movl    %ecx,%ebx
1218         negl    %eax
1219         andl    $511,%ebx
1220         leal    (%eax,%ebp,1),%esp
1221         movl    $512,%eax
1222         cmovzl  %eax,%ebx
1223         movl    %ebp,%eax
1224         andl    $-16,%ebp
1225         andl    $-16,%esp
1226         movl    %eax,16(%ebp)
1227         cmpl    %ebx,%ecx
1228         ja      .L009ecb_loop
1229         movl    %esi,%eax
1230         cmpl    %esp,%ebp
1231         cmovel  %edi,%eax
1232         addl    %ecx,%eax
1233         negl    %eax
1234         andl    $4095,%eax
1235         cmpl    $128,%eax
1236         movl    $-128,%eax
1237         cmovael %ebx,%eax
1238         andl    %eax,%ebx
1239         jz      .L010ecb_unaligned_tail
1240         jmp     .L009ecb_loop
1241 .align  16
1242 .L009ecb_loop:
1243         movl    %edi,(%ebp)
1244         movl    %esi,4(%ebp)
1245         movl    %ecx,8(%ebp)
1246         movl    %ebx,%ecx
1247         movl    %ebx,12(%ebp)
1248         testl   $15,%edi
1249         cmovnzl %esp,%edi
1250         testl   $15,%esi
1251         jz      .L011ecb_inp_aligned
1252         shrl    $2,%ecx
1253 .byte   243,165
1254         subl    %ebx,%edi
1255         movl    %ebx,%ecx
1256         movl    %edi,%esi
1257 .L011ecb_inp_aligned:
1258         leal    -16(%edx),%eax
1259         leal    16(%edx),%ebx
1260         shrl    $4,%ecx
1261 .byte   243,15,167,200
1262         movl    (%ebp),%edi
1263         movl    12(%ebp),%ebx
1264         testl   $15,%edi
1265         jz      .L012ecb_out_aligned
1266         movl    %ebx,%ecx
1267         leal    (%esp),%esi
1268         shrl    $2,%ecx
1269 .byte   243,165
1270         subl    %ebx,%edi
1271 .L012ecb_out_aligned:
1272         movl    4(%ebp),%esi
1273         movl    8(%ebp),%ecx
1274         addl    %ebx,%edi
1275         addl    %ebx,%esi
1276         subl    %ebx,%ecx
1277         movl    $512,%ebx
1278         jz      .L013ecb_break
1279         cmpl    %ebx,%ecx
1280         jae     .L009ecb_loop
1281 .L010ecb_unaligned_tail:
1282         xorl    %eax,%eax
1283         cmpl    %ebp,%esp
1284         cmovel  %ecx,%eax
1285         subl    %eax,%esp
1286         movl    %edi,%eax
1287         movl    %ecx,%ebx
1288         shrl    $2,%ecx
1289         leal    (%esp),%edi
1290 .byte   243,165
1291         movl    %esp,%esi
1292         movl    %eax,%edi
1293         movl    %ebx,%ecx
1294         jmp     .L009ecb_loop
1295 .align  16
1296 .L013ecb_break:
1297         cmpl    %ebp,%esp
1298         je      .L014ecb_done
1299         pxor    %xmm0,%xmm0
1300         leal    (%esp),%eax
1301 .L015ecb_bzero:
1302         movaps  %xmm0,(%eax)
1303         leal    16(%eax),%eax
1304         cmpl    %eax,%ebp
1305         ja      .L015ecb_bzero
1306 .L014ecb_done:
1307         movl    16(%ebp),%ebp
1308         leal    24(%ebp),%esp
1309         jmp     .L016ecb_exit
1310 .align  16
1311 .L008ecb_aligned:
1312         leal    (%esi,%ecx,1),%ebp
1313         negl    %ebp
1314         andl    $4095,%ebp
1315         xorl    %eax,%eax
1316         cmpl    $128,%ebp
1317         movl    $127,%ebp
1318         cmovael %eax,%ebp
1319         andl    %ecx,%ebp
1320         subl    %ebp,%ecx
1321         jz      .L017ecb_aligned_tail
1322         leal    -16(%edx),%eax
1323         leal    16(%edx),%ebx
1324         shrl    $4,%ecx
1325 .byte   243,15,167,200
1326         testl   %ebp,%ebp
1327         jz      .L016ecb_exit
1328 .L017ecb_aligned_tail:
1329         movl    %ebp,%ecx
1330         leal    -24(%esp),%ebp
1331         movl    %ebp,%esp
1332         movl    %ebp,%eax
1333         subl    %ecx,%esp
1334         andl    $-16,%ebp
1335         andl    $-16,%esp
1336         movl    %eax,16(%ebp)
1337         movl    %edi,%eax
1338         movl    %ecx,%ebx
1339         shrl    $2,%ecx
1340         leal    (%esp),%edi
1341 .byte   243,165
1342         movl    %esp,%esi
1343         movl    %eax,%edi
1344         movl    %ebx,%ecx
1345         jmp     .L009ecb_loop
1346 .L016ecb_exit:
1347         movl    $1,%eax
1348         leal    4(%esp),%esp
1349 .L006ecb_abort:
1350         popl    %edi
1351         popl    %esi
1352         popl    %ebx
1353         popl    %ebp
1354         ret
1355 .size   padlock_ecb_encrypt,.-.L_padlock_ecb_encrypt_begin
1356 .globl  padlock_cbc_encrypt
1357 .type   padlock_cbc_encrypt,@function
1358 .align  16
1359 padlock_cbc_encrypt:
1360 .L_padlock_cbc_encrypt_begin:
1361         pushl   %ebp
1362         pushl   %ebx
1363         pushl   %esi
1364         pushl   %edi
1365         movl    20(%esp),%edi
1366         movl    24(%esp),%esi
1367         movl    28(%esp),%edx
1368         movl    32(%esp),%ecx
1369         testl   $15,%edx
1370         jnz     .L018cbc_abort
1371         testl   $15,%ecx
1372         jnz     .L018cbc_abort
1373         leal    .Lpadlock_saved_context-.L019cbc_pic_point,%eax
1374         pushfl
1375         cld
1376         call    _padlock_verify_ctx
1377 .L019cbc_pic_point:
1378         leal    16(%edx),%edx
1379         xorl    %eax,%eax
1380         xorl    %ebx,%ebx
1381         testl   $32,(%edx)
1382         jnz     .L020cbc_aligned
1383         testl   $15,%edi
1384         setz    %al
1385         testl   $15,%esi
1386         setz    %bl
1387         testl   %ebx,%eax
1388         jnz     .L020cbc_aligned
1389         negl    %eax
1390         movl    $512,%ebx
1391         notl    %eax
1392         leal    -24(%esp),%ebp
1393         cmpl    %ebx,%ecx
1394         cmovcl  %ecx,%ebx
1395         andl    %ebx,%eax
1396         movl    %ecx,%ebx
1397         negl    %eax
1398         andl    $511,%ebx
1399         leal    (%eax,%ebp,1),%esp
1400         movl    $512,%eax
1401         cmovzl  %eax,%ebx
1402         movl    %ebp,%eax
1403         andl    $-16,%ebp
1404         andl    $-16,%esp
1405         movl    %eax,16(%ebp)
1406         cmpl    %ebx,%ecx
1407         ja      .L021cbc_loop
1408         movl    %esi,%eax
1409         cmpl    %esp,%ebp
1410         cmovel  %edi,%eax
1411         addl    %ecx,%eax
1412         negl    %eax
1413         andl    $4095,%eax
1414         cmpl    $64,%eax
1415         movl    $-64,%eax
1416         cmovael %ebx,%eax
1417         andl    %eax,%ebx
1418         jz      .L022cbc_unaligned_tail
1419         jmp     .L021cbc_loop
1420 .align  16
1421 .L021cbc_loop:
1422         movl    %edi,(%ebp)
1423         movl    %esi,4(%ebp)
1424         movl    %ecx,8(%ebp)
1425         movl    %ebx,%ecx
1426         movl    %ebx,12(%ebp)
1427         testl   $15,%edi
1428         cmovnzl %esp,%edi
1429         testl   $15,%esi
1430         jz      .L023cbc_inp_aligned
1431         shrl    $2,%ecx
1432 .byte   243,165
1433         subl    %ebx,%edi
1434         movl    %ebx,%ecx
1435         movl    %edi,%esi
1436 .L023cbc_inp_aligned:
1437         leal    -16(%edx),%eax
1438         leal    16(%edx),%ebx
1439         shrl    $4,%ecx
1440 .byte   243,15,167,208
1441         movaps  (%eax),%xmm0
1442         movaps  %xmm0,-16(%edx)
1443         movl    (%ebp),%edi
1444         movl    12(%ebp),%ebx
1445         testl   $15,%edi
1446         jz      .L024cbc_out_aligned
1447         movl    %ebx,%ecx
1448         leal    (%esp),%esi
1449         shrl    $2,%ecx
1450 .byte   243,165
1451         subl    %ebx,%edi
1452 .L024cbc_out_aligned:
1453         movl    4(%ebp),%esi
1454         movl    8(%ebp),%ecx
1455         addl    %ebx,%edi
1456         addl    %ebx,%esi
1457         subl    %ebx,%ecx
1458         movl    $512,%ebx
1459         jz      .L025cbc_break
1460         cmpl    %ebx,%ecx
1461         jae     .L021cbc_loop
1462 .L022cbc_unaligned_tail:
1463         xorl    %eax,%eax
1464         cmpl    %ebp,%esp
1465         cmovel  %ecx,%eax
1466         subl    %eax,%esp
1467         movl    %edi,%eax
1468         movl    %ecx,%ebx
1469         shrl    $2,%ecx
1470         leal    (%esp),%edi
1471 .byte   243,165
1472         movl    %esp,%esi
1473         movl    %eax,%edi
1474         movl    %ebx,%ecx
1475         jmp     .L021cbc_loop
1476 .align  16
1477 .L025cbc_break:
1478         cmpl    %ebp,%esp
1479         je      .L026cbc_done
1480         pxor    %xmm0,%xmm0
1481         leal    (%esp),%eax
1482 .L027cbc_bzero:
1483         movaps  %xmm0,(%eax)
1484         leal    16(%eax),%eax
1485         cmpl    %eax,%ebp
1486         ja      .L027cbc_bzero
1487 .L026cbc_done:
1488         movl    16(%ebp),%ebp
1489         leal    24(%ebp),%esp
1490         jmp     .L028cbc_exit
1491 .align  16
1492 .L020cbc_aligned:
1493         leal    (%esi,%ecx,1),%ebp
1494         negl    %ebp
1495         andl    $4095,%ebp
1496         xorl    %eax,%eax
1497         cmpl    $64,%ebp
1498         movl    $63,%ebp
1499         cmovael %eax,%ebp
1500         andl    %ecx,%ebp
1501         subl    %ebp,%ecx
1502         jz      .L029cbc_aligned_tail
1503         leal    -16(%edx),%eax
1504         leal    16(%edx),%ebx
1505         shrl    $4,%ecx
1506 .byte   243,15,167,208
1507         movaps  (%eax),%xmm0
1508         movaps  %xmm0,-16(%edx)
1509         testl   %ebp,%ebp
1510         jz      .L028cbc_exit
1511 .L029cbc_aligned_tail:
1512         movl    %ebp,%ecx
1513         leal    -24(%esp),%ebp
1514         movl    %ebp,%esp
1515         movl    %ebp,%eax
1516         subl    %ecx,%esp
1517         andl    $-16,%ebp
1518         andl    $-16,%esp
1519         movl    %eax,16(%ebp)
1520         movl    %edi,%eax
1521         movl    %ecx,%ebx
1522         shrl    $2,%ecx
1523         leal    (%esp),%edi
1524 .byte   243,165
1525         movl    %esp,%esi
1526         movl    %eax,%edi
1527         movl    %ebx,%ecx
1528         jmp     .L021cbc_loop
1529 .L028cbc_exit:
1530         movl    $1,%eax
1531         leal    4(%esp),%esp
1532 .L018cbc_abort:
1533         popl    %edi
1534         popl    %esi
1535         popl    %ebx
1536         popl    %ebp
1537         ret
1538 .size   padlock_cbc_encrypt,.-.L_padlock_cbc_encrypt_begin
1539 .globl  padlock_cfb_encrypt
1540 .type   padlock_cfb_encrypt,@function
1541 .align  16
1542 padlock_cfb_encrypt:
1543 .L_padlock_cfb_encrypt_begin:
1544         pushl   %ebp
1545         pushl   %ebx
1546         pushl   %esi
1547         pushl   %edi
1548         movl    20(%esp),%edi
1549         movl    24(%esp),%esi
1550         movl    28(%esp),%edx
1551         movl    32(%esp),%ecx
1552         testl   $15,%edx
1553         jnz     .L030cfb_abort
1554         testl   $15,%ecx
1555         jnz     .L030cfb_abort
1556         leal    .Lpadlock_saved_context-.L031cfb_pic_point,%eax
1557         pushfl
1558         cld
1559         call    _padlock_verify_ctx
1560 .L031cfb_pic_point:
1561         leal    16(%edx),%edx
1562         xorl    %eax,%eax
1563         xorl    %ebx,%ebx
1564         testl   $32,(%edx)
1565         jnz     .L032cfb_aligned
1566         testl   $15,%edi
1567         setz    %al
1568         testl   $15,%esi
1569         setz    %bl
1570         testl   %ebx,%eax
1571         jnz     .L032cfb_aligned
1572         negl    %eax
1573         movl    $512,%ebx
1574         notl    %eax
1575         leal    -24(%esp),%ebp
1576         cmpl    %ebx,%ecx
1577         cmovcl  %ecx,%ebx
1578         andl    %ebx,%eax
1579         movl    %ecx,%ebx
1580         negl    %eax
1581         andl    $511,%ebx
1582         leal    (%eax,%ebp,1),%esp
1583         movl    $512,%eax
1584         cmovzl  %eax,%ebx
1585         movl    %ebp,%eax
1586         andl    $-16,%ebp
1587         andl    $-16,%esp
1588         movl    %eax,16(%ebp)
1589         jmp     .L033cfb_loop
1590 .align  16
1591 .L033cfb_loop:
1592         movl    %edi,(%ebp)
1593         movl    %esi,4(%ebp)
1594         movl    %ecx,8(%ebp)
1595         movl    %ebx,%ecx
1596         movl    %ebx,12(%ebp)
1597         testl   $15,%edi
1598         cmovnzl %esp,%edi
1599         testl   $15,%esi
1600         jz      .L034cfb_inp_aligned
1601         shrl    $2,%ecx
1602 .byte   243,165
1603         subl    %ebx,%edi
1604         movl    %ebx,%ecx
1605         movl    %edi,%esi
1606 .L034cfb_inp_aligned:
1607         leal    -16(%edx),%eax
1608         leal    16(%edx),%ebx
1609         shrl    $4,%ecx
1610 .byte   243,15,167,224
1611         movaps  (%eax),%xmm0
1612         movaps  %xmm0,-16(%edx)
1613         movl    (%ebp),%edi
1614         movl    12(%ebp),%ebx
1615         testl   $15,%edi
1616         jz      .L035cfb_out_aligned
1617         movl    %ebx,%ecx
1618         leal    (%esp),%esi
1619         shrl    $2,%ecx
1620 .byte   243,165
1621         subl    %ebx,%edi
1622 .L035cfb_out_aligned:
1623         movl    4(%ebp),%esi
1624         movl    8(%ebp),%ecx
1625         addl    %ebx,%edi
1626         addl    %ebx,%esi
1627         subl    %ebx,%ecx
1628         movl    $512,%ebx
1629         jnz     .L033cfb_loop
1630         cmpl    %ebp,%esp
1631         je      .L036cfb_done
1632         pxor    %xmm0,%xmm0
1633         leal    (%esp),%eax
1634 .L037cfb_bzero:
1635         movaps  %xmm0,(%eax)
1636         leal    16(%eax),%eax
1637         cmpl    %eax,%ebp
1638         ja      .L037cfb_bzero
1639 .L036cfb_done:
1640         movl    16(%ebp),%ebp
1641         leal    24(%ebp),%esp
1642         jmp     .L038cfb_exit
1643 .align  16
1644 .L032cfb_aligned:
1645         leal    -16(%edx),%eax
1646         leal    16(%edx),%ebx
1647         shrl    $4,%ecx
1648 .byte   243,15,167,224
1649         movaps  (%eax),%xmm0
1650         movaps  %xmm0,-16(%edx)
1651 .L038cfb_exit:
1652         movl    $1,%eax
1653         leal    4(%esp),%esp
1654 .L030cfb_abort:
1655         popl    %edi
1656         popl    %esi
1657         popl    %ebx
1658         popl    %ebp
1659         ret
1660 .size   padlock_cfb_encrypt,.-.L_padlock_cfb_encrypt_begin
1661 .globl  padlock_ofb_encrypt
1662 .type   padlock_ofb_encrypt,@function
1663 .align  16
1664 padlock_ofb_encrypt:
1665 .L_padlock_ofb_encrypt_begin:
1666         pushl   %ebp
1667         pushl   %ebx
1668         pushl   %esi
1669         pushl   %edi
1670         movl    20(%esp),%edi
1671         movl    24(%esp),%esi
1672         movl    28(%esp),%edx
1673         movl    32(%esp),%ecx
1674         testl   $15,%edx
1675         jnz     .L039ofb_abort
1676         testl   $15,%ecx
1677         jnz     .L039ofb_abort
1678         leal    .Lpadlock_saved_context-.L040ofb_pic_point,%eax
1679         pushfl
1680         cld
1681         call    _padlock_verify_ctx
1682 .L040ofb_pic_point:
1683         leal    16(%edx),%edx
1684         xorl    %eax,%eax
1685         xorl    %ebx,%ebx
1686         testl   $32,(%edx)
1687         jnz     .L041ofb_aligned
1688         testl   $15,%edi
1689         setz    %al
1690         testl   $15,%esi
1691         setz    %bl
1692         testl   %ebx,%eax
1693         jnz     .L041ofb_aligned
1694         negl    %eax
1695         movl    $512,%ebx
1696         notl    %eax
1697         leal    -24(%esp),%ebp
1698         cmpl    %ebx,%ecx
1699         cmovcl  %ecx,%ebx
1700         andl    %ebx,%eax
1701         movl    %ecx,%ebx
1702         negl    %eax
1703         andl    $511,%ebx
1704         leal    (%eax,%ebp,1),%esp
1705         movl    $512,%eax
1706         cmovzl  %eax,%ebx
1707         movl    %ebp,%eax
1708         andl    $-16,%ebp
1709         andl    $-16,%esp
1710         movl    %eax,16(%ebp)
1711         jmp     .L042ofb_loop
1712 .align  16
1713 .L042ofb_loop:
1714         movl    %edi,(%ebp)
1715         movl    %esi,4(%ebp)
1716         movl    %ecx,8(%ebp)
1717         movl    %ebx,%ecx
1718         movl    %ebx,12(%ebp)
1719         testl   $15,%edi
1720         cmovnzl %esp,%edi
1721         testl   $15,%esi
1722         jz      .L043ofb_inp_aligned
1723         shrl    $2,%ecx
1724 .byte   243,165
1725         subl    %ebx,%edi
1726         movl    %ebx,%ecx
1727         movl    %edi,%esi
1728 .L043ofb_inp_aligned:
1729         leal    -16(%edx),%eax
1730         leal    16(%edx),%ebx
1731         shrl    $4,%ecx
1732 .byte   243,15,167,232
1733         movaps  (%eax),%xmm0
1734         movaps  %xmm0,-16(%edx)
1735         movl    (%ebp),%edi
1736         movl    12(%ebp),%ebx
1737         testl   $15,%edi
1738         jz      .L044ofb_out_aligned
1739         movl    %ebx,%ecx
1740         leal    (%esp),%esi
1741         shrl    $2,%ecx
1742 .byte   243,165
1743         subl    %ebx,%edi
1744 .L044ofb_out_aligned:
1745         movl    4(%ebp),%esi
1746         movl    8(%ebp),%ecx
1747         addl    %ebx,%edi
1748         addl    %ebx,%esi
1749         subl    %ebx,%ecx
1750         movl    $512,%ebx
1751         jnz     .L042ofb_loop
1752         cmpl    %ebp,%esp
1753         je      .L045ofb_done
1754         pxor    %xmm0,%xmm0
1755         leal    (%esp),%eax
1756 .L046ofb_bzero:
1757         movaps  %xmm0,(%eax)
1758         leal    16(%eax),%eax
1759         cmpl    %eax,%ebp
1760         ja      .L046ofb_bzero
1761 .L045ofb_done:
1762         movl    16(%ebp),%ebp
1763         leal    24(%ebp),%esp
1764         jmp     .L047ofb_exit
1765 .align  16
1766 .L041ofb_aligned:
1767         leal    -16(%edx),%eax
1768         leal    16(%edx),%ebx
1769         shrl    $4,%ecx
1770 .byte   243,15,167,232
1771         movaps  (%eax),%xmm0
1772         movaps  %xmm0,-16(%edx)
1773 .L047ofb_exit:
1774         movl    $1,%eax
1775         leal    4(%esp),%esp
1776 .L039ofb_abort:
1777         popl    %edi
1778         popl    %esi
1779         popl    %ebx
1780         popl    %ebp
1781         ret
1782 .size   padlock_ofb_encrypt,.-.L_padlock_ofb_encrypt_begin
1783 .globl  padlock_ctr32_encrypt
1784 .type   padlock_ctr32_encrypt,@function
1785 .align  16
1786 padlock_ctr32_encrypt:
1787 .L_padlock_ctr32_encrypt_begin:
1788         pushl   %ebp
1789         pushl   %ebx
1790         pushl   %esi
1791         pushl   %edi
1792         movl    20(%esp),%edi
1793         movl    24(%esp),%esi
1794         movl    28(%esp),%edx
1795         movl    32(%esp),%ecx
1796         testl   $15,%edx
1797         jnz     .L048ctr32_abort
1798         testl   $15,%ecx
1799         jnz     .L048ctr32_abort
1800         leal    .Lpadlock_saved_context-.L049ctr32_pic_point,%eax
1801         pushfl
1802         cld
1803         call    _padlock_verify_ctx
1804 .L049ctr32_pic_point:
1805         leal    16(%edx),%edx
1806         xorl    %eax,%eax
1807         movq    -16(%edx),%mm0
1808         movl    $512,%ebx
1809         notl    %eax
1810         leal    -24(%esp),%ebp
1811         cmpl    %ebx,%ecx
1812         cmovcl  %ecx,%ebx
1813         andl    %ebx,%eax
1814         movl    %ecx,%ebx
1815         negl    %eax
1816         andl    $511,%ebx
1817         leal    (%eax,%ebp,1),%esp
1818         movl    $512,%eax
1819         cmovzl  %eax,%ebx
1820         movl    %ebp,%eax
1821         andl    $-16,%ebp
1822         andl    $-16,%esp
1823         movl    %eax,16(%ebp)
1824         jmp     .L050ctr32_loop
1825 .align  16
1826 .L050ctr32_loop:
1827         movl    %edi,(%ebp)
1828         movl    %esi,4(%ebp)
1829         movl    %ecx,8(%ebp)
1830         movl    %ebx,%ecx
1831         movl    %ebx,12(%ebp)
1832         movl    -4(%edx),%ecx
1833         xorl    %edi,%edi
1834         movl    -8(%edx),%eax
1835 .L051ctr32_prepare:
1836         movl    %ecx,12(%esp,%edi,1)
1837         bswap   %ecx
1838         movq    %mm0,(%esp,%edi,1)
1839         incl    %ecx
1840         movl    %eax,8(%esp,%edi,1)
1841         bswap   %ecx
1842         leal    16(%edi),%edi
1843         cmpl    %ebx,%edi
1844         jb      .L051ctr32_prepare
1845         movl    %ecx,-4(%edx)
1846         leal    (%esp),%esi
1847         leal    (%esp),%edi
1848         movl    %ebx,%ecx
1849         leal    -16(%edx),%eax
1850         leal    16(%edx),%ebx
1851         shrl    $4,%ecx
1852 .byte   243,15,167,200
1853         movl    (%ebp),%edi
1854         movl    12(%ebp),%ebx
1855         movl    4(%ebp),%esi
1856         xorl    %ecx,%ecx
1857 .L052ctr32_xor:
1858         movups  (%esi,%ecx,1),%xmm1
1859         leal    16(%ecx),%ecx
1860         pxor    -16(%esp,%ecx,1),%xmm1
1861         movups  %xmm1,-16(%edi,%ecx,1)
1862         cmpl    %ebx,%ecx
1863         jb      .L052ctr32_xor
1864         movl    8(%ebp),%ecx
1865         addl    %ebx,%edi
1866         addl    %ebx,%esi
1867         subl    %ebx,%ecx
1868         movl    $512,%ebx
1869         jnz     .L050ctr32_loop
1870         pxor    %xmm0,%xmm0
1871         leal    (%esp),%eax
1872 .L053ctr32_bzero:
1873         movaps  %xmm0,(%eax)
1874         leal    16(%eax),%eax
1875         cmpl    %eax,%ebp
1876         ja      .L053ctr32_bzero
1877 .L054ctr32_done:
1878         movl    16(%ebp),%ebp
1879         leal    24(%ebp),%esp
1880         movl    $1,%eax
1881         leal    4(%esp),%esp
1882         emms
1883 .L048ctr32_abort:
1884         popl    %edi
1885         popl    %esi
1886         popl    %ebx
1887         popl    %ebp
1888         ret
1889 .size   padlock_ctr32_encrypt,.-.L_padlock_ctr32_encrypt_begin
1890 .globl  padlock_xstore
1891 .type   padlock_xstore,@function
1892 .align  16
1893 padlock_xstore:
1894 .L_padlock_xstore_begin:
1895         pushl   %edi
1896         movl    8(%esp),%edi
1897         movl    12(%esp),%edx
1898 .byte   15,167,192
1899         popl    %edi
1900         ret
1901 .size   padlock_xstore,.-.L_padlock_xstore_begin
1902 .type   _win32_segv_handler,@function
1903 .align  16
1904 _win32_segv_handler:
1905         movl    $1,%eax
1906         movl    4(%esp),%edx
1907         movl    12(%esp),%ecx
1908         cmpl    $3221225477,(%edx)
1909         jne     .L055ret
1910         addl    $4,184(%ecx)
1911         movl    $0,%eax
1912 .L055ret:
1913         ret
1914 .size   _win32_segv_handler,.-_win32_segv_handler
1915 .globl  padlock_sha1_oneshot
1916 .type   padlock_sha1_oneshot,@function
1917 .align  16
1918 padlock_sha1_oneshot:
1919 .L_padlock_sha1_oneshot_begin:
1920         pushl   %edi
1921         pushl   %esi
1922         xorl    %eax,%eax
1923         movl    12(%esp),%edi
1924         movl    16(%esp),%esi
1925         movl    20(%esp),%ecx
1926         movl    %esp,%edx
1927         addl    $-128,%esp
1928         movups  (%edi),%xmm0
1929         andl    $-16,%esp
1930         movl    16(%edi),%eax
1931         movaps  %xmm0,(%esp)
1932         movl    %esp,%edi
1933         movl    %eax,16(%esp)
1934         xorl    %eax,%eax
1935 .byte   243,15,166,200
1936         movaps  (%esp),%xmm0
1937         movl    16(%esp),%eax
1938         movl    %edx,%esp
1939         movl    12(%esp),%edi
1940         movups  %xmm0,(%edi)
1941         movl    %eax,16(%edi)
1942         popl    %esi
1943         popl    %edi
1944         ret
1945 .size   padlock_sha1_oneshot,.-.L_padlock_sha1_oneshot_begin
1946 .globl  padlock_sha1_blocks
1947 .type   padlock_sha1_blocks,@function
1948 .align  16
1949 padlock_sha1_blocks:
1950 .L_padlock_sha1_blocks_begin:
1951         pushl   %edi
1952         pushl   %esi
1953         movl    12(%esp),%edi
1954         movl    16(%esp),%esi
1955         movl    %esp,%edx
1956         movl    20(%esp),%ecx
1957         addl    $-128,%esp
1958         movups  (%edi),%xmm0
1959         andl    $-16,%esp
1960         movl    16(%edi),%eax
1961         movaps  %xmm0,(%esp)
1962         movl    %esp,%edi
1963         movl    %eax,16(%esp)
1964         movl    $-1,%eax
1965 .byte   243,15,166,200
1966         movaps  (%esp),%xmm0
1967         movl    16(%esp),%eax
1968         movl    %edx,%esp
1969         movl    12(%esp),%edi
1970         movups  %xmm0,(%edi)
1971         movl    %eax,16(%edi)
1972         popl    %esi
1973         popl    %edi
1974         ret
1975 .size   padlock_sha1_blocks,.-.L_padlock_sha1_blocks_begin
1976 .globl  padlock_sha256_oneshot
1977 .type   padlock_sha256_oneshot,@function
1978 .align  16
1979 padlock_sha256_oneshot:
1980 .L_padlock_sha256_oneshot_begin:
1981         pushl   %edi
1982         pushl   %esi
1983         xorl    %eax,%eax
1984         movl    12(%esp),%edi
1985         movl    16(%esp),%esi
1986         movl    20(%esp),%ecx
1987         movl    %esp,%edx
1988         addl    $-128,%esp
1989         movups  (%edi),%xmm0
1990         andl    $-16,%esp
1991         movups  16(%edi),%xmm1
1992         movaps  %xmm0,(%esp)
1993         movl    %esp,%edi
1994         movaps  %xmm1,16(%esp)
1995         xorl    %eax,%eax
1996 .byte   243,15,166,208
1997         movaps  (%esp),%xmm0
1998         movaps  16(%esp),%xmm1
1999         movl    %edx,%esp
2000         movl    12(%esp),%edi
2001         movups  %xmm0,(%edi)
2002         movups  %xmm1,16(%edi)
2003         popl    %esi
2004         popl    %edi
2005         ret
2006 .size   padlock_sha256_oneshot,.-.L_padlock_sha256_oneshot_begin
2007 .globl  padlock_sha256_blocks
2008 .type   padlock_sha256_blocks,@function
2009 .align  16
2010 padlock_sha256_blocks:
2011 .L_padlock_sha256_blocks_begin:
2012         pushl   %edi
2013         pushl   %esi
2014         movl    12(%esp),%edi
2015         movl    16(%esp),%esi
2016         movl    20(%esp),%ecx
2017         movl    %esp,%edx
2018         addl    $-128,%esp
2019         movups  (%edi),%xmm0
2020         andl    $-16,%esp
2021         movups  16(%edi),%xmm1
2022         movaps  %xmm0,(%esp)
2023         movl    %esp,%edi
2024         movaps  %xmm1,16(%esp)
2025         movl    $-1,%eax
2026 .byte   243,15,166,208
2027         movaps  (%esp),%xmm0
2028         movaps  16(%esp),%xmm1
2029         movl    %edx,%esp
2030         movl    12(%esp),%edi
2031         movups  %xmm0,(%edi)
2032         movups  %xmm1,16(%edi)
2033         popl    %esi
2034         popl    %edi
2035         ret
2036 .size   padlock_sha256_blocks,.-.L_padlock_sha256_blocks_begin
2037 .globl  padlock_sha512_blocks
2038 .type   padlock_sha512_blocks,@function
2039 .align  16
2040 padlock_sha512_blocks:
2041 .L_padlock_sha512_blocks_begin:
2042         pushl   %edi
2043         pushl   %esi
2044         movl    12(%esp),%edi
2045         movl    16(%esp),%esi
2046         movl    20(%esp),%ecx
2047         movl    %esp,%edx
2048         addl    $-128,%esp
2049         movups  (%edi),%xmm0
2050         andl    $-16,%esp
2051         movups  16(%edi),%xmm1
2052         movups  32(%edi),%xmm2
2053         movups  48(%edi),%xmm3
2054         movaps  %xmm0,(%esp)
2055         movl    %esp,%edi
2056         movaps  %xmm1,16(%esp)
2057         movaps  %xmm2,32(%esp)
2058         movaps  %xmm3,48(%esp)
2059 .byte   243,15,166,224
2060         movaps  (%esp),%xmm0
2061         movaps  16(%esp),%xmm1
2062         movaps  32(%esp),%xmm2
2063         movaps  48(%esp),%xmm3
2064         movl    %edx,%esp
2065         movl    12(%esp),%edi
2066         movups  %xmm0,(%edi)
2067         movups  %xmm1,16(%edi)
2068         movups  %xmm2,32(%edi)
2069         movups  %xmm3,48(%edi)
2070         popl    %esi
2071         popl    %edi
2072         ret
2073 .size   padlock_sha512_blocks,.-.L_padlock_sha512_blocks_begin
2074 .byte   86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32
2075 .byte   109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65
2076 .byte   77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
2077 .byte   110,115,115,108,46,111,114,103,62,0
2078 .align  16
2079 .data
2080 .align  4
2081 .Lpadlock_saved_context:
2082 .long   0
2083 #endif