1*8fb009dcSAndroid Build Coastguard Worker// This file is generated from a similarly-named Perl script in the BoringSSL 2*8fb009dcSAndroid Build Coastguard Worker// source tree. Do not edit by hand. 3*8fb009dcSAndroid Build Coastguard Worker 4*8fb009dcSAndroid Build Coastguard Worker#include <openssl/asm_base.h> 5*8fb009dcSAndroid Build Coastguard Worker 6*8fb009dcSAndroid Build Coastguard Worker#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 7*8fb009dcSAndroid Build Coastguard Worker.text 8*8fb009dcSAndroid Build Coastguard Worker#ifdef BORINGSSL_DISPATCH_TEST 9*8fb009dcSAndroid Build Coastguard Worker#endif 10*8fb009dcSAndroid Build Coastguard Worker.align 64 11*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_consts: 12*8fb009dcSAndroid Build Coastguard Worker.long 218628480,235210255,168496130,67568393 13*8fb009dcSAndroid Build Coastguard Worker.long 252381056,17041926,33884169,51187212 14*8fb009dcSAndroid Build Coastguard Worker.long 252645135,252645135,252645135,252645135 15*8fb009dcSAndroid Build Coastguard Worker.long 1512730624,3266504856,1377990664,3401244816 16*8fb009dcSAndroid Build Coastguard Worker.long 830229760,1275146365,2969422977,3447763452 17*8fb009dcSAndroid Build Coastguard Worker.long 3411033600,2979783055,338359620,2782886510 18*8fb009dcSAndroid Build Coastguard Worker.long 4209124096,907596821,221174255,1006095553 19*8fb009dcSAndroid Build Coastguard Worker.long 191964160,3799684038,3164090317,1589111125 20*8fb009dcSAndroid Build Coastguard Worker.long 182528256,1777043520,2877432650,3265356744 21*8fb009dcSAndroid Build Coastguard Worker.long 1874708224,3503451415,3305285752,363511674 22*8fb009dcSAndroid Build Coastguard Worker.long 1606117888,3487855781,1093350906,2384367825 23*8fb009dcSAndroid Build Coastguard Worker.long 197121,67569157,134941193,202313229 24*8fb009dcSAndroid Build Coastguard Worker.long 67569157,134941193,202313229,197121 25*8fb009dcSAndroid Build Coastguard Worker.long 134941193,202313229,197121,67569157 26*8fb009dcSAndroid Build Coastguard Worker.long 202313229,197121,67569157,134941193 27*8fb009dcSAndroid Build Coastguard Worker.long 33619971,100992007,168364043,235736079 28*8fb009dcSAndroid Build Coastguard Worker.long 235736079,33619971,100992007,168364043 29*8fb009dcSAndroid Build Coastguard Worker.long 168364043,235736079,33619971,100992007 30*8fb009dcSAndroid Build Coastguard Worker.long 100992007,168364043,235736079,33619971 31*8fb009dcSAndroid Build Coastguard Worker.long 50462976,117835012,185207048,252579084 32*8fb009dcSAndroid Build Coastguard Worker.long 252314880,51251460,117574920,184942860 33*8fb009dcSAndroid Build Coastguard Worker.long 184682752,252054788,50987272,118359308 34*8fb009dcSAndroid Build Coastguard Worker.long 118099200,185467140,251790600,50727180 35*8fb009dcSAndroid Build Coastguard Worker.long 2946363062,528716217,1300004225,1881839624 36*8fb009dcSAndroid Build Coastguard Worker.long 1532713819,1532713819,1532713819,1532713819 37*8fb009dcSAndroid Build Coastguard Worker.long 3602276352,4288629033,3737020424,4153884961 38*8fb009dcSAndroid Build Coastguard Worker.long 1354558464,32357713,2958822624,3775749553 39*8fb009dcSAndroid Build Coastguard Worker.long 1201988352,132424512,1572796698,503232858 40*8fb009dcSAndroid Build Coastguard Worker.long 2213177600,1597421020,4103937655,675398315 41*8fb009dcSAndroid Build Coastguard Worker.long 2749646592,4273543773,1511898873,121693092 42*8fb009dcSAndroid Build Coastguard Worker.long 3040248576,1103263732,2871565598,1608280554 43*8fb009dcSAndroid Build Coastguard Worker.long 2236667136,2588920351,482954393,64377734 44*8fb009dcSAndroid Build Coastguard Worker.long 3069987328,291237287,2117370568,3650299247 45*8fb009dcSAndroid Build Coastguard Worker.long 533321216,3573750986,2572112006,1401264716 46*8fb009dcSAndroid Build Coastguard Worker.long 1339849704,2721158661,548607111,3445553514 47*8fb009dcSAndroid Build Coastguard Worker.long 2128193280,3054596040,2183486460,1257083700 48*8fb009dcSAndroid Build Coastguard Worker.long 655635200,1165381986,3923443150,2344132524 49*8fb009dcSAndroid Build Coastguard Worker.long 190078720,256924420,290342170,357187870 50*8fb009dcSAndroid Build Coastguard Worker.long 1610966272,2263057382,4103205268,309794674 51*8fb009dcSAndroid Build Coastguard Worker.long 2592527872,2233205587,1335446729,3402964816 52*8fb009dcSAndroid Build Coastguard Worker.long 3973531904,3225098121,3002836325,1918774430 53*8fb009dcSAndroid Build Coastguard Worker.long 3870401024,2102906079,2284471353,4117666579 54*8fb009dcSAndroid Build Coastguard Worker.long 617007872,1021508343,366931923,691083277 55*8fb009dcSAndroid Build Coastguard Worker.long 2528395776,3491914898,2968704004,1613121270 56*8fb009dcSAndroid Build Coastguard Worker.long 3445188352,3247741094,844474987,4093578302 57*8fb009dcSAndroid Build Coastguard Worker.long 651481088,1190302358,1689581232,574775300 58*8fb009dcSAndroid Build Coastguard Worker.long 4289380608,206939853,2555985458,2489840491 59*8fb009dcSAndroid Build Coastguard Worker.long 2130264064,327674451,3566485037,3349835193 60*8fb009dcSAndroid Build Coastguard Worker.long 2470714624,316102159,3636825756,3393945945 61*8fb009dcSAndroid Build Coastguard Worker.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 62*8fb009dcSAndroid Build Coastguard Worker.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 63*8fb009dcSAndroid Build Coastguard Worker.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 64*8fb009dcSAndroid Build Coastguard Worker.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 65*8fb009dcSAndroid Build Coastguard Worker.byte 118,101,114,115,105,116,121,41,0 66*8fb009dcSAndroid Build Coastguard Worker.align 64 67*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_preheat 68*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_preheat,@function 69*8fb009dcSAndroid Build Coastguard Worker.align 16 70*8fb009dcSAndroid Build Coastguard Worker_vpaes_preheat: 71*8fb009dcSAndroid Build Coastguard Worker addl (%esp),%ebp 72*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebp),%xmm7 73*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm6 74*8fb009dcSAndroid Build Coastguard Worker ret 75*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_preheat,.-_vpaes_preheat 76*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_encrypt_core 77*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_encrypt_core,@function 78*8fb009dcSAndroid Build Coastguard Worker.align 16 79*8fb009dcSAndroid Build Coastguard Worker_vpaes_encrypt_core: 80*8fb009dcSAndroid Build Coastguard Worker movl $16,%ecx 81*8fb009dcSAndroid Build Coastguard Worker movl 240(%edx),%eax 82*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 83*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebp),%xmm2 84*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 85*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 86*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 87*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 88*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebp),%xmm0 89*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 90*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 91*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 92*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 93*8fb009dcSAndroid Build Coastguard Worker leal 192(%ebp),%ebx 94*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 95*8fb009dcSAndroid Build Coastguard Worker jmp .L000enc_entry 96*8fb009dcSAndroid Build Coastguard Worker.align 16 97*8fb009dcSAndroid Build Coastguard Worker.L001enc_loop: 98*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebp),%xmm4 99*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebp),%xmm0 100*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 101*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 102*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 103*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebp),%xmm5 104*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 105*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx,%ecx,1),%xmm1 106*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,234 107*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebp),%xmm2 108*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx,%ecx,1),%xmm4 109*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 110*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm3 111*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 112*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 113*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 114*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 115*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 116*8fb009dcSAndroid Build Coastguard Worker addl $16,%ecx 117*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 118*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 119*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 120*8fb009dcSAndroid Build Coastguard Worker subl $1,%eax 121*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm0 122*8fb009dcSAndroid Build Coastguard Worker.L000enc_entry: 123*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 124*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm5 125*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 126*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 127*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 128*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,232 129*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 130*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 131*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 132*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm4 133*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 134*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 135*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm2 136*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 137*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 138*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 139*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 140*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 141*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 142*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 143*8fb009dcSAndroid Build Coastguard Worker jnz .L001enc_loop 144*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebp),%xmm4 145*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebp),%xmm0 146*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 147*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 148*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 149*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx,%ecx,1),%xmm1 150*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 151*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 152*8fb009dcSAndroid Build Coastguard Worker ret 153*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_encrypt_core,.-_vpaes_encrypt_core 154*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_decrypt_core 155*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_decrypt_core,@function 156*8fb009dcSAndroid Build Coastguard Worker.align 16 157*8fb009dcSAndroid Build Coastguard Worker_vpaes_decrypt_core: 158*8fb009dcSAndroid Build Coastguard Worker leal 608(%ebp),%ebx 159*8fb009dcSAndroid Build Coastguard Worker movl 240(%edx),%eax 160*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 161*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx),%xmm2 162*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 163*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ecx 164*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 165*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 166*8fb009dcSAndroid Build Coastguard Worker shll $4,%ecx 167*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 168*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 169*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebx),%xmm0 170*8fb009dcSAndroid Build Coastguard Worker xorl $48,%ecx 171*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 172*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 173*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 174*8fb009dcSAndroid Build Coastguard Worker movdqa 176(%ebp),%xmm5 175*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 176*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 177*8fb009dcSAndroid Build Coastguard Worker leal -352(%ebx,%ecx,1),%ecx 178*8fb009dcSAndroid Build Coastguard Worker jmp .L002dec_entry 179*8fb009dcSAndroid Build Coastguard Worker.align 16 180*8fb009dcSAndroid Build Coastguard Worker.L003dec_loop: 181*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebx),%xmm4 182*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebx),%xmm1 183*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 184*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 185*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 186*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm4 187*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 188*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm1 189*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 190*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 191*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 192*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 193*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebx),%xmm4 194*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 195*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebx),%xmm1 196*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 197*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 198*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 199*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 200*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx),%xmm4 201*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 202*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebx),%xmm1 203*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 204*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 205*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 206*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 207*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 208*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,237,12 209*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 210*8fb009dcSAndroid Build Coastguard Worker subl $1,%eax 211*8fb009dcSAndroid Build Coastguard Worker.L002dec_entry: 212*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 213*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm2 214*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 215*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 216*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 217*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 218*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 219*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 220*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 221*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm4 222*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 223*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 224*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm4 225*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm2 226*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 227*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 228*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 229*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 230*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm0 231*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 232*8fb009dcSAndroid Build Coastguard Worker jnz .L003dec_loop 233*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebx),%xmm4 234*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 235*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 236*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebx),%xmm0 237*8fb009dcSAndroid Build Coastguard Worker movdqa (%ecx),%xmm2 238*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 239*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 240*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,194 241*8fb009dcSAndroid Build Coastguard Worker ret 242*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_decrypt_core,.-_vpaes_decrypt_core 243*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_schedule_core 244*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_schedule_core,@function 245*8fb009dcSAndroid Build Coastguard Worker.align 16 246*8fb009dcSAndroid Build Coastguard Worker_vpaes_schedule_core: 247*8fb009dcSAndroid Build Coastguard Worker addl (%esp),%ebp 248*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 249*8fb009dcSAndroid Build Coastguard Worker movdqa 320(%ebp),%xmm2 250*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm3 251*8fb009dcSAndroid Build Coastguard Worker leal (%ebp),%ebx 252*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,4(%esp) 253*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_transform 254*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm7 255*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 256*8fb009dcSAndroid Build Coastguard Worker jnz .L004schedule_am_decrypting 257*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edx) 258*8fb009dcSAndroid Build Coastguard Worker jmp .L005schedule_go 259*8fb009dcSAndroid Build Coastguard Worker.L004schedule_am_decrypting: 260*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 261*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 262*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm3,(%edx) 263*8fb009dcSAndroid Build Coastguard Worker xorl $48,%ecx 264*8fb009dcSAndroid Build Coastguard Worker.L005schedule_go: 265*8fb009dcSAndroid Build Coastguard Worker cmpl $192,%eax 266*8fb009dcSAndroid Build Coastguard Worker ja .L006schedule_256 267*8fb009dcSAndroid Build Coastguard Worker je .L007schedule_192 268*8fb009dcSAndroid Build Coastguard Worker.L008schedule_128: 269*8fb009dcSAndroid Build Coastguard Worker movl $10,%eax 270*8fb009dcSAndroid Build Coastguard Worker.L009loop_schedule_128: 271*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_round 272*8fb009dcSAndroid Build Coastguard Worker decl %eax 273*8fb009dcSAndroid Build Coastguard Worker jz .L010schedule_mangle_last 274*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 275*8fb009dcSAndroid Build Coastguard Worker jmp .L009loop_schedule_128 276*8fb009dcSAndroid Build Coastguard Worker.align 16 277*8fb009dcSAndroid Build Coastguard Worker.L007schedule_192: 278*8fb009dcSAndroid Build Coastguard Worker movdqu 8(%esi),%xmm0 279*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_transform 280*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 281*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm4 282*8fb009dcSAndroid Build Coastguard Worker movhlps %xmm4,%xmm6 283*8fb009dcSAndroid Build Coastguard Worker movl $4,%eax 284*8fb009dcSAndroid Build Coastguard Worker.L011loop_schedule_192: 285*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_round 286*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,198,8 287*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 288*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_192_smear 289*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 290*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_round 291*8fb009dcSAndroid Build Coastguard Worker decl %eax 292*8fb009dcSAndroid Build Coastguard Worker jz .L010schedule_mangle_last 293*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 294*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_192_smear 295*8fb009dcSAndroid Build Coastguard Worker jmp .L011loop_schedule_192 296*8fb009dcSAndroid Build Coastguard Worker.align 16 297*8fb009dcSAndroid Build Coastguard Worker.L006schedule_256: 298*8fb009dcSAndroid Build Coastguard Worker movdqu 16(%esi),%xmm0 299*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_transform 300*8fb009dcSAndroid Build Coastguard Worker movl $7,%eax 301*8fb009dcSAndroid Build Coastguard Worker.L012loop_schedule_256: 302*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 303*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 304*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_round 305*8fb009dcSAndroid Build Coastguard Worker decl %eax 306*8fb009dcSAndroid Build Coastguard Worker jz .L010schedule_mangle_last 307*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_mangle 308*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm0,%xmm0 309*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,20(%esp) 310*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm7 311*8fb009dcSAndroid Build Coastguard Worker call .L_vpaes_schedule_low_round 312*8fb009dcSAndroid Build Coastguard Worker movdqa 20(%esp),%xmm7 313*8fb009dcSAndroid Build Coastguard Worker jmp .L012loop_schedule_256 314*8fb009dcSAndroid Build Coastguard Worker.align 16 315*8fb009dcSAndroid Build Coastguard Worker.L010schedule_mangle_last: 316*8fb009dcSAndroid Build Coastguard Worker leal 384(%ebp),%ebx 317*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 318*8fb009dcSAndroid Build Coastguard Worker jnz .L013schedule_mangle_last_dec 319*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 320*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 321*8fb009dcSAndroid Build Coastguard Worker leal 352(%ebp),%ebx 322*8fb009dcSAndroid Build Coastguard Worker addl $32,%edx 323*8fb009dcSAndroid Build Coastguard Worker.L013schedule_mangle_last_dec: 324*8fb009dcSAndroid Build Coastguard Worker addl $-16,%edx 325*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm0 326*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_transform 327*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edx) 328*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm0 329*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 330*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm2 331*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm3 332*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm4 333*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm5 334*8fb009dcSAndroid Build Coastguard Worker pxor %xmm6,%xmm6 335*8fb009dcSAndroid Build Coastguard Worker pxor %xmm7,%xmm7 336*8fb009dcSAndroid Build Coastguard Worker ret 337*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_schedule_core,.-_vpaes_schedule_core 338*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_schedule_192_smear 339*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_schedule_192_smear,@function 340*8fb009dcSAndroid Build Coastguard Worker.align 16 341*8fb009dcSAndroid Build Coastguard Worker_vpaes_schedule_192_smear: 342*8fb009dcSAndroid Build Coastguard Worker pshufd $128,%xmm6,%xmm1 343*8fb009dcSAndroid Build Coastguard Worker pshufd $254,%xmm7,%xmm0 344*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm6 345*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 346*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 347*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm0 348*8fb009dcSAndroid Build Coastguard Worker movhlps %xmm1,%xmm6 349*8fb009dcSAndroid Build Coastguard Worker ret 350*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear 351*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_schedule_round 352*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_schedule_round,@function 353*8fb009dcSAndroid Build Coastguard Worker.align 16 354*8fb009dcSAndroid Build Coastguard Worker_vpaes_schedule_round: 355*8fb009dcSAndroid Build Coastguard Worker movdqa 8(%esp),%xmm2 356*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 357*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,202,15 358*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,210,15 359*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 360*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm0,%xmm0 361*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,192,1 362*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,8(%esp) 363*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_schedule_low_round: 364*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm1 365*8fb009dcSAndroid Build Coastguard Worker pslldq $4,%xmm7 366*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 367*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm1 368*8fb009dcSAndroid Build Coastguard Worker pslldq $8,%xmm7 369*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 370*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm7 371*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm4 372*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebp),%xmm5 373*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,%xmm1 374*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 375*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 376*8fb009dcSAndroid Build Coastguard Worker pand %xmm4,%xmm0 377*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm2 378*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 379*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 380*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm3 381*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 382*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 383*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm4 384*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 385*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm4 386*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm2 387*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 388*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 389*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm3 390*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 391*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 392*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebp),%xmm4 393*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 394*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebp),%xmm0 395*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 396*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 397*8fb009dcSAndroid Build Coastguard Worker pxor %xmm7,%xmm0 398*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm7 399*8fb009dcSAndroid Build Coastguard Worker ret 400*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_schedule_round,.-_vpaes_schedule_round 401*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_schedule_transform 402*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_schedule_transform,@function 403*8fb009dcSAndroid Build Coastguard Worker.align 16 404*8fb009dcSAndroid Build Coastguard Worker_vpaes_schedule_transform: 405*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm2 406*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 407*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 408*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 409*8fb009dcSAndroid Build Coastguard Worker pand %xmm2,%xmm0 410*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm2 411*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 412*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm0 413*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 414*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 415*8fb009dcSAndroid Build Coastguard Worker ret 416*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_schedule_transform,.-_vpaes_schedule_transform 417*8fb009dcSAndroid Build Coastguard Worker.hidden _vpaes_schedule_mangle 418*8fb009dcSAndroid Build Coastguard Worker.type _vpaes_schedule_mangle,@function 419*8fb009dcSAndroid Build Coastguard Worker.align 16 420*8fb009dcSAndroid Build Coastguard Worker_vpaes_schedule_mangle: 421*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm4 422*8fb009dcSAndroid Build Coastguard Worker movdqa 128(%ebp),%xmm5 423*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 424*8fb009dcSAndroid Build Coastguard Worker jnz .L014schedule_mangle_dec 425*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 426*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm4 427*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 428*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,%xmm3 429*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 430*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm3 431*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 432*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm3 433*8fb009dcSAndroid Build Coastguard Worker jmp .L015schedule_mangle_both 434*8fb009dcSAndroid Build Coastguard Worker.align 16 435*8fb009dcSAndroid Build Coastguard Worker.L014schedule_mangle_dec: 436*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm2 437*8fb009dcSAndroid Build Coastguard Worker leal 416(%ebp),%esi 438*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 439*8fb009dcSAndroid Build Coastguard Worker pandn %xmm4,%xmm1 440*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 441*8fb009dcSAndroid Build Coastguard Worker pand %xmm2,%xmm4 442*8fb009dcSAndroid Build Coastguard Worker movdqa (%esi),%xmm2 443*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 444*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%esi),%xmm3 445*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 446*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 447*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 448*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%esi),%xmm2 449*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 450*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 451*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%esi),%xmm3 452*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 453*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 454*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 455*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%esi),%xmm2 456*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 457*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 458*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%esi),%xmm3 459*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 460*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 461*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 462*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%esi),%xmm2 463*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 464*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 465*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%esi),%xmm3 466*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 467*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 468*8fb009dcSAndroid Build Coastguard Worker addl $-16,%edx 469*8fb009dcSAndroid Build Coastguard Worker.L015schedule_mangle_both: 470*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 471*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 472*8fb009dcSAndroid Build Coastguard Worker addl $-16,%ecx 473*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 474*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm3,(%edx) 475*8fb009dcSAndroid Build Coastguard Worker ret 476*8fb009dcSAndroid Build Coastguard Worker.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle 477*8fb009dcSAndroid Build Coastguard Worker.globl vpaes_set_encrypt_key 478*8fb009dcSAndroid Build Coastguard Worker.hidden vpaes_set_encrypt_key 479*8fb009dcSAndroid Build Coastguard Worker.type vpaes_set_encrypt_key,@function 480*8fb009dcSAndroid Build Coastguard Worker.align 16 481*8fb009dcSAndroid Build Coastguard Workervpaes_set_encrypt_key: 482*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_set_encrypt_key_begin: 483*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 484*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 485*8fb009dcSAndroid Build Coastguard Worker pushl %esi 486*8fb009dcSAndroid Build Coastguard Worker pushl %edi 487*8fb009dcSAndroid Build Coastguard Worker#ifdef BORINGSSL_DISPATCH_TEST 488*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 489*8fb009dcSAndroid Build Coastguard Worker pushl %edx 490*8fb009dcSAndroid Build Coastguard Worker call .L016pic_for_function_hit 491*8fb009dcSAndroid Build Coastguard Worker.L016pic_for_function_hit: 492*8fb009dcSAndroid Build Coastguard Worker popl %ebx 493*8fb009dcSAndroid Build Coastguard Worker leal BORINGSSL_function_hit+5-.L016pic_for_function_hit(%ebx),%ebx 494*8fb009dcSAndroid Build Coastguard Worker movl $1,%edx 495*8fb009dcSAndroid Build Coastguard Worker movb %dl,(%ebx) 496*8fb009dcSAndroid Build Coastguard Worker popl %edx 497*8fb009dcSAndroid Build Coastguard Worker popl %ebx 498*8fb009dcSAndroid Build Coastguard Worker#endif 499*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 500*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 501*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%eax 502*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 503*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 504*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 505*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 506*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ebx 507*8fb009dcSAndroid Build Coastguard Worker shrl $5,%ebx 508*8fb009dcSAndroid Build Coastguard Worker addl $5,%ebx 509*8fb009dcSAndroid Build Coastguard Worker movl %ebx,240(%edx) 510*8fb009dcSAndroid Build Coastguard Worker movl $48,%ecx 511*8fb009dcSAndroid Build Coastguard Worker movl $0,%edi 512*8fb009dcSAndroid Build Coastguard Worker leal .L_vpaes_consts+0x30-.L017pic_point,%ebp 513*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_core 514*8fb009dcSAndroid Build Coastguard Worker.L017pic_point: 515*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 516*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 517*8fb009dcSAndroid Build Coastguard Worker popl %edi 518*8fb009dcSAndroid Build Coastguard Worker popl %esi 519*8fb009dcSAndroid Build Coastguard Worker popl %ebx 520*8fb009dcSAndroid Build Coastguard Worker popl %ebp 521*8fb009dcSAndroid Build Coastguard Worker ret 522*8fb009dcSAndroid Build Coastguard Worker.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin 523*8fb009dcSAndroid Build Coastguard Worker.globl vpaes_set_decrypt_key 524*8fb009dcSAndroid Build Coastguard Worker.hidden vpaes_set_decrypt_key 525*8fb009dcSAndroid Build Coastguard Worker.type vpaes_set_decrypt_key,@function 526*8fb009dcSAndroid Build Coastguard Worker.align 16 527*8fb009dcSAndroid Build Coastguard Workervpaes_set_decrypt_key: 528*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_set_decrypt_key_begin: 529*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 530*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 531*8fb009dcSAndroid Build Coastguard Worker pushl %esi 532*8fb009dcSAndroid Build Coastguard Worker pushl %edi 533*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 534*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 535*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%eax 536*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 537*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 538*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 539*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 540*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ebx 541*8fb009dcSAndroid Build Coastguard Worker shrl $5,%ebx 542*8fb009dcSAndroid Build Coastguard Worker addl $5,%ebx 543*8fb009dcSAndroid Build Coastguard Worker movl %ebx,240(%edx) 544*8fb009dcSAndroid Build Coastguard Worker shll $4,%ebx 545*8fb009dcSAndroid Build Coastguard Worker leal 16(%edx,%ebx,1),%edx 546*8fb009dcSAndroid Build Coastguard Worker movl $1,%edi 547*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ecx 548*8fb009dcSAndroid Build Coastguard Worker shrl $1,%ecx 549*8fb009dcSAndroid Build Coastguard Worker andl $32,%ecx 550*8fb009dcSAndroid Build Coastguard Worker xorl $32,%ecx 551*8fb009dcSAndroid Build Coastguard Worker leal .L_vpaes_consts+0x30-.L018pic_point,%ebp 552*8fb009dcSAndroid Build Coastguard Worker call _vpaes_schedule_core 553*8fb009dcSAndroid Build Coastguard Worker.L018pic_point: 554*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 555*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 556*8fb009dcSAndroid Build Coastguard Worker popl %edi 557*8fb009dcSAndroid Build Coastguard Worker popl %esi 558*8fb009dcSAndroid Build Coastguard Worker popl %ebx 559*8fb009dcSAndroid Build Coastguard Worker popl %ebp 560*8fb009dcSAndroid Build Coastguard Worker ret 561*8fb009dcSAndroid Build Coastguard Worker.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin 562*8fb009dcSAndroid Build Coastguard Worker.globl vpaes_encrypt 563*8fb009dcSAndroid Build Coastguard Worker.hidden vpaes_encrypt 564*8fb009dcSAndroid Build Coastguard Worker.type vpaes_encrypt,@function 565*8fb009dcSAndroid Build Coastguard Worker.align 16 566*8fb009dcSAndroid Build Coastguard Workervpaes_encrypt: 567*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_encrypt_begin: 568*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 569*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 570*8fb009dcSAndroid Build Coastguard Worker pushl %esi 571*8fb009dcSAndroid Build Coastguard Worker pushl %edi 572*8fb009dcSAndroid Build Coastguard Worker#ifdef BORINGSSL_DISPATCH_TEST 573*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 574*8fb009dcSAndroid Build Coastguard Worker pushl %edx 575*8fb009dcSAndroid Build Coastguard Worker call .L019pic_for_function_hit 576*8fb009dcSAndroid Build Coastguard Worker.L019pic_for_function_hit: 577*8fb009dcSAndroid Build Coastguard Worker popl %ebx 578*8fb009dcSAndroid Build Coastguard Worker leal BORINGSSL_function_hit+4-.L019pic_for_function_hit(%ebx),%ebx 579*8fb009dcSAndroid Build Coastguard Worker movl $1,%edx 580*8fb009dcSAndroid Build Coastguard Worker movb %dl,(%ebx) 581*8fb009dcSAndroid Build Coastguard Worker popl %edx 582*8fb009dcSAndroid Build Coastguard Worker popl %ebx 583*8fb009dcSAndroid Build Coastguard Worker#endif 584*8fb009dcSAndroid Build Coastguard Worker leal .L_vpaes_consts+0x30-.L020pic_point,%ebp 585*8fb009dcSAndroid Build Coastguard Worker call _vpaes_preheat 586*8fb009dcSAndroid Build Coastguard Worker.L020pic_point: 587*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 588*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 589*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 590*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 591*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 592*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 593*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 594*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 595*8fb009dcSAndroid Build Coastguard Worker call _vpaes_encrypt_core 596*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edi) 597*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 598*8fb009dcSAndroid Build Coastguard Worker popl %edi 599*8fb009dcSAndroid Build Coastguard Worker popl %esi 600*8fb009dcSAndroid Build Coastguard Worker popl %ebx 601*8fb009dcSAndroid Build Coastguard Worker popl %ebp 602*8fb009dcSAndroid Build Coastguard Worker ret 603*8fb009dcSAndroid Build Coastguard Worker.size vpaes_encrypt,.-.L_vpaes_encrypt_begin 604*8fb009dcSAndroid Build Coastguard Worker.globl vpaes_decrypt 605*8fb009dcSAndroid Build Coastguard Worker.hidden vpaes_decrypt 606*8fb009dcSAndroid Build Coastguard Worker.type vpaes_decrypt,@function 607*8fb009dcSAndroid Build Coastguard Worker.align 16 608*8fb009dcSAndroid Build Coastguard Workervpaes_decrypt: 609*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_decrypt_begin: 610*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 611*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 612*8fb009dcSAndroid Build Coastguard Worker pushl %esi 613*8fb009dcSAndroid Build Coastguard Worker pushl %edi 614*8fb009dcSAndroid Build Coastguard Worker leal .L_vpaes_consts+0x30-.L021pic_point,%ebp 615*8fb009dcSAndroid Build Coastguard Worker call _vpaes_preheat 616*8fb009dcSAndroid Build Coastguard Worker.L021pic_point: 617*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 618*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 619*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 620*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 621*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 622*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 623*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 624*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 625*8fb009dcSAndroid Build Coastguard Worker call _vpaes_decrypt_core 626*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edi) 627*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 628*8fb009dcSAndroid Build Coastguard Worker popl %edi 629*8fb009dcSAndroid Build Coastguard Worker popl %esi 630*8fb009dcSAndroid Build Coastguard Worker popl %ebx 631*8fb009dcSAndroid Build Coastguard Worker popl %ebp 632*8fb009dcSAndroid Build Coastguard Worker ret 633*8fb009dcSAndroid Build Coastguard Worker.size vpaes_decrypt,.-.L_vpaes_decrypt_begin 634*8fb009dcSAndroid Build Coastguard Worker.globl vpaes_cbc_encrypt 635*8fb009dcSAndroid Build Coastguard Worker.hidden vpaes_cbc_encrypt 636*8fb009dcSAndroid Build Coastguard Worker.type vpaes_cbc_encrypt,@function 637*8fb009dcSAndroid Build Coastguard Worker.align 16 638*8fb009dcSAndroid Build Coastguard Workervpaes_cbc_encrypt: 639*8fb009dcSAndroid Build Coastguard Worker.L_vpaes_cbc_encrypt_begin: 640*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 641*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 642*8fb009dcSAndroid Build Coastguard Worker pushl %esi 643*8fb009dcSAndroid Build Coastguard Worker pushl %edi 644*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 645*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 646*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%eax 647*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%edx 648*8fb009dcSAndroid Build Coastguard Worker subl $16,%eax 649*8fb009dcSAndroid Build Coastguard Worker jc .L022cbc_abort 650*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 651*8fb009dcSAndroid Build Coastguard Worker movl 36(%esp),%ebp 652*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 653*8fb009dcSAndroid Build Coastguard Worker movl 40(%esp),%ecx 654*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 655*8fb009dcSAndroid Build Coastguard Worker movdqu (%ebp),%xmm1 656*8fb009dcSAndroid Build Coastguard Worker subl %esi,%edi 657*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 658*8fb009dcSAndroid Build Coastguard Worker movl %edi,(%esp) 659*8fb009dcSAndroid Build Coastguard Worker movl %edx,4(%esp) 660*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%esp) 661*8fb009dcSAndroid Build Coastguard Worker movl %eax,%edi 662*8fb009dcSAndroid Build Coastguard Worker leal .L_vpaes_consts+0x30-.L023pic_point,%ebp 663*8fb009dcSAndroid Build Coastguard Worker call _vpaes_preheat 664*8fb009dcSAndroid Build Coastguard Worker.L023pic_point: 665*8fb009dcSAndroid Build Coastguard Worker cmpl $0,%ecx 666*8fb009dcSAndroid Build Coastguard Worker je .L024cbc_dec_loop 667*8fb009dcSAndroid Build Coastguard Worker jmp .L025cbc_enc_loop 668*8fb009dcSAndroid Build Coastguard Worker.align 16 669*8fb009dcSAndroid Build Coastguard Worker.L025cbc_enc_loop: 670*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 671*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 672*8fb009dcSAndroid Build Coastguard Worker call _vpaes_encrypt_core 673*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%ebx 674*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%edx 675*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 676*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%ebx,%esi,1) 677*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 678*8fb009dcSAndroid Build Coastguard Worker subl $16,%edi 679*8fb009dcSAndroid Build Coastguard Worker jnc .L025cbc_enc_loop 680*8fb009dcSAndroid Build Coastguard Worker jmp .L026cbc_done 681*8fb009dcSAndroid Build Coastguard Worker.align 16 682*8fb009dcSAndroid Build Coastguard Worker.L024cbc_dec_loop: 683*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 684*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,16(%esp) 685*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,32(%esp) 686*8fb009dcSAndroid Build Coastguard Worker call _vpaes_decrypt_core 687*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%ebx 688*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%edx 689*8fb009dcSAndroid Build Coastguard Worker pxor 16(%esp),%xmm0 690*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%esp),%xmm1 691*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%ebx,%esi,1) 692*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 693*8fb009dcSAndroid Build Coastguard Worker subl $16,%edi 694*8fb009dcSAndroid Build Coastguard Worker jnc .L024cbc_dec_loop 695*8fb009dcSAndroid Build Coastguard Worker.L026cbc_done: 696*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%ebx 697*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 698*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm1,(%ebx) 699*8fb009dcSAndroid Build Coastguard Worker.L022cbc_abort: 700*8fb009dcSAndroid Build Coastguard Worker popl %edi 701*8fb009dcSAndroid Build Coastguard Worker popl %esi 702*8fb009dcSAndroid Build Coastguard Worker popl %ebx 703*8fb009dcSAndroid Build Coastguard Worker popl %ebp 704*8fb009dcSAndroid Build Coastguard Worker ret 705*8fb009dcSAndroid Build Coastguard Worker.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin 706*8fb009dcSAndroid Build Coastguard Worker#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 707