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.align 6,0x90 11*8fb009dcSAndroid Build Coastguard WorkerL_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 6,0x90 67*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_preheat 68*8fb009dcSAndroid Build Coastguard Worker.align 4 69*8fb009dcSAndroid Build Coastguard Worker__vpaes_preheat: 70*8fb009dcSAndroid Build Coastguard Worker addl (%esp),%ebp 71*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebp),%xmm7 72*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm6 73*8fb009dcSAndroid Build Coastguard Worker ret 74*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_encrypt_core 75*8fb009dcSAndroid Build Coastguard Worker.align 4 76*8fb009dcSAndroid Build Coastguard Worker__vpaes_encrypt_core: 77*8fb009dcSAndroid Build Coastguard Worker movl $16,%ecx 78*8fb009dcSAndroid Build Coastguard Worker movl 240(%edx),%eax 79*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 80*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebp),%xmm2 81*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 82*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 83*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 84*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 85*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebp),%xmm0 86*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 87*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 88*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 89*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 90*8fb009dcSAndroid Build Coastguard Worker leal 192(%ebp),%ebx 91*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 92*8fb009dcSAndroid Build Coastguard Worker jmp L000enc_entry 93*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 94*8fb009dcSAndroid Build Coastguard WorkerL001enc_loop: 95*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebp),%xmm4 96*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebp),%xmm0 97*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 98*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 99*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 100*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebp),%xmm5 101*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 102*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx,%ecx,1),%xmm1 103*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,234 104*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebp),%xmm2 105*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx,%ecx,1),%xmm4 106*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 107*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm3 108*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 109*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 110*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 111*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 112*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 113*8fb009dcSAndroid Build Coastguard Worker addl $16,%ecx 114*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 115*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 116*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 117*8fb009dcSAndroid Build Coastguard Worker subl $1,%eax 118*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm0 119*8fb009dcSAndroid Build Coastguard WorkerL000enc_entry: 120*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 121*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm5 122*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 123*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 124*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 125*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,232 126*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 127*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 128*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 129*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm4 130*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 131*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 132*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm2 133*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 134*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 135*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 136*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 137*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 138*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 139*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 140*8fb009dcSAndroid Build Coastguard Worker jnz L001enc_loop 141*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebp),%xmm4 142*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebp),%xmm0 143*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 144*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm4 145*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 146*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx,%ecx,1),%xmm1 147*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 148*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 149*8fb009dcSAndroid Build Coastguard Worker ret 150*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_decrypt_core 151*8fb009dcSAndroid Build Coastguard Worker.align 4 152*8fb009dcSAndroid Build Coastguard Worker__vpaes_decrypt_core: 153*8fb009dcSAndroid Build Coastguard Worker leal 608(%ebp),%ebx 154*8fb009dcSAndroid Build Coastguard Worker movl 240(%edx),%eax 155*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 156*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx),%xmm2 157*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 158*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ecx 159*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 160*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm5 161*8fb009dcSAndroid Build Coastguard Worker shll $4,%ecx 162*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 163*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 164*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebx),%xmm0 165*8fb009dcSAndroid Build Coastguard Worker xorl $48,%ecx 166*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 167*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 168*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm2 169*8fb009dcSAndroid Build Coastguard Worker movdqa 176(%ebp),%xmm5 170*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 171*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 172*8fb009dcSAndroid Build Coastguard Worker leal -352(%ebx,%ecx,1),%ecx 173*8fb009dcSAndroid Build Coastguard Worker jmp L002dec_entry 174*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 175*8fb009dcSAndroid Build Coastguard WorkerL003dec_loop: 176*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebx),%xmm4 177*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebx),%xmm1 178*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 179*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 180*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 181*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm4 182*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 183*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm1 184*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 185*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 186*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 187*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 188*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebx),%xmm4 189*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 190*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebx),%xmm1 191*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 192*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 193*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 194*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 195*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx),%xmm4 196*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 197*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebx),%xmm1 198*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 199*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,197 200*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,203 201*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 202*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 203*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,237,12 204*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 205*8fb009dcSAndroid Build Coastguard Worker subl $1,%eax 206*8fb009dcSAndroid Build Coastguard WorkerL002dec_entry: 207*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm1 208*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm2 209*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 210*8fb009dcSAndroid Build Coastguard Worker pand %xmm6,%xmm0 211*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 212*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 213*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 214*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 215*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 216*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm4 217*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 218*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 219*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm4 220*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm2 221*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 222*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm3 223*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 224*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 225*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm0 226*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 227*8fb009dcSAndroid Build Coastguard Worker jnz L003dec_loop 228*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebx),%xmm4 229*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 230*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 231*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebx),%xmm0 232*8fb009dcSAndroid Build Coastguard Worker movdqa (%ecx),%xmm2 233*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 234*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 235*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,194 236*8fb009dcSAndroid Build Coastguard Worker ret 237*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_schedule_core 238*8fb009dcSAndroid Build Coastguard Worker.align 4 239*8fb009dcSAndroid Build Coastguard Worker__vpaes_schedule_core: 240*8fb009dcSAndroid Build Coastguard Worker addl (%esp),%ebp 241*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 242*8fb009dcSAndroid Build Coastguard Worker movdqa 320(%ebp),%xmm2 243*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm3 244*8fb009dcSAndroid Build Coastguard Worker leal (%ebp),%ebx 245*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,4(%esp) 246*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_transform 247*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm7 248*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 249*8fb009dcSAndroid Build Coastguard Worker jnz L004schedule_am_decrypting 250*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edx) 251*8fb009dcSAndroid Build Coastguard Worker jmp L005schedule_go 252*8fb009dcSAndroid Build Coastguard WorkerL004schedule_am_decrypting: 253*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 254*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 255*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm3,(%edx) 256*8fb009dcSAndroid Build Coastguard Worker xorl $48,%ecx 257*8fb009dcSAndroid Build Coastguard WorkerL005schedule_go: 258*8fb009dcSAndroid Build Coastguard Worker cmpl $192,%eax 259*8fb009dcSAndroid Build Coastguard Worker ja L006schedule_256 260*8fb009dcSAndroid Build Coastguard Worker je L007schedule_192 261*8fb009dcSAndroid Build Coastguard WorkerL008schedule_128: 262*8fb009dcSAndroid Build Coastguard Worker movl $10,%eax 263*8fb009dcSAndroid Build Coastguard WorkerL009loop_schedule_128: 264*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_round 265*8fb009dcSAndroid Build Coastguard Worker decl %eax 266*8fb009dcSAndroid Build Coastguard Worker jz L010schedule_mangle_last 267*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 268*8fb009dcSAndroid Build Coastguard Worker jmp L009loop_schedule_128 269*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 270*8fb009dcSAndroid Build Coastguard WorkerL007schedule_192: 271*8fb009dcSAndroid Build Coastguard Worker movdqu 8(%esi),%xmm0 272*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_transform 273*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 274*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm4 275*8fb009dcSAndroid Build Coastguard Worker movhlps %xmm4,%xmm6 276*8fb009dcSAndroid Build Coastguard Worker movl $4,%eax 277*8fb009dcSAndroid Build Coastguard WorkerL011loop_schedule_192: 278*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_round 279*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,198,8 280*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 281*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_192_smear 282*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 283*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_round 284*8fb009dcSAndroid Build Coastguard Worker decl %eax 285*8fb009dcSAndroid Build Coastguard Worker jz L010schedule_mangle_last 286*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 287*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_192_smear 288*8fb009dcSAndroid Build Coastguard Worker jmp L011loop_schedule_192 289*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 290*8fb009dcSAndroid Build Coastguard WorkerL006schedule_256: 291*8fb009dcSAndroid Build Coastguard Worker movdqu 16(%esi),%xmm0 292*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_transform 293*8fb009dcSAndroid Build Coastguard Worker movl $7,%eax 294*8fb009dcSAndroid Build Coastguard WorkerL012loop_schedule_256: 295*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 296*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 297*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_round 298*8fb009dcSAndroid Build Coastguard Worker decl %eax 299*8fb009dcSAndroid Build Coastguard Worker jz L010schedule_mangle_last 300*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_mangle 301*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm0,%xmm0 302*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,20(%esp) 303*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm7 304*8fb009dcSAndroid Build Coastguard Worker call L_vpaes_schedule_low_round 305*8fb009dcSAndroid Build Coastguard Worker movdqa 20(%esp),%xmm7 306*8fb009dcSAndroid Build Coastguard Worker jmp L012loop_schedule_256 307*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 308*8fb009dcSAndroid Build Coastguard WorkerL010schedule_mangle_last: 309*8fb009dcSAndroid Build Coastguard Worker leal 384(%ebp),%ebx 310*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 311*8fb009dcSAndroid Build Coastguard Worker jnz L013schedule_mangle_last_dec 312*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 313*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 314*8fb009dcSAndroid Build Coastguard Worker leal 352(%ebp),%ebx 315*8fb009dcSAndroid Build Coastguard Worker addl $32,%edx 316*8fb009dcSAndroid Build Coastguard WorkerL013schedule_mangle_last_dec: 317*8fb009dcSAndroid Build Coastguard Worker addl $-16,%edx 318*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm0 319*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_transform 320*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edx) 321*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm0 322*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 323*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm2 324*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm3 325*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm4 326*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm5 327*8fb009dcSAndroid Build Coastguard Worker pxor %xmm6,%xmm6 328*8fb009dcSAndroid Build Coastguard Worker pxor %xmm7,%xmm7 329*8fb009dcSAndroid Build Coastguard Worker ret 330*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_schedule_192_smear 331*8fb009dcSAndroid Build Coastguard Worker.align 4 332*8fb009dcSAndroid Build Coastguard Worker__vpaes_schedule_192_smear: 333*8fb009dcSAndroid Build Coastguard Worker pshufd $128,%xmm6,%xmm1 334*8fb009dcSAndroid Build Coastguard Worker pshufd $254,%xmm7,%xmm0 335*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm6 336*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 337*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 338*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm0 339*8fb009dcSAndroid Build Coastguard Worker movhlps %xmm1,%xmm6 340*8fb009dcSAndroid Build Coastguard Worker ret 341*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_schedule_round 342*8fb009dcSAndroid Build Coastguard Worker.align 4 343*8fb009dcSAndroid Build Coastguard Worker__vpaes_schedule_round: 344*8fb009dcSAndroid Build Coastguard Worker movdqa 8(%esp),%xmm2 345*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm1 346*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,202,15 347*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,210,15 348*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 349*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm0,%xmm0 350*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,58,15,192,1 351*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,8(%esp) 352*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_schedule_low_round: 353*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm1 354*8fb009dcSAndroid Build Coastguard Worker pslldq $4,%xmm7 355*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 356*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm1 357*8fb009dcSAndroid Build Coastguard Worker pslldq $8,%xmm7 358*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 359*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm7 360*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm4 361*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebp),%xmm5 362*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,%xmm1 363*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 364*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 365*8fb009dcSAndroid Build Coastguard Worker pand %xmm4,%xmm0 366*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm2 367*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 368*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 369*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm3 370*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 371*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 372*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm4 373*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,224 374*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm4 375*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm2 376*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,211 377*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm2 378*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,%xmm3 379*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,220 380*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm3 381*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebp),%xmm4 382*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,226 383*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebp),%xmm0 384*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,195 385*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 386*8fb009dcSAndroid Build Coastguard Worker pxor %xmm7,%xmm0 387*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm7 388*8fb009dcSAndroid Build Coastguard Worker ret 389*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_schedule_transform 390*8fb009dcSAndroid Build Coastguard Worker.align 4 391*8fb009dcSAndroid Build Coastguard Worker__vpaes_schedule_transform: 392*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm2 393*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 394*8fb009dcSAndroid Build Coastguard Worker pandn %xmm0,%xmm1 395*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 396*8fb009dcSAndroid Build Coastguard Worker pand %xmm2,%xmm0 397*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm2 398*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,208 399*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm0 400*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,193 401*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm0 402*8fb009dcSAndroid Build Coastguard Worker ret 403*8fb009dcSAndroid Build Coastguard Worker.private_extern __vpaes_schedule_mangle 404*8fb009dcSAndroid Build Coastguard Worker.align 4 405*8fb009dcSAndroid Build Coastguard Worker__vpaes_schedule_mangle: 406*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm4 407*8fb009dcSAndroid Build Coastguard Worker movdqa 128(%ebp),%xmm5 408*8fb009dcSAndroid Build Coastguard Worker testl %edi,%edi 409*8fb009dcSAndroid Build Coastguard Worker jnz L014schedule_mangle_dec 410*8fb009dcSAndroid Build Coastguard Worker addl $16,%edx 411*8fb009dcSAndroid Build Coastguard Worker pxor 336(%ebp),%xmm4 412*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 413*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,%xmm3 414*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 415*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm3 416*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,229 417*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm3 418*8fb009dcSAndroid Build Coastguard Worker jmp L015schedule_mangle_both 419*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 420*8fb009dcSAndroid Build Coastguard WorkerL014schedule_mangle_dec: 421*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm2 422*8fb009dcSAndroid Build Coastguard Worker leal 416(%ebp),%esi 423*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 424*8fb009dcSAndroid Build Coastguard Worker pandn %xmm4,%xmm1 425*8fb009dcSAndroid Build Coastguard Worker psrld $4,%xmm1 426*8fb009dcSAndroid Build Coastguard Worker pand %xmm2,%xmm4 427*8fb009dcSAndroid Build Coastguard Worker movdqa (%esi),%xmm2 428*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 429*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%esi),%xmm3 430*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 431*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 432*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 433*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%esi),%xmm2 434*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 435*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 436*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%esi),%xmm3 437*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 438*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 439*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 440*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%esi),%xmm2 441*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 442*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 443*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%esi),%xmm3 444*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 445*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 446*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,221 447*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%esi),%xmm2 448*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,212 449*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm2 450*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%esi),%xmm3 451*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 452*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm3 453*8fb009dcSAndroid Build Coastguard Worker addl $-16,%edx 454*8fb009dcSAndroid Build Coastguard WorkerL015schedule_mangle_both: 455*8fb009dcSAndroid Build Coastguard Worker movdqa 256(%ebp,%ecx,1),%xmm1 456*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,217 457*8fb009dcSAndroid Build Coastguard Worker addl $-16,%ecx 458*8fb009dcSAndroid Build Coastguard Worker andl $48,%ecx 459*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm3,(%edx) 460*8fb009dcSAndroid Build Coastguard Worker ret 461*8fb009dcSAndroid Build Coastguard Worker.globl _vpaes_set_encrypt_key 462*8fb009dcSAndroid Build Coastguard Worker.private_extern _vpaes_set_encrypt_key 463*8fb009dcSAndroid Build Coastguard Worker.align 4 464*8fb009dcSAndroid Build Coastguard Worker_vpaes_set_encrypt_key: 465*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_set_encrypt_key_begin: 466*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 467*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 468*8fb009dcSAndroid Build Coastguard Worker pushl %esi 469*8fb009dcSAndroid Build Coastguard Worker pushl %edi 470*8fb009dcSAndroid Build Coastguard Worker#ifdef BORINGSSL_DISPATCH_TEST 471*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 472*8fb009dcSAndroid Build Coastguard Worker pushl %edx 473*8fb009dcSAndroid Build Coastguard Worker call L016pic_for_function_hit 474*8fb009dcSAndroid Build Coastguard WorkerL016pic_for_function_hit: 475*8fb009dcSAndroid Build Coastguard Worker popl %ebx 476*8fb009dcSAndroid Build Coastguard Worker leal _BORINGSSL_function_hit+5-L016pic_for_function_hit(%ebx),%ebx 477*8fb009dcSAndroid Build Coastguard Worker movl $1,%edx 478*8fb009dcSAndroid Build Coastguard Worker movb %dl,(%ebx) 479*8fb009dcSAndroid Build Coastguard Worker popl %edx 480*8fb009dcSAndroid Build Coastguard Worker popl %ebx 481*8fb009dcSAndroid Build Coastguard Worker#endif 482*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 483*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 484*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%eax 485*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 486*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 487*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 488*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 489*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ebx 490*8fb009dcSAndroid Build Coastguard Worker shrl $5,%ebx 491*8fb009dcSAndroid Build Coastguard Worker addl $5,%ebx 492*8fb009dcSAndroid Build Coastguard Worker movl %ebx,240(%edx) 493*8fb009dcSAndroid Build Coastguard Worker movl $48,%ecx 494*8fb009dcSAndroid Build Coastguard Worker movl $0,%edi 495*8fb009dcSAndroid Build Coastguard Worker leal L_vpaes_consts+0x30-L017pic_point,%ebp 496*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_core 497*8fb009dcSAndroid Build Coastguard WorkerL017pic_point: 498*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 499*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 500*8fb009dcSAndroid Build Coastguard Worker popl %edi 501*8fb009dcSAndroid Build Coastguard Worker popl %esi 502*8fb009dcSAndroid Build Coastguard Worker popl %ebx 503*8fb009dcSAndroid Build Coastguard Worker popl %ebp 504*8fb009dcSAndroid Build Coastguard Worker ret 505*8fb009dcSAndroid Build Coastguard Worker.globl _vpaes_set_decrypt_key 506*8fb009dcSAndroid Build Coastguard Worker.private_extern _vpaes_set_decrypt_key 507*8fb009dcSAndroid Build Coastguard Worker.align 4 508*8fb009dcSAndroid Build Coastguard Worker_vpaes_set_decrypt_key: 509*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_set_decrypt_key_begin: 510*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 511*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 512*8fb009dcSAndroid Build Coastguard Worker pushl %esi 513*8fb009dcSAndroid Build Coastguard Worker pushl %edi 514*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 515*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 516*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%eax 517*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 518*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 519*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 520*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 521*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ebx 522*8fb009dcSAndroid Build Coastguard Worker shrl $5,%ebx 523*8fb009dcSAndroid Build Coastguard Worker addl $5,%ebx 524*8fb009dcSAndroid Build Coastguard Worker movl %ebx,240(%edx) 525*8fb009dcSAndroid Build Coastguard Worker shll $4,%ebx 526*8fb009dcSAndroid Build Coastguard Worker leal 16(%edx,%ebx,1),%edx 527*8fb009dcSAndroid Build Coastguard Worker movl $1,%edi 528*8fb009dcSAndroid Build Coastguard Worker movl %eax,%ecx 529*8fb009dcSAndroid Build Coastguard Worker shrl $1,%ecx 530*8fb009dcSAndroid Build Coastguard Worker andl $32,%ecx 531*8fb009dcSAndroid Build Coastguard Worker xorl $32,%ecx 532*8fb009dcSAndroid Build Coastguard Worker leal L_vpaes_consts+0x30-L018pic_point,%ebp 533*8fb009dcSAndroid Build Coastguard Worker call __vpaes_schedule_core 534*8fb009dcSAndroid Build Coastguard WorkerL018pic_point: 535*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 536*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 537*8fb009dcSAndroid Build Coastguard Worker popl %edi 538*8fb009dcSAndroid Build Coastguard Worker popl %esi 539*8fb009dcSAndroid Build Coastguard Worker popl %ebx 540*8fb009dcSAndroid Build Coastguard Worker popl %ebp 541*8fb009dcSAndroid Build Coastguard Worker ret 542*8fb009dcSAndroid Build Coastguard Worker.globl _vpaes_encrypt 543*8fb009dcSAndroid Build Coastguard Worker.private_extern _vpaes_encrypt 544*8fb009dcSAndroid Build Coastguard Worker.align 4 545*8fb009dcSAndroid Build Coastguard Worker_vpaes_encrypt: 546*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_encrypt_begin: 547*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 548*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 549*8fb009dcSAndroid Build Coastguard Worker pushl %esi 550*8fb009dcSAndroid Build Coastguard Worker pushl %edi 551*8fb009dcSAndroid Build Coastguard Worker#ifdef BORINGSSL_DISPATCH_TEST 552*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 553*8fb009dcSAndroid Build Coastguard Worker pushl %edx 554*8fb009dcSAndroid Build Coastguard Worker call L019pic_for_function_hit 555*8fb009dcSAndroid Build Coastguard WorkerL019pic_for_function_hit: 556*8fb009dcSAndroid Build Coastguard Worker popl %ebx 557*8fb009dcSAndroid Build Coastguard Worker leal _BORINGSSL_function_hit+4-L019pic_for_function_hit(%ebx),%ebx 558*8fb009dcSAndroid Build Coastguard Worker movl $1,%edx 559*8fb009dcSAndroid Build Coastguard Worker movb %dl,(%ebx) 560*8fb009dcSAndroid Build Coastguard Worker popl %edx 561*8fb009dcSAndroid Build Coastguard Worker popl %ebx 562*8fb009dcSAndroid Build Coastguard Worker#endif 563*8fb009dcSAndroid Build Coastguard Worker leal L_vpaes_consts+0x30-L020pic_point,%ebp 564*8fb009dcSAndroid Build Coastguard Worker call __vpaes_preheat 565*8fb009dcSAndroid Build Coastguard WorkerL020pic_point: 566*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 567*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 568*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 569*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 570*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 571*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 572*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 573*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 574*8fb009dcSAndroid Build Coastguard Worker call __vpaes_encrypt_core 575*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edi) 576*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 577*8fb009dcSAndroid Build Coastguard Worker popl %edi 578*8fb009dcSAndroid Build Coastguard Worker popl %esi 579*8fb009dcSAndroid Build Coastguard Worker popl %ebx 580*8fb009dcSAndroid Build Coastguard Worker popl %ebp 581*8fb009dcSAndroid Build Coastguard Worker ret 582*8fb009dcSAndroid Build Coastguard Worker.globl _vpaes_decrypt 583*8fb009dcSAndroid Build Coastguard Worker.private_extern _vpaes_decrypt 584*8fb009dcSAndroid Build Coastguard Worker.align 4 585*8fb009dcSAndroid Build Coastguard Worker_vpaes_decrypt: 586*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_decrypt_begin: 587*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 588*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 589*8fb009dcSAndroid Build Coastguard Worker pushl %esi 590*8fb009dcSAndroid Build Coastguard Worker pushl %edi 591*8fb009dcSAndroid Build Coastguard Worker leal L_vpaes_consts+0x30-L021pic_point,%ebp 592*8fb009dcSAndroid Build Coastguard Worker call __vpaes_preheat 593*8fb009dcSAndroid Build Coastguard WorkerL021pic_point: 594*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 595*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 596*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 597*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 598*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edx 599*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 600*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 601*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 602*8fb009dcSAndroid Build Coastguard Worker call __vpaes_decrypt_core 603*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edi) 604*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 605*8fb009dcSAndroid Build Coastguard Worker popl %edi 606*8fb009dcSAndroid Build Coastguard Worker popl %esi 607*8fb009dcSAndroid Build Coastguard Worker popl %ebx 608*8fb009dcSAndroid Build Coastguard Worker popl %ebp 609*8fb009dcSAndroid Build Coastguard Worker ret 610*8fb009dcSAndroid Build Coastguard Worker.globl _vpaes_cbc_encrypt 611*8fb009dcSAndroid Build Coastguard Worker.private_extern _vpaes_cbc_encrypt 612*8fb009dcSAndroid Build Coastguard Worker.align 4 613*8fb009dcSAndroid Build Coastguard Worker_vpaes_cbc_encrypt: 614*8fb009dcSAndroid Build Coastguard WorkerL_vpaes_cbc_encrypt_begin: 615*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 616*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 617*8fb009dcSAndroid Build Coastguard Worker pushl %esi 618*8fb009dcSAndroid Build Coastguard Worker pushl %edi 619*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%esi 620*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 621*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%eax 622*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%edx 623*8fb009dcSAndroid Build Coastguard Worker subl $16,%eax 624*8fb009dcSAndroid Build Coastguard Worker jc L022cbc_abort 625*8fb009dcSAndroid Build Coastguard Worker leal -56(%esp),%ebx 626*8fb009dcSAndroid Build Coastguard Worker movl 36(%esp),%ebp 627*8fb009dcSAndroid Build Coastguard Worker andl $-16,%ebx 628*8fb009dcSAndroid Build Coastguard Worker movl 40(%esp),%ecx 629*8fb009dcSAndroid Build Coastguard Worker xchgl %esp,%ebx 630*8fb009dcSAndroid Build Coastguard Worker movdqu (%ebp),%xmm1 631*8fb009dcSAndroid Build Coastguard Worker subl %esi,%edi 632*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%esp) 633*8fb009dcSAndroid Build Coastguard Worker movl %edi,(%esp) 634*8fb009dcSAndroid Build Coastguard Worker movl %edx,4(%esp) 635*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%esp) 636*8fb009dcSAndroid Build Coastguard Worker movl %eax,%edi 637*8fb009dcSAndroid Build Coastguard Worker leal L_vpaes_consts+0x30-L023pic_point,%ebp 638*8fb009dcSAndroid Build Coastguard Worker call __vpaes_preheat 639*8fb009dcSAndroid Build Coastguard WorkerL023pic_point: 640*8fb009dcSAndroid Build Coastguard Worker cmpl $0,%ecx 641*8fb009dcSAndroid Build Coastguard Worker je L024cbc_dec_loop 642*8fb009dcSAndroid Build Coastguard Worker jmp L025cbc_enc_loop 643*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 644*8fb009dcSAndroid Build Coastguard WorkerL025cbc_enc_loop: 645*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 646*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm0 647*8fb009dcSAndroid Build Coastguard Worker call __vpaes_encrypt_core 648*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%ebx 649*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%edx 650*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 651*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%ebx,%esi,1) 652*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 653*8fb009dcSAndroid Build Coastguard Worker subl $16,%edi 654*8fb009dcSAndroid Build Coastguard Worker jnc L025cbc_enc_loop 655*8fb009dcSAndroid Build Coastguard Worker jmp L026cbc_done 656*8fb009dcSAndroid Build Coastguard Worker.align 4,0x90 657*8fb009dcSAndroid Build Coastguard WorkerL024cbc_dec_loop: 658*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm0 659*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,16(%esp) 660*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,32(%esp) 661*8fb009dcSAndroid Build Coastguard Worker call __vpaes_decrypt_core 662*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%ebx 663*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%edx 664*8fb009dcSAndroid Build Coastguard Worker pxor 16(%esp),%xmm0 665*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%esp),%xmm1 666*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%ebx,%esi,1) 667*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 668*8fb009dcSAndroid Build Coastguard Worker subl $16,%edi 669*8fb009dcSAndroid Build Coastguard Worker jnc L024cbc_dec_loop 670*8fb009dcSAndroid Build Coastguard WorkerL026cbc_done: 671*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%ebx 672*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%esp 673*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm1,(%ebx) 674*8fb009dcSAndroid Build Coastguard WorkerL022cbc_abort: 675*8fb009dcSAndroid Build Coastguard Worker popl %edi 676*8fb009dcSAndroid Build Coastguard Worker popl %esi 677*8fb009dcSAndroid Build Coastguard Worker popl %ebx 678*8fb009dcSAndroid Build Coastguard Worker popl %ebp 679*8fb009dcSAndroid Build Coastguard Worker ret 680*8fb009dcSAndroid Build Coastguard Worker#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) 681