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