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