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 6,0x90 | 4 .align 6,0x90 |
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 6,0x90 | 60 .align 6,0x90 |
| 61 .private_extern __vpaes_preheat |
61 .align 4 | 62 .align 4 |
62 __vpaes_preheat: | 63 __vpaes_preheat: |
63 addl (%esp),%ebp | 64 addl (%esp),%ebp |
64 movdqa -48(%ebp),%xmm7 | 65 movdqa -48(%ebp),%xmm7 |
65 movdqa -16(%ebp),%xmm6 | 66 movdqa -16(%ebp),%xmm6 |
66 ret | 67 ret |
| 68 .private_extern __vpaes_encrypt_core |
67 .align 4 | 69 .align 4 |
68 __vpaes_encrypt_core: | 70 __vpaes_encrypt_core: |
69 movl $16,%ecx | 71 movl $16,%ecx |
70 movl 240(%edx),%eax | 72 movl 240(%edx),%eax |
71 movdqa %xmm6,%xmm1 | 73 movdqa %xmm6,%xmm1 |
72 movdqa (%ebp),%xmm2 | 74 movdqa (%ebp),%xmm2 |
73 pandn %xmm0,%xmm1 | 75 pandn %xmm0,%xmm1 |
74 pand %xmm6,%xmm0 | 76 pand %xmm6,%xmm0 |
75 movdqu (%edx),%xmm5 | 77 movdqu (%edx),%xmm5 |
76 .byte 102,15,56,0,208 | 78 .byte 102,15,56,0,208 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 jnz L001enc_loop | 134 jnz L001enc_loop |
133 movdqa 96(%ebp),%xmm4 | 135 movdqa 96(%ebp),%xmm4 |
134 movdqa 112(%ebp),%xmm0 | 136 movdqa 112(%ebp),%xmm0 |
135 .byte 102,15,56,0,226 | 137 .byte 102,15,56,0,226 |
136 pxor %xmm5,%xmm4 | 138 pxor %xmm5,%xmm4 |
137 .byte 102,15,56,0,195 | 139 .byte 102,15,56,0,195 |
138 movdqa 64(%ebx,%ecx,1),%xmm1 | 140 movdqa 64(%ebx,%ecx,1),%xmm1 |
139 pxor %xmm4,%xmm0 | 141 pxor %xmm4,%xmm0 |
140 .byte 102,15,56,0,193 | 142 .byte 102,15,56,0,193 |
141 ret | 143 ret |
| 144 .private_extern __vpaes_decrypt_core |
142 .align 4 | 145 .align 4 |
143 __vpaes_decrypt_core: | 146 __vpaes_decrypt_core: |
144 leal 608(%ebp),%ebx | 147 leal 608(%ebp),%ebx |
145 movl 240(%edx),%eax | 148 movl 240(%edx),%eax |
146 movdqa %xmm6,%xmm1 | 149 movdqa %xmm6,%xmm1 |
147 movdqa -64(%ebx),%xmm2 | 150 movdqa -64(%ebx),%xmm2 |
148 pandn %xmm0,%xmm1 | 151 pandn %xmm0,%xmm1 |
149 movl %eax,%ecx | 152 movl %eax,%ecx |
150 psrld $4,%xmm1 | 153 psrld $4,%xmm1 |
151 movdqu (%edx),%xmm5 | 154 movdqu (%edx),%xmm5 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 jnz L003dec_loop | 221 jnz L003dec_loop |
219 movdqa 96(%ebx),%xmm4 | 222 movdqa 96(%ebx),%xmm4 |
220 .byte 102,15,56,0,226 | 223 .byte 102,15,56,0,226 |
221 pxor %xmm0,%xmm4 | 224 pxor %xmm0,%xmm4 |
222 movdqa 112(%ebx),%xmm0 | 225 movdqa 112(%ebx),%xmm0 |
223 movdqa (%ecx),%xmm2 | 226 movdqa (%ecx),%xmm2 |
224 .byte 102,15,56,0,195 | 227 .byte 102,15,56,0,195 |
225 pxor %xmm4,%xmm0 | 228 pxor %xmm4,%xmm0 |
226 .byte 102,15,56,0,194 | 229 .byte 102,15,56,0,194 |
227 ret | 230 ret |
| 231 .private_extern __vpaes_schedule_core |
228 .align 4 | 232 .align 4 |
229 __vpaes_schedule_core: | 233 __vpaes_schedule_core: |
230 addl (%esp),%ebp | 234 addl (%esp),%ebp |
231 movdqu (%esi),%xmm0 | 235 movdqu (%esi),%xmm0 |
232 movdqa 320(%ebp),%xmm2 | 236 movdqa 320(%ebp),%xmm2 |
233 movdqa %xmm0,%xmm3 | 237 movdqa %xmm0,%xmm3 |
234 leal (%ebp),%ebx | 238 leal (%ebp),%ebx |
235 movdqa %xmm2,4(%esp) | 239 movdqa %xmm2,4(%esp) |
236 call __vpaes_schedule_transform | 240 call __vpaes_schedule_transform |
237 movdqa %xmm0,%xmm7 | 241 movdqa %xmm0,%xmm7 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 movdqu %xmm0,(%edx) | 314 movdqu %xmm0,(%edx) |
311 pxor %xmm0,%xmm0 | 315 pxor %xmm0,%xmm0 |
312 pxor %xmm1,%xmm1 | 316 pxor %xmm1,%xmm1 |
313 pxor %xmm2,%xmm2 | 317 pxor %xmm2,%xmm2 |
314 pxor %xmm3,%xmm3 | 318 pxor %xmm3,%xmm3 |
315 pxor %xmm4,%xmm4 | 319 pxor %xmm4,%xmm4 |
316 pxor %xmm5,%xmm5 | 320 pxor %xmm5,%xmm5 |
317 pxor %xmm6,%xmm6 | 321 pxor %xmm6,%xmm6 |
318 pxor %xmm7,%xmm7 | 322 pxor %xmm7,%xmm7 |
319 ret | 323 ret |
| 324 .private_extern __vpaes_schedule_192_smear |
320 .align 4 | 325 .align 4 |
321 __vpaes_schedule_192_smear: | 326 __vpaes_schedule_192_smear: |
322 pshufd $128,%xmm6,%xmm1 | 327 pshufd $128,%xmm6,%xmm1 |
323 pshufd $254,%xmm7,%xmm0 | 328 pshufd $254,%xmm7,%xmm0 |
324 pxor %xmm1,%xmm6 | 329 pxor %xmm1,%xmm6 |
325 pxor %xmm1,%xmm1 | 330 pxor %xmm1,%xmm1 |
326 pxor %xmm0,%xmm6 | 331 pxor %xmm0,%xmm6 |
327 movdqa %xmm6,%xmm0 | 332 movdqa %xmm6,%xmm0 |
328 movhlps %xmm1,%xmm6 | 333 movhlps %xmm1,%xmm6 |
329 ret | 334 ret |
| 335 .private_extern __vpaes_schedule_round |
330 .align 4 | 336 .align 4 |
331 __vpaes_schedule_round: | 337 __vpaes_schedule_round: |
332 movdqa 8(%esp),%xmm2 | 338 movdqa 8(%esp),%xmm2 |
333 pxor %xmm1,%xmm1 | 339 pxor %xmm1,%xmm1 |
334 .byte 102,15,58,15,202,15 | 340 .byte 102,15,58,15,202,15 |
335 .byte 102,15,58,15,210,15 | 341 .byte 102,15,58,15,210,15 |
336 pxor %xmm1,%xmm7 | 342 pxor %xmm1,%xmm7 |
337 pshufd $255,%xmm0,%xmm0 | 343 pshufd $255,%xmm0,%xmm0 |
338 .byte 102,15,58,15,192,1 | 344 .byte 102,15,58,15,192,1 |
339 movdqa %xmm2,8(%esp) | 345 movdqa %xmm2,8(%esp) |
(...skipping 27 matching lines...) Expand all Loading... |
367 .byte 102,15,56,0,220 | 373 .byte 102,15,56,0,220 |
368 pxor %xmm1,%xmm3 | 374 pxor %xmm1,%xmm3 |
369 movdqa 32(%ebp),%xmm4 | 375 movdqa 32(%ebp),%xmm4 |
370 .byte 102,15,56,0,226 | 376 .byte 102,15,56,0,226 |
371 movdqa 48(%ebp),%xmm0 | 377 movdqa 48(%ebp),%xmm0 |
372 .byte 102,15,56,0,195 | 378 .byte 102,15,56,0,195 |
373 pxor %xmm4,%xmm0 | 379 pxor %xmm4,%xmm0 |
374 pxor %xmm7,%xmm0 | 380 pxor %xmm7,%xmm0 |
375 movdqa %xmm0,%xmm7 | 381 movdqa %xmm0,%xmm7 |
376 ret | 382 ret |
| 383 .private_extern __vpaes_schedule_transform |
377 .align 4 | 384 .align 4 |
378 __vpaes_schedule_transform: | 385 __vpaes_schedule_transform: |
379 movdqa -16(%ebp),%xmm2 | 386 movdqa -16(%ebp),%xmm2 |
380 movdqa %xmm2,%xmm1 | 387 movdqa %xmm2,%xmm1 |
381 pandn %xmm0,%xmm1 | 388 pandn %xmm0,%xmm1 |
382 psrld $4,%xmm1 | 389 psrld $4,%xmm1 |
383 pand %xmm2,%xmm0 | 390 pand %xmm2,%xmm0 |
384 movdqa (%ebx),%xmm2 | 391 movdqa (%ebx),%xmm2 |
385 .byte 102,15,56,0,208 | 392 .byte 102,15,56,0,208 |
386 movdqa 16(%ebx),%xmm0 | 393 movdqa 16(%ebx),%xmm0 |
387 .byte 102,15,56,0,193 | 394 .byte 102,15,56,0,193 |
388 pxor %xmm2,%xmm0 | 395 pxor %xmm2,%xmm0 |
389 ret | 396 ret |
| 397 .private_extern __vpaes_schedule_mangle |
390 .align 4 | 398 .align 4 |
391 __vpaes_schedule_mangle: | 399 __vpaes_schedule_mangle: |
392 movdqa %xmm0,%xmm4 | 400 movdqa %xmm0,%xmm4 |
393 movdqa 128(%ebp),%xmm5 | 401 movdqa 128(%ebp),%xmm5 |
394 testl %edi,%edi | 402 testl %edi,%edi |
395 jnz L014schedule_mangle_dec | 403 jnz L014schedule_mangle_dec |
396 addl $16,%edx | 404 addl $16,%edx |
397 pxor 336(%ebp),%xmm4 | 405 pxor 336(%ebp),%xmm4 |
398 .byte 102,15,56,0,229 | 406 .byte 102,15,56,0,229 |
399 movdqa %xmm4,%xmm3 | 407 movdqa %xmm4,%xmm3 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 pxor %xmm2,%xmm3 | 446 pxor %xmm2,%xmm3 |
439 addl $-16,%edx | 447 addl $-16,%edx |
440 L015schedule_mangle_both: | 448 L015schedule_mangle_both: |
441 movdqa 256(%ebp,%ecx,1),%xmm1 | 449 movdqa 256(%ebp,%ecx,1),%xmm1 |
442 .byte 102,15,56,0,217 | 450 .byte 102,15,56,0,217 |
443 addl $-16,%ecx | 451 addl $-16,%ecx |
444 andl $48,%ecx | 452 andl $48,%ecx |
445 movdqu %xmm3,(%edx) | 453 movdqu %xmm3,(%edx) |
446 ret | 454 ret |
447 .globl _vpaes_set_encrypt_key | 455 .globl _vpaes_set_encrypt_key |
| 456 .private_extern _vpaes_set_encrypt_key |
448 .align 4 | 457 .align 4 |
449 _vpaes_set_encrypt_key: | 458 _vpaes_set_encrypt_key: |
450 L_vpaes_set_encrypt_key_begin: | 459 L_vpaes_set_encrypt_key_begin: |
451 pushl %ebp | 460 pushl %ebp |
452 pushl %ebx | 461 pushl %ebx |
453 pushl %esi | 462 pushl %esi |
454 pushl %edi | 463 pushl %edi |
455 movl 20(%esp),%esi | 464 movl 20(%esp),%esi |
456 leal -56(%esp),%ebx | 465 leal -56(%esp),%ebx |
457 movl 24(%esp),%eax | 466 movl 24(%esp),%eax |
(...skipping 11 matching lines...) Expand all Loading... |
469 call __vpaes_schedule_core | 478 call __vpaes_schedule_core |
470 L016pic_point: | 479 L016pic_point: |
471 movl 48(%esp),%esp | 480 movl 48(%esp),%esp |
472 xorl %eax,%eax | 481 xorl %eax,%eax |
473 popl %edi | 482 popl %edi |
474 popl %esi | 483 popl %esi |
475 popl %ebx | 484 popl %ebx |
476 popl %ebp | 485 popl %ebp |
477 ret | 486 ret |
478 .globl _vpaes_set_decrypt_key | 487 .globl _vpaes_set_decrypt_key |
| 488 .private_extern _vpaes_set_decrypt_key |
479 .align 4 | 489 .align 4 |
480 _vpaes_set_decrypt_key: | 490 _vpaes_set_decrypt_key: |
481 L_vpaes_set_decrypt_key_begin: | 491 L_vpaes_set_decrypt_key_begin: |
482 pushl %ebp | 492 pushl %ebp |
483 pushl %ebx | 493 pushl %ebx |
484 pushl %esi | 494 pushl %esi |
485 pushl %edi | 495 pushl %edi |
486 movl 20(%esp),%esi | 496 movl 20(%esp),%esi |
487 leal -56(%esp),%ebx | 497 leal -56(%esp),%ebx |
488 movl 24(%esp),%eax | 498 movl 24(%esp),%eax |
(...skipping 16 matching lines...) Expand all Loading... |
505 call __vpaes_schedule_core | 515 call __vpaes_schedule_core |
506 L017pic_point: | 516 L017pic_point: |
507 movl 48(%esp),%esp | 517 movl 48(%esp),%esp |
508 xorl %eax,%eax | 518 xorl %eax,%eax |
509 popl %edi | 519 popl %edi |
510 popl %esi | 520 popl %esi |
511 popl %ebx | 521 popl %ebx |
512 popl %ebp | 522 popl %ebp |
513 ret | 523 ret |
514 .globl _vpaes_encrypt | 524 .globl _vpaes_encrypt |
| 525 .private_extern _vpaes_encrypt |
515 .align 4 | 526 .align 4 |
516 _vpaes_encrypt: | 527 _vpaes_encrypt: |
517 L_vpaes_encrypt_begin: | 528 L_vpaes_encrypt_begin: |
518 pushl %ebp | 529 pushl %ebp |
519 pushl %ebx | 530 pushl %ebx |
520 pushl %esi | 531 pushl %esi |
521 pushl %edi | 532 pushl %edi |
522 leal L_vpaes_consts+0x30-L018pic_point,%ebp | 533 leal L_vpaes_consts+0x30-L018pic_point,%ebp |
523 call __vpaes_preheat | 534 call __vpaes_preheat |
524 L018pic_point: | 535 L018pic_point: |
525 movl 20(%esp),%esi | 536 movl 20(%esp),%esi |
526 leal -56(%esp),%ebx | 537 leal -56(%esp),%ebx |
527 movl 24(%esp),%edi | 538 movl 24(%esp),%edi |
528 andl $-16,%ebx | 539 andl $-16,%ebx |
529 movl 28(%esp),%edx | 540 movl 28(%esp),%edx |
530 xchgl %esp,%ebx | 541 xchgl %esp,%ebx |
531 movl %ebx,48(%esp) | 542 movl %ebx,48(%esp) |
532 movdqu (%esi),%xmm0 | 543 movdqu (%esi),%xmm0 |
533 call __vpaes_encrypt_core | 544 call __vpaes_encrypt_core |
534 movdqu %xmm0,(%edi) | 545 movdqu %xmm0,(%edi) |
535 movl 48(%esp),%esp | 546 movl 48(%esp),%esp |
536 popl %edi | 547 popl %edi |
537 popl %esi | 548 popl %esi |
538 popl %ebx | 549 popl %ebx |
539 popl %ebp | 550 popl %ebp |
540 ret | 551 ret |
541 .globl _vpaes_decrypt | 552 .globl _vpaes_decrypt |
| 553 .private_extern _vpaes_decrypt |
542 .align 4 | 554 .align 4 |
543 _vpaes_decrypt: | 555 _vpaes_decrypt: |
544 L_vpaes_decrypt_begin: | 556 L_vpaes_decrypt_begin: |
545 pushl %ebp | 557 pushl %ebp |
546 pushl %ebx | 558 pushl %ebx |
547 pushl %esi | 559 pushl %esi |
548 pushl %edi | 560 pushl %edi |
549 leal L_vpaes_consts+0x30-L019pic_point,%ebp | 561 leal L_vpaes_consts+0x30-L019pic_point,%ebp |
550 call __vpaes_preheat | 562 call __vpaes_preheat |
551 L019pic_point: | 563 L019pic_point: |
552 movl 20(%esp),%esi | 564 movl 20(%esp),%esi |
553 leal -56(%esp),%ebx | 565 leal -56(%esp),%ebx |
554 movl 24(%esp),%edi | 566 movl 24(%esp),%edi |
555 andl $-16,%ebx | 567 andl $-16,%ebx |
556 movl 28(%esp),%edx | 568 movl 28(%esp),%edx |
557 xchgl %esp,%ebx | 569 xchgl %esp,%ebx |
558 movl %ebx,48(%esp) | 570 movl %ebx,48(%esp) |
559 movdqu (%esi),%xmm0 | 571 movdqu (%esi),%xmm0 |
560 call __vpaes_decrypt_core | 572 call __vpaes_decrypt_core |
561 movdqu %xmm0,(%edi) | 573 movdqu %xmm0,(%edi) |
562 movl 48(%esp),%esp | 574 movl 48(%esp),%esp |
563 popl %edi | 575 popl %edi |
564 popl %esi | 576 popl %esi |
565 popl %ebx | 577 popl %ebx |
566 popl %ebp | 578 popl %ebp |
567 ret | 579 ret |
568 .globl _vpaes_cbc_encrypt | 580 .globl _vpaes_cbc_encrypt |
| 581 .private_extern _vpaes_cbc_encrypt |
569 .align 4 | 582 .align 4 |
570 _vpaes_cbc_encrypt: | 583 _vpaes_cbc_encrypt: |
571 L_vpaes_cbc_encrypt_begin: | 584 L_vpaes_cbc_encrypt_begin: |
572 pushl %ebp | 585 pushl %ebp |
573 pushl %ebx | 586 pushl %ebx |
574 pushl %esi | 587 pushl %esi |
575 pushl %edi | 588 pushl %edi |
576 movl 20(%esp),%esi | 589 movl 20(%esp),%esi |
577 movl 24(%esp),%edi | 590 movl 24(%esp),%edi |
578 movl 28(%esp),%eax | 591 movl 28(%esp),%eax |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 movl 8(%esp),%ebx | 641 movl 8(%esp),%ebx |
629 movl 48(%esp),%esp | 642 movl 48(%esp),%esp |
630 movdqu %xmm1,(%ebx) | 643 movdqu %xmm1,(%ebx) |
631 L020cbc_abort: | 644 L020cbc_abort: |
632 popl %edi | 645 popl %edi |
633 popl %esi | 646 popl %esi |
634 popl %ebx | 647 popl %ebx |
635 popl %ebp | 648 popl %ebp |
636 ret | 649 ret |
637 #endif | 650 #endif |
OLD | NEW |