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