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%ifdef BORINGSSL_PREFIX 5*8fb009dcSAndroid Build Coastguard Worker%include "boringssl_prefix_symbols_nasm.inc" 6*8fb009dcSAndroid Build Coastguard Worker%endif 7*8fb009dcSAndroid Build Coastguard Worker%ifidn __OUTPUT_FORMAT__, win32 8*8fb009dcSAndroid Build Coastguard Worker%ifidn __OUTPUT_FORMAT__,obj 9*8fb009dcSAndroid Build Coastguard Workersection code use32 class=code align=64 10*8fb009dcSAndroid Build Coastguard Worker%elifidn __OUTPUT_FORMAT__,win32 11*8fb009dcSAndroid Build Coastguard Worker$@feat.00 equ 1 12*8fb009dcSAndroid Build Coastguard Workersection .text code align=64 13*8fb009dcSAndroid Build Coastguard Worker%else 14*8fb009dcSAndroid Build Coastguard Workersection .text code 15*8fb009dcSAndroid Build Coastguard Worker%endif 16*8fb009dcSAndroid Build Coastguard Workerglobal _bn_mul_mont 17*8fb009dcSAndroid Build Coastguard Workeralign 16 18*8fb009dcSAndroid Build Coastguard Worker_bn_mul_mont: 19*8fb009dcSAndroid Build Coastguard WorkerL$_bn_mul_mont_begin: 20*8fb009dcSAndroid Build Coastguard Worker push ebp 21*8fb009dcSAndroid Build Coastguard Worker push ebx 22*8fb009dcSAndroid Build Coastguard Worker push esi 23*8fb009dcSAndroid Build Coastguard Worker push edi 24*8fb009dcSAndroid Build Coastguard Worker xor eax,eax 25*8fb009dcSAndroid Build Coastguard Worker mov edi,DWORD [40+esp] 26*8fb009dcSAndroid Build Coastguard Worker cmp edi,4 27*8fb009dcSAndroid Build Coastguard Worker jl NEAR L$000just_leave 28*8fb009dcSAndroid Build Coastguard Worker lea esi,[20+esp] 29*8fb009dcSAndroid Build Coastguard Worker lea edx,[24+esp] 30*8fb009dcSAndroid Build Coastguard Worker add edi,2 31*8fb009dcSAndroid Build Coastguard Worker neg edi 32*8fb009dcSAndroid Build Coastguard Worker lea ebp,[edi*4+esp-32] 33*8fb009dcSAndroid Build Coastguard Worker neg edi 34*8fb009dcSAndroid Build Coastguard Worker mov eax,ebp 35*8fb009dcSAndroid Build Coastguard Worker sub eax,edx 36*8fb009dcSAndroid Build Coastguard Worker and eax,2047 37*8fb009dcSAndroid Build Coastguard Worker sub ebp,eax 38*8fb009dcSAndroid Build Coastguard Worker xor edx,ebp 39*8fb009dcSAndroid Build Coastguard Worker and edx,2048 40*8fb009dcSAndroid Build Coastguard Worker xor edx,2048 41*8fb009dcSAndroid Build Coastguard Worker sub ebp,edx 42*8fb009dcSAndroid Build Coastguard Worker and ebp,-64 43*8fb009dcSAndroid Build Coastguard Worker mov eax,esp 44*8fb009dcSAndroid Build Coastguard Worker sub eax,ebp 45*8fb009dcSAndroid Build Coastguard Worker and eax,-4096 46*8fb009dcSAndroid Build Coastguard Worker mov edx,esp 47*8fb009dcSAndroid Build Coastguard Worker lea esp,[eax*1+ebp] 48*8fb009dcSAndroid Build Coastguard Worker mov eax,DWORD [esp] 49*8fb009dcSAndroid Build Coastguard Worker cmp esp,ebp 50*8fb009dcSAndroid Build Coastguard Worker ja NEAR L$001page_walk 51*8fb009dcSAndroid Build Coastguard Worker jmp NEAR L$002page_walk_done 52*8fb009dcSAndroid Build Coastguard Workeralign 16 53*8fb009dcSAndroid Build Coastguard WorkerL$001page_walk: 54*8fb009dcSAndroid Build Coastguard Worker lea esp,[esp-4096] 55*8fb009dcSAndroid Build Coastguard Worker mov eax,DWORD [esp] 56*8fb009dcSAndroid Build Coastguard Worker cmp esp,ebp 57*8fb009dcSAndroid Build Coastguard Worker ja NEAR L$001page_walk 58*8fb009dcSAndroid Build Coastguard WorkerL$002page_walk_done: 59*8fb009dcSAndroid Build Coastguard Worker mov eax,DWORD [esi] 60*8fb009dcSAndroid Build Coastguard Worker mov ebx,DWORD [4+esi] 61*8fb009dcSAndroid Build Coastguard Worker mov ecx,DWORD [8+esi] 62*8fb009dcSAndroid Build Coastguard Worker mov ebp,DWORD [12+esi] 63*8fb009dcSAndroid Build Coastguard Worker mov esi,DWORD [16+esi] 64*8fb009dcSAndroid Build Coastguard Worker mov esi,DWORD [esi] 65*8fb009dcSAndroid Build Coastguard Worker mov DWORD [4+esp],eax 66*8fb009dcSAndroid Build Coastguard Worker mov DWORD [8+esp],ebx 67*8fb009dcSAndroid Build Coastguard Worker mov DWORD [12+esp],ecx 68*8fb009dcSAndroid Build Coastguard Worker mov DWORD [16+esp],ebp 69*8fb009dcSAndroid Build Coastguard Worker mov DWORD [20+esp],esi 70*8fb009dcSAndroid Build Coastguard Worker lea ebx,[edi-3] 71*8fb009dcSAndroid Build Coastguard Worker mov DWORD [24+esp],edx 72*8fb009dcSAndroid Build Coastguard Worker mov eax,-1 73*8fb009dcSAndroid Build Coastguard Worker movd mm7,eax 74*8fb009dcSAndroid Build Coastguard Worker mov esi,DWORD [8+esp] 75*8fb009dcSAndroid Build Coastguard Worker mov edi,DWORD [12+esp] 76*8fb009dcSAndroid Build Coastguard Worker mov ebp,DWORD [16+esp] 77*8fb009dcSAndroid Build Coastguard Worker xor edx,edx 78*8fb009dcSAndroid Build Coastguard Worker xor ecx,ecx 79*8fb009dcSAndroid Build Coastguard Worker movd mm4,DWORD [edi] 80*8fb009dcSAndroid Build Coastguard Worker movd mm5,DWORD [esi] 81*8fb009dcSAndroid Build Coastguard Worker movd mm3,DWORD [ebp] 82*8fb009dcSAndroid Build Coastguard Worker pmuludq mm5,mm4 83*8fb009dcSAndroid Build Coastguard Worker movq mm2,mm5 84*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm5 85*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 86*8fb009dcSAndroid Build Coastguard Worker pmuludq mm5,[20+esp] 87*8fb009dcSAndroid Build Coastguard Worker pmuludq mm3,mm5 88*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 89*8fb009dcSAndroid Build Coastguard Worker movd mm1,DWORD [4+ebp] 90*8fb009dcSAndroid Build Coastguard Worker movd mm0,DWORD [4+esi] 91*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 92*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 93*8fb009dcSAndroid Build Coastguard Worker inc ecx 94*8fb009dcSAndroid Build Coastguard Workeralign 16 95*8fb009dcSAndroid Build Coastguard WorkerL$0031st: 96*8fb009dcSAndroid Build Coastguard Worker pmuludq mm0,mm4 97*8fb009dcSAndroid Build Coastguard Worker pmuludq mm1,mm5 98*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm0 99*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm1 100*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm2 101*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 102*8fb009dcSAndroid Build Coastguard Worker movd mm1,DWORD [4+ecx*4+ebp] 103*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 104*8fb009dcSAndroid Build Coastguard Worker movd mm0,DWORD [4+ecx*4+esi] 105*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 106*8fb009dcSAndroid Build Coastguard Worker movd DWORD [28+ecx*4+esp],mm3 107*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 108*8fb009dcSAndroid Build Coastguard Worker lea ecx,[1+ecx] 109*8fb009dcSAndroid Build Coastguard Worker cmp ecx,ebx 110*8fb009dcSAndroid Build Coastguard Worker jl NEAR L$0031st 111*8fb009dcSAndroid Build Coastguard Worker pmuludq mm0,mm4 112*8fb009dcSAndroid Build Coastguard Worker pmuludq mm1,mm5 113*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm0 114*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm1 115*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm2 116*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 117*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 118*8fb009dcSAndroid Build Coastguard Worker movd DWORD [28+ecx*4+esp],mm3 119*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 120*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 121*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm2 122*8fb009dcSAndroid Build Coastguard Worker movq [32+ebx*4+esp],mm3 123*8fb009dcSAndroid Build Coastguard Worker inc edx 124*8fb009dcSAndroid Build Coastguard WorkerL$004outer: 125*8fb009dcSAndroid Build Coastguard Worker xor ecx,ecx 126*8fb009dcSAndroid Build Coastguard Worker movd mm4,DWORD [edx*4+edi] 127*8fb009dcSAndroid Build Coastguard Worker movd mm5,DWORD [esi] 128*8fb009dcSAndroid Build Coastguard Worker movd mm6,DWORD [32+esp] 129*8fb009dcSAndroid Build Coastguard Worker movd mm3,DWORD [ebp] 130*8fb009dcSAndroid Build Coastguard Worker pmuludq mm5,mm4 131*8fb009dcSAndroid Build Coastguard Worker paddq mm5,mm6 132*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm5 133*8fb009dcSAndroid Build Coastguard Worker movq mm2,mm5 134*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 135*8fb009dcSAndroid Build Coastguard Worker pmuludq mm5,[20+esp] 136*8fb009dcSAndroid Build Coastguard Worker pmuludq mm3,mm5 137*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 138*8fb009dcSAndroid Build Coastguard Worker movd mm6,DWORD [36+esp] 139*8fb009dcSAndroid Build Coastguard Worker movd mm1,DWORD [4+ebp] 140*8fb009dcSAndroid Build Coastguard Worker movd mm0,DWORD [4+esi] 141*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 142*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 143*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm6 144*8fb009dcSAndroid Build Coastguard Worker inc ecx 145*8fb009dcSAndroid Build Coastguard Worker dec ebx 146*8fb009dcSAndroid Build Coastguard WorkerL$005inner: 147*8fb009dcSAndroid Build Coastguard Worker pmuludq mm0,mm4 148*8fb009dcSAndroid Build Coastguard Worker pmuludq mm1,mm5 149*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm0 150*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm1 151*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm2 152*8fb009dcSAndroid Build Coastguard Worker movd mm6,DWORD [36+ecx*4+esp] 153*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 154*8fb009dcSAndroid Build Coastguard Worker movd mm1,DWORD [4+ecx*4+ebp] 155*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 156*8fb009dcSAndroid Build Coastguard Worker movd mm0,DWORD [4+ecx*4+esi] 157*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 158*8fb009dcSAndroid Build Coastguard Worker movd DWORD [28+ecx*4+esp],mm3 159*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 160*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm6 161*8fb009dcSAndroid Build Coastguard Worker dec ebx 162*8fb009dcSAndroid Build Coastguard Worker lea ecx,[1+ecx] 163*8fb009dcSAndroid Build Coastguard Worker jnz NEAR L$005inner 164*8fb009dcSAndroid Build Coastguard Worker mov ebx,ecx 165*8fb009dcSAndroid Build Coastguard Worker pmuludq mm0,mm4 166*8fb009dcSAndroid Build Coastguard Worker pmuludq mm1,mm5 167*8fb009dcSAndroid Build Coastguard Worker paddq mm2,mm0 168*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm1 169*8fb009dcSAndroid Build Coastguard Worker movq mm0,mm2 170*8fb009dcSAndroid Build Coastguard Worker pand mm0,mm7 171*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm0 172*8fb009dcSAndroid Build Coastguard Worker movd DWORD [28+ecx*4+esp],mm3 173*8fb009dcSAndroid Build Coastguard Worker psrlq mm2,32 174*8fb009dcSAndroid Build Coastguard Worker psrlq mm3,32 175*8fb009dcSAndroid Build Coastguard Worker movd mm6,DWORD [36+ebx*4+esp] 176*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm2 177*8fb009dcSAndroid Build Coastguard Worker paddq mm3,mm6 178*8fb009dcSAndroid Build Coastguard Worker movq [32+ebx*4+esp],mm3 179*8fb009dcSAndroid Build Coastguard Worker lea edx,[1+edx] 180*8fb009dcSAndroid Build Coastguard Worker cmp edx,ebx 181*8fb009dcSAndroid Build Coastguard Worker jle NEAR L$004outer 182*8fb009dcSAndroid Build Coastguard Worker emms 183*8fb009dcSAndroid Build Coastguard Worker jmp NEAR L$006common_tail 184*8fb009dcSAndroid Build Coastguard Workeralign 16 185*8fb009dcSAndroid Build Coastguard WorkerL$006common_tail: 186*8fb009dcSAndroid Build Coastguard Worker mov ebp,DWORD [16+esp] 187*8fb009dcSAndroid Build Coastguard Worker mov edi,DWORD [4+esp] 188*8fb009dcSAndroid Build Coastguard Worker lea esi,[32+esp] 189*8fb009dcSAndroid Build Coastguard Worker mov eax,DWORD [esi] 190*8fb009dcSAndroid Build Coastguard Worker mov ecx,ebx 191*8fb009dcSAndroid Build Coastguard Worker xor edx,edx 192*8fb009dcSAndroid Build Coastguard Workeralign 16 193*8fb009dcSAndroid Build Coastguard WorkerL$007sub: 194*8fb009dcSAndroid Build Coastguard Worker sbb eax,DWORD [edx*4+ebp] 195*8fb009dcSAndroid Build Coastguard Worker mov DWORD [edx*4+edi],eax 196*8fb009dcSAndroid Build Coastguard Worker dec ecx 197*8fb009dcSAndroid Build Coastguard Worker mov eax,DWORD [4+edx*4+esi] 198*8fb009dcSAndroid Build Coastguard Worker lea edx,[1+edx] 199*8fb009dcSAndroid Build Coastguard Worker jge NEAR L$007sub 200*8fb009dcSAndroid Build Coastguard Worker sbb eax,0 201*8fb009dcSAndroid Build Coastguard Worker mov edx,-1 202*8fb009dcSAndroid Build Coastguard Worker xor edx,eax 203*8fb009dcSAndroid Build Coastguard Worker jmp NEAR L$008copy 204*8fb009dcSAndroid Build Coastguard Workeralign 16 205*8fb009dcSAndroid Build Coastguard WorkerL$008copy: 206*8fb009dcSAndroid Build Coastguard Worker mov esi,DWORD [32+ebx*4+esp] 207*8fb009dcSAndroid Build Coastguard Worker mov ebp,DWORD [ebx*4+edi] 208*8fb009dcSAndroid Build Coastguard Worker mov DWORD [32+ebx*4+esp],ecx 209*8fb009dcSAndroid Build Coastguard Worker and esi,eax 210*8fb009dcSAndroid Build Coastguard Worker and ebp,edx 211*8fb009dcSAndroid Build Coastguard Worker or ebp,esi 212*8fb009dcSAndroid Build Coastguard Worker mov DWORD [ebx*4+edi],ebp 213*8fb009dcSAndroid Build Coastguard Worker dec ebx 214*8fb009dcSAndroid Build Coastguard Worker jge NEAR L$008copy 215*8fb009dcSAndroid Build Coastguard Worker mov esp,DWORD [24+esp] 216*8fb009dcSAndroid Build Coastguard Worker mov eax,1 217*8fb009dcSAndroid Build Coastguard WorkerL$000just_leave: 218*8fb009dcSAndroid Build Coastguard Worker pop edi 219*8fb009dcSAndroid Build Coastguard Worker pop esi 220*8fb009dcSAndroid Build Coastguard Worker pop ebx 221*8fb009dcSAndroid Build Coastguard Worker pop ebp 222*8fb009dcSAndroid Build Coastguard Worker ret 223*8fb009dcSAndroid Build Coastguard Workerdb 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 224*8fb009dcSAndroid Build Coastguard Workerdb 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 225*8fb009dcSAndroid Build Coastguard Workerdb 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 226*8fb009dcSAndroid Build Coastguard Workerdb 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 227*8fb009dcSAndroid Build Coastguard Workerdb 111,114,103,62,0 228*8fb009dcSAndroid Build Coastguard Worker%else 229*8fb009dcSAndroid Build Coastguard Worker; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 230*8fb009dcSAndroid Build Coastguard Workerret 231*8fb009dcSAndroid Build Coastguard Worker%endif 232