Lines Matching full:n

75         asm ("movl  $1, %%eax   \n\t"  in mbedtls_aesni_has_support()
76 "cpuid \n\t" in mbedtls_aesni_has_support()
446 #define AESDEC(regs) ".byte 0x66,0x0F,0x38,0xDE," regs "\n\t"
447 #define AESDECLAST(regs) ".byte 0x66,0x0F,0x38,0xDF," regs "\n\t"
448 #define AESENC(regs) ".byte 0x66,0x0F,0x38,0xDC," regs "\n\t"
449 #define AESENCLAST(regs) ".byte 0x66,0x0F,0x38,0xDD," regs "\n\t"
450 #define AESIMC(regs) ".byte 0x66,0x0F,0x38,0xDB," regs "\n\t"
451 #define AESKEYGENA(regs, imm) ".byte 0x66,0x0F,0x3A,0xDF," regs "," imm "\n\t"
452 #define PCLMULQDQ(regs, imm) ".byte 0x66,0x0F,0x3A,0x44," regs "," imm "\n\t"
470 asm ("movdqu (%3), %%xmm0 \n\t" // load input in mbedtls_aesni_crypt_ecb()
471 "movdqu (%1), %%xmm1 \n\t" // load round key 0 in mbedtls_aesni_crypt_ecb()
472 "pxor %%xmm1, %%xmm0 \n\t" // round 0 in mbedtls_aesni_crypt_ecb()
473 "add $16, %1 \n\t" // point to next round key in mbedtls_aesni_crypt_ecb()
474 "subl $1, %0 \n\t" // normal rounds = nr - 1 in mbedtls_aesni_crypt_ecb()
475 "test %2, %2 \n\t" // mode? in mbedtls_aesni_crypt_ecb()
476 "jz 2f \n\t" // 0 = decrypt in mbedtls_aesni_crypt_ecb()
478 "1: \n\t" // encryption loop in mbedtls_aesni_crypt_ecb()
479 "movdqu (%1), %%xmm1 \n\t" // load round key in mbedtls_aesni_crypt_ecb()
481 "add $16, %1 \n\t" // point to next round key in mbedtls_aesni_crypt_ecb()
482 "subl $1, %0 \n\t" // loop in mbedtls_aesni_crypt_ecb()
483 "jnz 1b \n\t" in mbedtls_aesni_crypt_ecb()
484 "movdqu (%1), %%xmm1 \n\t" // load round key in mbedtls_aesni_crypt_ecb()
487 "jmp 3f \n\t" in mbedtls_aesni_crypt_ecb()
489 "2: \n\t" // decryption loop in mbedtls_aesni_crypt_ecb()
490 "movdqu (%1), %%xmm1 \n\t" in mbedtls_aesni_crypt_ecb()
492 "add $16, %1 \n\t" in mbedtls_aesni_crypt_ecb()
493 "subl $1, %0 \n\t" in mbedtls_aesni_crypt_ecb()
494 "jnz 2b \n\t" in mbedtls_aesni_crypt_ecb()
495 "movdqu (%1), %%xmm1 \n\t" // load round key in mbedtls_aesni_crypt_ecb()
499 "3: \n\t" in mbedtls_aesni_crypt_ecb()
500 "movdqu %%xmm0, (%4) \n\t" // export output in mbedtls_aesni_crypt_ecb()
526 asm ("movdqu (%0), %%xmm0 \n\t" // a1:a0 in mbedtls_aesni_gcm_mult()
527 "movdqu (%1), %%xmm1 \n\t" // b1:b0 in mbedtls_aesni_gcm_mult()
533 "movdqa %%xmm1, %%xmm2 \n\t" // copy of b1:b0 in mbedtls_aesni_gcm_mult()
534 "movdqa %%xmm1, %%xmm3 \n\t" // same in mbedtls_aesni_gcm_mult()
535 "movdqa %%xmm1, %%xmm4 \n\t" // same in mbedtls_aesni_gcm_mult()
540 "pxor %%xmm3, %%xmm4 \n\t" // e1+f1:e0+f0 in mbedtls_aesni_gcm_mult()
541 "movdqa %%xmm4, %%xmm3 \n\t" // same in mbedtls_aesni_gcm_mult()
542 "psrldq $8, %%xmm4 \n\t" // 0:e1+f1 in mbedtls_aesni_gcm_mult()
543 "pslldq $8, %%xmm3 \n\t" // e0+f0:0 in mbedtls_aesni_gcm_mult()
544 "pxor %%xmm4, %%xmm2 \n\t" // d1:d0+e1+f1 in mbedtls_aesni_gcm_mult()
545 "pxor %%xmm3, %%xmm1 \n\t" // c1+e0+f1:c0 in mbedtls_aesni_gcm_mult()
551 "movdqa %%xmm1, %%xmm3 \n\t" // r1:r0 in mbedtls_aesni_gcm_mult()
552 "movdqa %%xmm2, %%xmm4 \n\t" // r3:r2 in mbedtls_aesni_gcm_mult()
553 "psllq $1, %%xmm1 \n\t" // r1<<1:r0<<1 in mbedtls_aesni_gcm_mult()
554 "psllq $1, %%xmm2 \n\t" // r3<<1:r2<<1 in mbedtls_aesni_gcm_mult()
555 "psrlq $63, %%xmm3 \n\t" // r1>>63:r0>>63 in mbedtls_aesni_gcm_mult()
556 "psrlq $63, %%xmm4 \n\t" // r3>>63:r2>>63 in mbedtls_aesni_gcm_mult()
557 "movdqa %%xmm3, %%xmm5 \n\t" // r1>>63:r0>>63 in mbedtls_aesni_gcm_mult()
558 "pslldq $8, %%xmm3 \n\t" // r0>>63:0 in mbedtls_aesni_gcm_mult()
559 "pslldq $8, %%xmm4 \n\t" // r2>>63:0 in mbedtls_aesni_gcm_mult()
560 "psrldq $8, %%xmm5 \n\t" // 0:r1>>63 in mbedtls_aesni_gcm_mult()
561 "por %%xmm3, %%xmm1 \n\t" // r1<<1|r0>>63:r0<<1 in mbedtls_aesni_gcm_mult()
562 "por %%xmm4, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1 in mbedtls_aesni_gcm_mult()
563 "por %%xmm5, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1|r1>>63 in mbedtls_aesni_gcm_mult()
571 "movdqa %%xmm1, %%xmm3 \n\t" // x1:x0 in mbedtls_aesni_gcm_mult()
572 "movdqa %%xmm1, %%xmm4 \n\t" // same in mbedtls_aesni_gcm_mult()
573 "movdqa %%xmm1, %%xmm5 \n\t" // same in mbedtls_aesni_gcm_mult()
574 "psllq $63, %%xmm3 \n\t" // x1<<63:x0<<63 = stuff:a in mbedtls_aesni_gcm_mult()
575 "psllq $62, %%xmm4 \n\t" // x1<<62:x0<<62 = stuff:b in mbedtls_aesni_gcm_mult()
576 "psllq $57, %%xmm5 \n\t" // x1<<57:x0<<57 = stuff:c in mbedtls_aesni_gcm_mult()
579 "pxor %%xmm4, %%xmm3 \n\t" // stuff:a+b in mbedtls_aesni_gcm_mult()
580 "pxor %%xmm5, %%xmm3 \n\t" // stuff:a+b+c in mbedtls_aesni_gcm_mult()
581 "pslldq $8, %%xmm3 \n\t" // a+b+c:0 in mbedtls_aesni_gcm_mult()
582 "pxor %%xmm3, %%xmm1 \n\t" // x1+a+b+c:x0 = d:x0 in mbedtls_aesni_gcm_mult()
585 "movdqa %%xmm1,%%xmm0 \n\t" // d:x0 in mbedtls_aesni_gcm_mult()
586 "movdqa %%xmm1,%%xmm4 \n\t" // same in mbedtls_aesni_gcm_mult()
587 "movdqa %%xmm1,%%xmm5 \n\t" // same in mbedtls_aesni_gcm_mult()
588 "psrlq $1, %%xmm0 \n\t" // e1:x0>>1 = e1:e0' in mbedtls_aesni_gcm_mult()
589 "psrlq $2, %%xmm4 \n\t" // f1:x0>>2 = f1:f0' in mbedtls_aesni_gcm_mult()
590 "psrlq $7, %%xmm5 \n\t" // g1:x0>>7 = g1:g0' in mbedtls_aesni_gcm_mult()
591 "pxor %%xmm4, %%xmm0 \n\t" // e1+f1:e0'+f0' in mbedtls_aesni_gcm_mult()
592 "pxor %%xmm5, %%xmm0 \n\t" // e1+f1+g1:e0'+f0'+g0' in mbedtls_aesni_gcm_mult()
595 "movdqa %%xmm1,%%xmm3 \n\t" // d:x0 in mbedtls_aesni_gcm_mult()
596 "movdqa %%xmm1,%%xmm4 \n\t" // same in mbedtls_aesni_gcm_mult()
597 "movdqa %%xmm1,%%xmm5 \n\t" // same in mbedtls_aesni_gcm_mult()
598 "psllq $63, %%xmm3 \n\t" // d<<63:stuff in mbedtls_aesni_gcm_mult()
599 "psllq $62, %%xmm4 \n\t" // d<<62:stuff in mbedtls_aesni_gcm_mult()
600 "psllq $57, %%xmm5 \n\t" // d<<57:stuff in mbedtls_aesni_gcm_mult()
601 "pxor %%xmm4, %%xmm3 \n\t" // d<<63+d<<62:stuff in mbedtls_aesni_gcm_mult()
602 "pxor %%xmm5, %%xmm3 \n\t" // missing bits of d:stuff in mbedtls_aesni_gcm_mult()
603 "psrldq $8, %%xmm3 \n\t" // 0:missing bits of d in mbedtls_aesni_gcm_mult()
604 "pxor %%xmm3, %%xmm0 \n\t" // e1+f1+g1:e0+f0+g0 in mbedtls_aesni_gcm_mult()
605 "pxor %%xmm1, %%xmm0 \n\t" // h1:h0 in mbedtls_aesni_gcm_mult()
606 "pxor %%xmm2, %%xmm0 \n\t" // x3+h1:x2+h0 in mbedtls_aesni_gcm_mult()
608 "movdqu %%xmm0, (%2) \n\t" // done in mbedtls_aesni_gcm_mult()
634 asm ("movdqu (%0), %%xmm0 \n\t" in mbedtls_aesni_inverse_key()
636 "movdqu %%xmm0, (%1) \n\t" in mbedtls_aesni_inverse_key()
652 asm ("movdqu (%1), %%xmm0 \n\t" // copy the original key in aesni_setkey_enc_128()
653 "movdqu %%xmm0, (%0) \n\t" // as round key 0 in aesni_setkey_enc_128()
654 "jmp 2f \n\t" // skip auxiliary routine in aesni_setkey_enc_128()
666 "1: \n\t" in aesni_setkey_enc_128()
667 "pshufd $0xff, %%xmm1, %%xmm1 \n\t" // X:X:X:X in aesni_setkey_enc_128()
668 "pxor %%xmm0, %%xmm1 \n\t" // X+r3:X+r2:X+r1:r4 in aesni_setkey_enc_128()
669 "pslldq $4, %%xmm0 \n\t" // r2:r1:r0:0 in aesni_setkey_enc_128()
670 "pxor %%xmm0, %%xmm1 \n\t" // X+r3+r2:X+r2+r1:r5:r4 in aesni_setkey_enc_128()
671 "pslldq $4, %%xmm0 \n\t" // etc in aesni_setkey_enc_128()
672 "pxor %%xmm0, %%xmm1 \n\t" in aesni_setkey_enc_128()
673 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_128()
674 "pxor %%xmm1, %%xmm0 \n\t" // update xmm0 for next time! in aesni_setkey_enc_128()
675 "add $16, %0 \n\t" // point to next round key in aesni_setkey_enc_128()
676 "movdqu %%xmm0, (%0) \n\t" // write it in aesni_setkey_enc_128()
677 "ret \n\t" in aesni_setkey_enc_128()
680 "2: \n\t" in aesni_setkey_enc_128()
681 AESKEYGENA(xmm0_xmm1, "0x01") "call 1b \n\t" in aesni_setkey_enc_128()
682 AESKEYGENA(xmm0_xmm1, "0x02") "call 1b \n\t" in aesni_setkey_enc_128()
683 AESKEYGENA(xmm0_xmm1, "0x04") "call 1b \n\t" in aesni_setkey_enc_128()
684 AESKEYGENA(xmm0_xmm1, "0x08") "call 1b \n\t" in aesni_setkey_enc_128()
685 AESKEYGENA(xmm0_xmm1, "0x10") "call 1b \n\t" in aesni_setkey_enc_128()
686 AESKEYGENA(xmm0_xmm1, "0x20") "call 1b \n\t" in aesni_setkey_enc_128()
687 AESKEYGENA(xmm0_xmm1, "0x40") "call 1b \n\t" in aesni_setkey_enc_128()
688 AESKEYGENA(xmm0_xmm1, "0x80") "call 1b \n\t" in aesni_setkey_enc_128()
689 AESKEYGENA(xmm0_xmm1, "0x1B") "call 1b \n\t" in aesni_setkey_enc_128()
690 AESKEYGENA(xmm0_xmm1, "0x36") "call 1b \n\t" in aesni_setkey_enc_128()
703 asm ("movdqu (%1), %%xmm0 \n\t" // copy original round key in aesni_setkey_enc_192()
704 "movdqu %%xmm0, (%0) \n\t" in aesni_setkey_enc_192()
705 "add $16, %0 \n\t" in aesni_setkey_enc_192()
706 "movq 16(%1), %%xmm1 \n\t" in aesni_setkey_enc_192()
707 "movq %%xmm1, (%0) \n\t" in aesni_setkey_enc_192()
708 "add $8, %0 \n\t" in aesni_setkey_enc_192()
709 "jmp 2f \n\t" // skip auxiliary routine in aesni_setkey_enc_192()
720 "1: \n\t" in aesni_setkey_enc_192()
721 "pshufd $0x55, %%xmm2, %%xmm2 \n\t" // X:X:X:X in aesni_setkey_enc_192()
722 "pxor %%xmm0, %%xmm2 \n\t" // X+r3:X+r2:X+r1:r4 in aesni_setkey_enc_192()
723 "pslldq $4, %%xmm0 \n\t" // etc in aesni_setkey_enc_192()
724 "pxor %%xmm0, %%xmm2 \n\t" in aesni_setkey_enc_192()
725 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_192()
726 "pxor %%xmm0, %%xmm2 \n\t" in aesni_setkey_enc_192()
727 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_192()
728 "pxor %%xmm2, %%xmm0 \n\t" // update xmm0 = r9:r8:r7:r6 in aesni_setkey_enc_192()
729 "movdqu %%xmm0, (%0) \n\t" in aesni_setkey_enc_192()
730 "add $16, %0 \n\t" in aesni_setkey_enc_192()
731 "pshufd $0xff, %%xmm0, %%xmm2 \n\t" // r9:r9:r9:r9 in aesni_setkey_enc_192()
732 "pxor %%xmm1, %%xmm2 \n\t" // stuff:stuff:r9+r5:r10 in aesni_setkey_enc_192()
733 "pslldq $4, %%xmm1 \n\t" // r2:r1:r0:0 in aesni_setkey_enc_192()
734 "pxor %%xmm2, %%xmm1 \n\t" // xmm1 = stuff:stuff:r11:r10 in aesni_setkey_enc_192()
735 "movq %%xmm1, (%0) \n\t" in aesni_setkey_enc_192()
736 "add $8, %0 \n\t" in aesni_setkey_enc_192()
737 "ret \n\t" in aesni_setkey_enc_192()
739 "2: \n\t" in aesni_setkey_enc_192()
740 AESKEYGENA(xmm1_xmm2, "0x01") "call 1b \n\t" in aesni_setkey_enc_192()
741 AESKEYGENA(xmm1_xmm2, "0x02") "call 1b \n\t" in aesni_setkey_enc_192()
742 AESKEYGENA(xmm1_xmm2, "0x04") "call 1b \n\t" in aesni_setkey_enc_192()
743 AESKEYGENA(xmm1_xmm2, "0x08") "call 1b \n\t" in aesni_setkey_enc_192()
744 AESKEYGENA(xmm1_xmm2, "0x10") "call 1b \n\t" in aesni_setkey_enc_192()
745 AESKEYGENA(xmm1_xmm2, "0x20") "call 1b \n\t" in aesni_setkey_enc_192()
746 AESKEYGENA(xmm1_xmm2, "0x40") "call 1b \n\t" in aesni_setkey_enc_192()
747 AESKEYGENA(xmm1_xmm2, "0x80") "call 1b \n\t" in aesni_setkey_enc_192()
762 asm ("movdqu (%1), %%xmm0 \n\t" in aesni_setkey_enc_256()
763 "movdqu %%xmm0, (%0) \n\t" in aesni_setkey_enc_256()
764 "add $16, %0 \n\t" in aesni_setkey_enc_256()
765 "movdqu 16(%1), %%xmm1 \n\t" in aesni_setkey_enc_256()
766 "movdqu %%xmm1, (%0) \n\t" in aesni_setkey_enc_256()
767 "jmp 2f \n\t" // skip auxiliary routine in aesni_setkey_enc_256()
778 "1: \n\t" in aesni_setkey_enc_256()
779 "pshufd $0xff, %%xmm2, %%xmm2 \n\t" in aesni_setkey_enc_256()
780 "pxor %%xmm0, %%xmm2 \n\t" in aesni_setkey_enc_256()
781 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_256()
782 "pxor %%xmm0, %%xmm2 \n\t" in aesni_setkey_enc_256()
783 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_256()
784 "pxor %%xmm0, %%xmm2 \n\t" in aesni_setkey_enc_256()
785 "pslldq $4, %%xmm0 \n\t" in aesni_setkey_enc_256()
786 "pxor %%xmm2, %%xmm0 \n\t" in aesni_setkey_enc_256()
787 "add $16, %0 \n\t" in aesni_setkey_enc_256()
788 "movdqu %%xmm0, (%0) \n\t" in aesni_setkey_enc_256()
793 "pshufd $0xaa, %%xmm2, %%xmm2 \n\t" in aesni_setkey_enc_256()
794 "pxor %%xmm1, %%xmm2 \n\t" in aesni_setkey_enc_256()
795 "pslldq $4, %%xmm1 \n\t" in aesni_setkey_enc_256()
796 "pxor %%xmm1, %%xmm2 \n\t" in aesni_setkey_enc_256()
797 "pslldq $4, %%xmm1 \n\t" in aesni_setkey_enc_256()
798 "pxor %%xmm1, %%xmm2 \n\t" in aesni_setkey_enc_256()
799 "pslldq $4, %%xmm1 \n\t" in aesni_setkey_enc_256()
800 "pxor %%xmm2, %%xmm1 \n\t" in aesni_setkey_enc_256()
801 "add $16, %0 \n\t" in aesni_setkey_enc_256()
802 "movdqu %%xmm1, (%0) \n\t" in aesni_setkey_enc_256()
803 "ret \n\t" in aesni_setkey_enc_256()
809 "2: \n\t" in aesni_setkey_enc_256()
810 AESKEYGENA(xmm1_xmm2, "0x01") "call 1b \n\t" in aesni_setkey_enc_256()
811 AESKEYGENA(xmm1_xmm2, "0x02") "call 1b \n\t" in aesni_setkey_enc_256()
812 AESKEYGENA(xmm1_xmm2, "0x04") "call 1b \n\t" in aesni_setkey_enc_256()
813 AESKEYGENA(xmm1_xmm2, "0x08") "call 1b \n\t" in aesni_setkey_enc_256()
814 AESKEYGENA(xmm1_xmm2, "0x10") "call 1b \n\t" in aesni_setkey_enc_256()
815 AESKEYGENA(xmm1_xmm2, "0x20") "call 1b \n\t" in aesni_setkey_enc_256()
816 AESKEYGENA(xmm1_xmm2, "0x40") "call 1b \n\t" in aesni_setkey_enc_256()