OLD | NEW |
1 #if defined(__i386__) | 1 #if defined(__i386__) |
2 .file "vpaes-x86.S" | 2 .file "vpaes-x86.S" |
3 .text | 3 .text |
4 .align 64 | 4 .align 64 |
5 .L_vpaes_consts: | 5 .L_vpaes_consts: |
6 .long 218628480,235210255,168496130,67568393 | 6 .long 218628480,235210255,168496130,67568393 |
7 .long 252381056,17041926,33884169,51187212 | 7 .long 252381056,17041926,33884169,51187212 |
8 .long 252645135,252645135,252645135,252645135 | 8 .long 252645135,252645135,252645135,252645135 |
9 .long 1512730624,3266504856,1377990664,3401244816 | 9 .long 1512730624,3266504856,1377990664,3401244816 |
10 .long 830229760,1275146365,2969422977,3447763452 | 10 .long 830229760,1275146365,2969422977,3447763452 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 .long 651481088,1190302358,1689581232,574775300 | 51 .long 651481088,1190302358,1689581232,574775300 |
52 .long 4289380608,206939853,2555985458,2489840491 | 52 .long 4289380608,206939853,2555985458,2489840491 |
53 .long 2130264064,327674451,3566485037,3349835193 | 53 .long 2130264064,327674451,3566485037,3349835193 |
54 .long 2470714624,316102159,3636825756,3393945945 | 54 .long 2470714624,316102159,3636825756,3393945945 |
55 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 | 55 .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 |
56 .byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 | 56 .byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 |
57 .byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 | 57 .byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 |
58 .byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 | 58 .byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 |
59 .byte 118,101,114,115,105,116,121,41,0 | 59 .byte 118,101,114,115,105,116,121,41,0 |
60 .align 64 | 60 .align 64 |
| 61 .hidden _vpaes_preheat |
61 .type _vpaes_preheat,@function | 62 .type _vpaes_preheat,@function |
62 .align 16 | 63 .align 16 |
63 _vpaes_preheat: | 64 _vpaes_preheat: |
64 addl (%esp),%ebp | 65 addl (%esp),%ebp |
65 movdqa -48(%ebp),%xmm7 | 66 movdqa -48(%ebp),%xmm7 |
66 movdqa -16(%ebp),%xmm6 | 67 movdqa -16(%ebp),%xmm6 |
67 ret | 68 ret |
68 .size _vpaes_preheat,.-_vpaes_preheat | 69 .size _vpaes_preheat,.-_vpaes_preheat |
| 70 .hidden _vpaes_encrypt_core |
69 .type _vpaes_encrypt_core,@function | 71 .type _vpaes_encrypt_core,@function |
70 .align 16 | 72 .align 16 |
71 _vpaes_encrypt_core: | 73 _vpaes_encrypt_core: |
72 movl $16,%ecx | 74 movl $16,%ecx |
73 movl 240(%edx),%eax | 75 movl 240(%edx),%eax |
74 movdqa %xmm6,%xmm1 | 76 movdqa %xmm6,%xmm1 |
75 movdqa (%ebp),%xmm2 | 77 movdqa (%ebp),%xmm2 |
76 pandn %xmm0,%xmm1 | 78 pandn %xmm0,%xmm1 |
77 pand %xmm6,%xmm0 | 79 pand %xmm6,%xmm0 |
78 movdqu (%edx),%xmm5 | 80 movdqu (%edx),%xmm5 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 movdqa 96(%ebp),%xmm4 | 138 movdqa 96(%ebp),%xmm4 |
137 movdqa 112(%ebp),%xmm0 | 139 movdqa 112(%ebp),%xmm0 |
138 .byte 102,15,56,0,226 | 140 .byte 102,15,56,0,226 |
139 pxor %xmm5,%xmm4 | 141 pxor %xmm5,%xmm4 |
140 .byte 102,15,56,0,195 | 142 .byte 102,15,56,0,195 |
141 movdqa 64(%ebx,%ecx,1),%xmm1 | 143 movdqa 64(%ebx,%ecx,1),%xmm1 |
142 pxor %xmm4,%xmm0 | 144 pxor %xmm4,%xmm0 |
143 .byte 102,15,56,0,193 | 145 .byte 102,15,56,0,193 |
144 ret | 146 ret |
145 .size _vpaes_encrypt_core,.-_vpaes_encrypt_core | 147 .size _vpaes_encrypt_core,.-_vpaes_encrypt_core |
| 148 .hidden _vpaes_decrypt_core |
146 .type _vpaes_decrypt_core,@function | 149 .type _vpaes_decrypt_core,@function |
147 .align 16 | 150 .align 16 |
148 _vpaes_decrypt_core: | 151 _vpaes_decrypt_core: |
149 leal 608(%ebp),%ebx | 152 leal 608(%ebp),%ebx |
150 movl 240(%edx),%eax | 153 movl 240(%edx),%eax |
151 movdqa %xmm6,%xmm1 | 154 movdqa %xmm6,%xmm1 |
152 movdqa -64(%ebx),%xmm2 | 155 movdqa -64(%ebx),%xmm2 |
153 pandn %xmm0,%xmm1 | 156 pandn %xmm0,%xmm1 |
154 movl %eax,%ecx | 157 movl %eax,%ecx |
155 psrld $4,%xmm1 | 158 psrld $4,%xmm1 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 movdqa 96(%ebx),%xmm4 | 227 movdqa 96(%ebx),%xmm4 |
225 .byte 102,15,56,0,226 | 228 .byte 102,15,56,0,226 |
226 pxor %xmm0,%xmm4 | 229 pxor %xmm0,%xmm4 |
227 movdqa 112(%ebx),%xmm0 | 230 movdqa 112(%ebx),%xmm0 |
228 movdqa (%ecx),%xmm2 | 231 movdqa (%ecx),%xmm2 |
229 .byte 102,15,56,0,195 | 232 .byte 102,15,56,0,195 |
230 pxor %xmm4,%xmm0 | 233 pxor %xmm4,%xmm0 |
231 .byte 102,15,56,0,194 | 234 .byte 102,15,56,0,194 |
232 ret | 235 ret |
233 .size _vpaes_decrypt_core,.-_vpaes_decrypt_core | 236 .size _vpaes_decrypt_core,.-_vpaes_decrypt_core |
| 237 .hidden _vpaes_schedule_core |
234 .type _vpaes_schedule_core,@function | 238 .type _vpaes_schedule_core,@function |
235 .align 16 | 239 .align 16 |
236 _vpaes_schedule_core: | 240 _vpaes_schedule_core: |
237 addl (%esp),%ebp | 241 addl (%esp),%ebp |
238 movdqu (%esi),%xmm0 | 242 movdqu (%esi),%xmm0 |
239 movdqa 320(%ebp),%xmm2 | 243 movdqa 320(%ebp),%xmm2 |
240 movdqa %xmm0,%xmm3 | 244 movdqa %xmm0,%xmm3 |
241 leal (%ebp),%ebx | 245 leal (%ebp),%ebx |
242 movdqa %xmm2,4(%esp) | 246 movdqa %xmm2,4(%esp) |
243 call _vpaes_schedule_transform | 247 call _vpaes_schedule_transform |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 pxor %xmm0,%xmm0 | 322 pxor %xmm0,%xmm0 |
319 pxor %xmm1,%xmm1 | 323 pxor %xmm1,%xmm1 |
320 pxor %xmm2,%xmm2 | 324 pxor %xmm2,%xmm2 |
321 pxor %xmm3,%xmm3 | 325 pxor %xmm3,%xmm3 |
322 pxor %xmm4,%xmm4 | 326 pxor %xmm4,%xmm4 |
323 pxor %xmm5,%xmm5 | 327 pxor %xmm5,%xmm5 |
324 pxor %xmm6,%xmm6 | 328 pxor %xmm6,%xmm6 |
325 pxor %xmm7,%xmm7 | 329 pxor %xmm7,%xmm7 |
326 ret | 330 ret |
327 .size _vpaes_schedule_core,.-_vpaes_schedule_core | 331 .size _vpaes_schedule_core,.-_vpaes_schedule_core |
| 332 .hidden _vpaes_schedule_192_smear |
328 .type _vpaes_schedule_192_smear,@function | 333 .type _vpaes_schedule_192_smear,@function |
329 .align 16 | 334 .align 16 |
330 _vpaes_schedule_192_smear: | 335 _vpaes_schedule_192_smear: |
331 pshufd $128,%xmm6,%xmm1 | 336 pshufd $128,%xmm6,%xmm1 |
332 pshufd $254,%xmm7,%xmm0 | 337 pshufd $254,%xmm7,%xmm0 |
333 pxor %xmm1,%xmm6 | 338 pxor %xmm1,%xmm6 |
334 pxor %xmm1,%xmm1 | 339 pxor %xmm1,%xmm1 |
335 pxor %xmm0,%xmm6 | 340 pxor %xmm0,%xmm6 |
336 movdqa %xmm6,%xmm0 | 341 movdqa %xmm6,%xmm0 |
337 movhlps %xmm1,%xmm6 | 342 movhlps %xmm1,%xmm6 |
338 ret | 343 ret |
339 .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear | 344 .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear |
| 345 .hidden _vpaes_schedule_round |
340 .type _vpaes_schedule_round,@function | 346 .type _vpaes_schedule_round,@function |
341 .align 16 | 347 .align 16 |
342 _vpaes_schedule_round: | 348 _vpaes_schedule_round: |
343 movdqa 8(%esp),%xmm2 | 349 movdqa 8(%esp),%xmm2 |
344 pxor %xmm1,%xmm1 | 350 pxor %xmm1,%xmm1 |
345 .byte 102,15,58,15,202,15 | 351 .byte 102,15,58,15,202,15 |
346 .byte 102,15,58,15,210,15 | 352 .byte 102,15,58,15,210,15 |
347 pxor %xmm1,%xmm7 | 353 pxor %xmm1,%xmm7 |
348 pshufd $255,%xmm0,%xmm0 | 354 pshufd $255,%xmm0,%xmm0 |
349 .byte 102,15,58,15,192,1 | 355 .byte 102,15,58,15,192,1 |
(...skipping 29 matching lines...) Expand all Loading... |
379 pxor %xmm1,%xmm3 | 385 pxor %xmm1,%xmm3 |
380 movdqa 32(%ebp),%xmm4 | 386 movdqa 32(%ebp),%xmm4 |
381 .byte 102,15,56,0,226 | 387 .byte 102,15,56,0,226 |
382 movdqa 48(%ebp),%xmm0 | 388 movdqa 48(%ebp),%xmm0 |
383 .byte 102,15,56,0,195 | 389 .byte 102,15,56,0,195 |
384 pxor %xmm4,%xmm0 | 390 pxor %xmm4,%xmm0 |
385 pxor %xmm7,%xmm0 | 391 pxor %xmm7,%xmm0 |
386 movdqa %xmm0,%xmm7 | 392 movdqa %xmm0,%xmm7 |
387 ret | 393 ret |
388 .size _vpaes_schedule_round,.-_vpaes_schedule_round | 394 .size _vpaes_schedule_round,.-_vpaes_schedule_round |
| 395 .hidden _vpaes_schedule_transform |
389 .type _vpaes_schedule_transform,@function | 396 .type _vpaes_schedule_transform,@function |
390 .align 16 | 397 .align 16 |
391 _vpaes_schedule_transform: | 398 _vpaes_schedule_transform: |
392 movdqa -16(%ebp),%xmm2 | 399 movdqa -16(%ebp),%xmm2 |
393 movdqa %xmm2,%xmm1 | 400 movdqa %xmm2,%xmm1 |
394 pandn %xmm0,%xmm1 | 401 pandn %xmm0,%xmm1 |
395 psrld $4,%xmm1 | 402 psrld $4,%xmm1 |
396 pand %xmm2,%xmm0 | 403 pand %xmm2,%xmm0 |
397 movdqa (%ebx),%xmm2 | 404 movdqa (%ebx),%xmm2 |
398 .byte 102,15,56,0,208 | 405 .byte 102,15,56,0,208 |
399 movdqa 16(%ebx),%xmm0 | 406 movdqa 16(%ebx),%xmm0 |
400 .byte 102,15,56,0,193 | 407 .byte 102,15,56,0,193 |
401 pxor %xmm2,%xmm0 | 408 pxor %xmm2,%xmm0 |
402 ret | 409 ret |
403 .size _vpaes_schedule_transform,.-_vpaes_schedule_transform | 410 .size _vpaes_schedule_transform,.-_vpaes_schedule_transform |
| 411 .hidden _vpaes_schedule_mangle |
404 .type _vpaes_schedule_mangle,@function | 412 .type _vpaes_schedule_mangle,@function |
405 .align 16 | 413 .align 16 |
406 _vpaes_schedule_mangle: | 414 _vpaes_schedule_mangle: |
407 movdqa %xmm0,%xmm4 | 415 movdqa %xmm0,%xmm4 |
408 movdqa 128(%ebp),%xmm5 | 416 movdqa 128(%ebp),%xmm5 |
409 testl %edi,%edi | 417 testl %edi,%edi |
410 jnz .L014schedule_mangle_dec | 418 jnz .L014schedule_mangle_dec |
411 addl $16,%edx | 419 addl $16,%edx |
412 pxor 336(%ebp),%xmm4 | 420 pxor 336(%ebp),%xmm4 |
413 .byte 102,15,56,0,229 | 421 .byte 102,15,56,0,229 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 addl $-16,%edx | 462 addl $-16,%edx |
455 .L015schedule_mangle_both: | 463 .L015schedule_mangle_both: |
456 movdqa 256(%ebp,%ecx,1),%xmm1 | 464 movdqa 256(%ebp,%ecx,1),%xmm1 |
457 .byte 102,15,56,0,217 | 465 .byte 102,15,56,0,217 |
458 addl $-16,%ecx | 466 addl $-16,%ecx |
459 andl $48,%ecx | 467 andl $48,%ecx |
460 movdqu %xmm3,(%edx) | 468 movdqu %xmm3,(%edx) |
461 ret | 469 ret |
462 .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle | 470 .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle |
463 .globl vpaes_set_encrypt_key | 471 .globl vpaes_set_encrypt_key |
| 472 .hidden vpaes_set_encrypt_key |
464 .type vpaes_set_encrypt_key,@function | 473 .type vpaes_set_encrypt_key,@function |
465 .align 16 | 474 .align 16 |
466 vpaes_set_encrypt_key: | 475 vpaes_set_encrypt_key: |
467 .L_vpaes_set_encrypt_key_begin: | 476 .L_vpaes_set_encrypt_key_begin: |
468 pushl %ebp | 477 pushl %ebp |
469 pushl %ebx | 478 pushl %ebx |
470 pushl %esi | 479 pushl %esi |
471 pushl %edi | 480 pushl %edi |
472 movl 20(%esp),%esi | 481 movl 20(%esp),%esi |
473 leal -56(%esp),%ebx | 482 leal -56(%esp),%ebx |
(...skipping 13 matching lines...) Expand all Loading... |
487 .L016pic_point: | 496 .L016pic_point: |
488 movl 48(%esp),%esp | 497 movl 48(%esp),%esp |
489 xorl %eax,%eax | 498 xorl %eax,%eax |
490 popl %edi | 499 popl %edi |
491 popl %esi | 500 popl %esi |
492 popl %ebx | 501 popl %ebx |
493 popl %ebp | 502 popl %ebp |
494 ret | 503 ret |
495 .size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin | 504 .size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin |
496 .globl vpaes_set_decrypt_key | 505 .globl vpaes_set_decrypt_key |
| 506 .hidden vpaes_set_decrypt_key |
497 .type vpaes_set_decrypt_key,@function | 507 .type vpaes_set_decrypt_key,@function |
498 .align 16 | 508 .align 16 |
499 vpaes_set_decrypt_key: | 509 vpaes_set_decrypt_key: |
500 .L_vpaes_set_decrypt_key_begin: | 510 .L_vpaes_set_decrypt_key_begin: |
501 pushl %ebp | 511 pushl %ebp |
502 pushl %ebx | 512 pushl %ebx |
503 pushl %esi | 513 pushl %esi |
504 pushl %edi | 514 pushl %edi |
505 movl 20(%esp),%esi | 515 movl 20(%esp),%esi |
506 leal -56(%esp),%ebx | 516 leal -56(%esp),%ebx |
(...skipping 18 matching lines...) Expand all Loading... |
525 .L017pic_point: | 535 .L017pic_point: |
526 movl 48(%esp),%esp | 536 movl 48(%esp),%esp |
527 xorl %eax,%eax | 537 xorl %eax,%eax |
528 popl %edi | 538 popl %edi |
529 popl %esi | 539 popl %esi |
530 popl %ebx | 540 popl %ebx |
531 popl %ebp | 541 popl %ebp |
532 ret | 542 ret |
533 .size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin | 543 .size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin |
534 .globl vpaes_encrypt | 544 .globl vpaes_encrypt |
| 545 .hidden vpaes_encrypt |
535 .type vpaes_encrypt,@function | 546 .type vpaes_encrypt,@function |
536 .align 16 | 547 .align 16 |
537 vpaes_encrypt: | 548 vpaes_encrypt: |
538 .L_vpaes_encrypt_begin: | 549 .L_vpaes_encrypt_begin: |
539 pushl %ebp | 550 pushl %ebp |
540 pushl %ebx | 551 pushl %ebx |
541 pushl %esi | 552 pushl %esi |
542 pushl %edi | 553 pushl %edi |
543 leal .L_vpaes_consts+0x30-.L018pic_point,%ebp | 554 leal .L_vpaes_consts+0x30-.L018pic_point,%ebp |
544 call _vpaes_preheat | 555 call _vpaes_preheat |
545 .L018pic_point: | 556 .L018pic_point: |
546 movl 20(%esp),%esi | 557 movl 20(%esp),%esi |
547 leal -56(%esp),%ebx | 558 leal -56(%esp),%ebx |
548 movl 24(%esp),%edi | 559 movl 24(%esp),%edi |
549 andl $-16,%ebx | 560 andl $-16,%ebx |
550 movl 28(%esp),%edx | 561 movl 28(%esp),%edx |
551 xchgl %esp,%ebx | 562 xchgl %esp,%ebx |
552 movl %ebx,48(%esp) | 563 movl %ebx,48(%esp) |
553 movdqu (%esi),%xmm0 | 564 movdqu (%esi),%xmm0 |
554 call _vpaes_encrypt_core | 565 call _vpaes_encrypt_core |
555 movdqu %xmm0,(%edi) | 566 movdqu %xmm0,(%edi) |
556 movl 48(%esp),%esp | 567 movl 48(%esp),%esp |
557 popl %edi | 568 popl %edi |
558 popl %esi | 569 popl %esi |
559 popl %ebx | 570 popl %ebx |
560 popl %ebp | 571 popl %ebp |
561 ret | 572 ret |
562 .size vpaes_encrypt,.-.L_vpaes_encrypt_begin | 573 .size vpaes_encrypt,.-.L_vpaes_encrypt_begin |
563 .globl vpaes_decrypt | 574 .globl vpaes_decrypt |
| 575 .hidden vpaes_decrypt |
564 .type vpaes_decrypt,@function | 576 .type vpaes_decrypt,@function |
565 .align 16 | 577 .align 16 |
566 vpaes_decrypt: | 578 vpaes_decrypt: |
567 .L_vpaes_decrypt_begin: | 579 .L_vpaes_decrypt_begin: |
568 pushl %ebp | 580 pushl %ebp |
569 pushl %ebx | 581 pushl %ebx |
570 pushl %esi | 582 pushl %esi |
571 pushl %edi | 583 pushl %edi |
572 leal .L_vpaes_consts+0x30-.L019pic_point,%ebp | 584 leal .L_vpaes_consts+0x30-.L019pic_point,%ebp |
573 call _vpaes_preheat | 585 call _vpaes_preheat |
574 .L019pic_point: | 586 .L019pic_point: |
575 movl 20(%esp),%esi | 587 movl 20(%esp),%esi |
576 leal -56(%esp),%ebx | 588 leal -56(%esp),%ebx |
577 movl 24(%esp),%edi | 589 movl 24(%esp),%edi |
578 andl $-16,%ebx | 590 andl $-16,%ebx |
579 movl 28(%esp),%edx | 591 movl 28(%esp),%edx |
580 xchgl %esp,%ebx | 592 xchgl %esp,%ebx |
581 movl %ebx,48(%esp) | 593 movl %ebx,48(%esp) |
582 movdqu (%esi),%xmm0 | 594 movdqu (%esi),%xmm0 |
583 call _vpaes_decrypt_core | 595 call _vpaes_decrypt_core |
584 movdqu %xmm0,(%edi) | 596 movdqu %xmm0,(%edi) |
585 movl 48(%esp),%esp | 597 movl 48(%esp),%esp |
586 popl %edi | 598 popl %edi |
587 popl %esi | 599 popl %esi |
588 popl %ebx | 600 popl %ebx |
589 popl %ebp | 601 popl %ebp |
590 ret | 602 ret |
591 .size vpaes_decrypt,.-.L_vpaes_decrypt_begin | 603 .size vpaes_decrypt,.-.L_vpaes_decrypt_begin |
592 .globl vpaes_cbc_encrypt | 604 .globl vpaes_cbc_encrypt |
| 605 .hidden vpaes_cbc_encrypt |
593 .type vpaes_cbc_encrypt,@function | 606 .type vpaes_cbc_encrypt,@function |
594 .align 16 | 607 .align 16 |
595 vpaes_cbc_encrypt: | 608 vpaes_cbc_encrypt: |
596 .L_vpaes_cbc_encrypt_begin: | 609 .L_vpaes_cbc_encrypt_begin: |
597 pushl %ebp | 610 pushl %ebp |
598 pushl %ebx | 611 pushl %ebx |
599 pushl %esi | 612 pushl %esi |
600 pushl %edi | 613 pushl %edi |
601 movl 20(%esp),%esi | 614 movl 20(%esp),%esi |
602 movl 24(%esp),%edi | 615 movl 24(%esp),%edi |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 movl 48(%esp),%esp | 667 movl 48(%esp),%esp |
655 movdqu %xmm1,(%ebx) | 668 movdqu %xmm1,(%ebx) |
656 .L020cbc_abort: | 669 .L020cbc_abort: |
657 popl %edi | 670 popl %edi |
658 popl %esi | 671 popl %esi |
659 popl %ebx | 672 popl %ebx |
660 popl %ebp | 673 popl %ebp |
661 ret | 674 ret |
662 .size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin | 675 .size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin |
663 #endif | 676 #endif |
OLD | NEW |