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