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.globl _bn_mul_comba8 9*8fb009dcSAndroid Build Coastguard Worker.private_extern _bn_mul_comba8 10*8fb009dcSAndroid Build Coastguard Worker.align 4 11*8fb009dcSAndroid Build Coastguard Worker_bn_mul_comba8: 12*8fb009dcSAndroid Build Coastguard WorkerL_bn_mul_comba8_begin: 13*8fb009dcSAndroid Build Coastguard Worker pushl %esi 14*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%esi 15*8fb009dcSAndroid Build Coastguard Worker pushl %edi 16*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edi 17*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 18*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 19*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 20*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 21*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 22*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 23*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 0 24*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 25*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[0] 26*8fb009dcSAndroid Build Coastguard Worker mull %edx 27*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 28*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 29*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 30*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 31*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 32*8fb009dcSAndroid Build Coastguard Worker movl %ebx,(%eax) 33*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 34*8fb009dcSAndroid Build Coastguard Worker # saved r[0] 35*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 1 36*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 37*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[0] 38*8fb009dcSAndroid Build Coastguard Worker mull %edx 39*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 40*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 41*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 42*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 43*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 44*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[1] 45*8fb009dcSAndroid Build Coastguard Worker mull %edx 46*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 47*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 48*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 49*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 50*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 51*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%eax) 52*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 53*8fb009dcSAndroid Build Coastguard Worker # saved r[1] 54*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 2 55*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 56*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[0] 57*8fb009dcSAndroid Build Coastguard Worker mull %edx 58*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 59*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 60*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 61*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 62*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 63*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[1] 64*8fb009dcSAndroid Build Coastguard Worker mull %edx 65*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 66*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 67*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 68*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 69*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 70*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[2] 71*8fb009dcSAndroid Build Coastguard Worker mull %edx 72*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 73*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 74*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 75*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 76*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 77*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%eax) 78*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 79*8fb009dcSAndroid Build Coastguard Worker # saved r[2] 80*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 3 81*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 82*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[0] 83*8fb009dcSAndroid Build Coastguard Worker mull %edx 84*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 85*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 86*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 87*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 88*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 89*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[1] 90*8fb009dcSAndroid Build Coastguard Worker mull %edx 91*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 92*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 93*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 94*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 95*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 96*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[2] 97*8fb009dcSAndroid Build Coastguard Worker mull %edx 98*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 99*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 100*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 101*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 102*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 103*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[3] 104*8fb009dcSAndroid Build Coastguard Worker mull %edx 105*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 106*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 107*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 108*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 109*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 110*8fb009dcSAndroid Build Coastguard Worker movl %ebx,12(%eax) 111*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 112*8fb009dcSAndroid Build Coastguard Worker # saved r[3] 113*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 4 114*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 115*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[0] 116*8fb009dcSAndroid Build Coastguard Worker mull %edx 117*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 118*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 119*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 120*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 121*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 122*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[1] 123*8fb009dcSAndroid Build Coastguard Worker mull %edx 124*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 125*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 126*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 127*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 128*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 129*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[2] 130*8fb009dcSAndroid Build Coastguard Worker mull %edx 131*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 132*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 133*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 134*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 135*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 136*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[3] 137*8fb009dcSAndroid Build Coastguard Worker mull %edx 138*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 139*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 140*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 141*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 142*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 143*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[4] 144*8fb009dcSAndroid Build Coastguard Worker mull %edx 145*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 146*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 147*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 148*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 149*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 150*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%eax) 151*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 152*8fb009dcSAndroid Build Coastguard Worker # saved r[4] 153*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 5 154*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 155*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[0] 156*8fb009dcSAndroid Build Coastguard Worker mull %edx 157*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 158*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 159*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 160*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 161*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 162*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[1] 163*8fb009dcSAndroid Build Coastguard Worker mull %edx 164*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 165*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 166*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 167*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 168*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 169*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[2] 170*8fb009dcSAndroid Build Coastguard Worker mull %edx 171*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 172*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 173*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 174*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 175*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 176*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[3] 177*8fb009dcSAndroid Build Coastguard Worker mull %edx 178*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 179*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 180*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 181*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 182*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 183*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[4] 184*8fb009dcSAndroid Build Coastguard Worker mull %edx 185*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 186*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 187*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 188*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 189*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 190*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[5] 191*8fb009dcSAndroid Build Coastguard Worker mull %edx 192*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 193*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 194*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 195*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 196*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 197*8fb009dcSAndroid Build Coastguard Worker movl %ebp,20(%eax) 198*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 199*8fb009dcSAndroid Build Coastguard Worker # saved r[5] 200*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 6 201*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 202*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[0] 203*8fb009dcSAndroid Build Coastguard Worker mull %edx 204*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 205*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 206*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 207*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 208*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 209*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[1] 210*8fb009dcSAndroid Build Coastguard Worker mull %edx 211*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 212*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 213*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 214*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 215*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 216*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[2] 217*8fb009dcSAndroid Build Coastguard Worker mull %edx 218*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 219*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 220*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 221*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 222*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 223*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[3] 224*8fb009dcSAndroid Build Coastguard Worker mull %edx 225*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 226*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 227*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 228*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 229*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 230*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[4] 231*8fb009dcSAndroid Build Coastguard Worker mull %edx 232*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 233*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 234*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 235*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 236*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 237*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[5] 238*8fb009dcSAndroid Build Coastguard Worker mull %edx 239*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 240*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 241*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 242*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 243*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 244*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[6] 245*8fb009dcSAndroid Build Coastguard Worker mull %edx 246*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 247*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 248*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 249*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 250*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 251*8fb009dcSAndroid Build Coastguard Worker movl %ebx,24(%eax) 252*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 253*8fb009dcSAndroid Build Coastguard Worker # saved r[6] 254*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 7 255*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 256*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[0] 257*8fb009dcSAndroid Build Coastguard Worker mull %edx 258*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 259*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 260*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 261*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 262*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 263*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[1] 264*8fb009dcSAndroid Build Coastguard Worker mull %edx 265*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 266*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 267*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 268*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 269*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 270*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[2] 271*8fb009dcSAndroid Build Coastguard Worker mull %edx 272*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 273*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 274*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 275*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 276*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 277*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[3] 278*8fb009dcSAndroid Build Coastguard Worker mull %edx 279*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 280*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 281*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 282*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 283*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 284*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[4] 285*8fb009dcSAndroid Build Coastguard Worker mull %edx 286*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 287*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 288*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 289*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 290*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 291*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[5] 292*8fb009dcSAndroid Build Coastguard Worker mull %edx 293*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 294*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 295*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 296*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 297*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 298*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[6] 299*8fb009dcSAndroid Build Coastguard Worker mull %edx 300*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 301*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 302*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 303*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 304*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 305*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[7] 306*8fb009dcSAndroid Build Coastguard Worker mull %edx 307*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 308*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 309*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 310*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 311*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 312*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%eax) 313*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 314*8fb009dcSAndroid Build Coastguard Worker # saved r[7] 315*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 8 316*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 317*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[1] 318*8fb009dcSAndroid Build Coastguard Worker mull %edx 319*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 320*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 321*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 322*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 323*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 324*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[2] 325*8fb009dcSAndroid Build Coastguard Worker mull %edx 326*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 327*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 328*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 329*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 330*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 331*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[3] 332*8fb009dcSAndroid Build Coastguard Worker mull %edx 333*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 334*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 335*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 336*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 337*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 338*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[4] 339*8fb009dcSAndroid Build Coastguard Worker mull %edx 340*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 341*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 342*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 343*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 344*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 345*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[5] 346*8fb009dcSAndroid Build Coastguard Worker mull %edx 347*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 348*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 349*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 350*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 351*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 352*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[6] 353*8fb009dcSAndroid Build Coastguard Worker mull %edx 354*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 355*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 356*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 357*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 358*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 359*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[7] 360*8fb009dcSAndroid Build Coastguard Worker mull %edx 361*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 362*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 363*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 364*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 365*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 366*8fb009dcSAndroid Build Coastguard Worker movl %ebp,32(%eax) 367*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 368*8fb009dcSAndroid Build Coastguard Worker # saved r[8] 369*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 9 370*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 371*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[2] 372*8fb009dcSAndroid Build Coastguard Worker mull %edx 373*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 374*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 375*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 376*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 377*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 378*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[3] 379*8fb009dcSAndroid Build Coastguard Worker mull %edx 380*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 381*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 382*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 383*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 384*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 385*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[4] 386*8fb009dcSAndroid Build Coastguard Worker mull %edx 387*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 388*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 389*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 390*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 391*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 392*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[5] 393*8fb009dcSAndroid Build Coastguard Worker mull %edx 394*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 395*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 396*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 397*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 398*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 399*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[6] 400*8fb009dcSAndroid Build Coastguard Worker mull %edx 401*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 402*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 403*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 404*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 405*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 406*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[7] 407*8fb009dcSAndroid Build Coastguard Worker mull %edx 408*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 409*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 410*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 411*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 412*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 413*8fb009dcSAndroid Build Coastguard Worker movl %ebx,36(%eax) 414*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 415*8fb009dcSAndroid Build Coastguard Worker # saved r[9] 416*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 10 417*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 418*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[3] 419*8fb009dcSAndroid Build Coastguard Worker mull %edx 420*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 421*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 422*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 423*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 424*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 425*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[4] 426*8fb009dcSAndroid Build Coastguard Worker mull %edx 427*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 428*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 429*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 430*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 431*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 432*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[5] 433*8fb009dcSAndroid Build Coastguard Worker mull %edx 434*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 435*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 436*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 437*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 438*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 439*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[6] 440*8fb009dcSAndroid Build Coastguard Worker mull %edx 441*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 442*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 443*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 444*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 445*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 446*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[7] 447*8fb009dcSAndroid Build Coastguard Worker mull %edx 448*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 449*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 450*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 451*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 452*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 453*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%eax) 454*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 455*8fb009dcSAndroid Build Coastguard Worker # saved r[10] 456*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 11 457*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 458*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[4] 459*8fb009dcSAndroid Build Coastguard Worker mull %edx 460*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 461*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 462*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 463*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 464*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 465*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[5] 466*8fb009dcSAndroid Build Coastguard Worker mull %edx 467*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 468*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 469*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 470*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 471*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 472*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[6] 473*8fb009dcSAndroid Build Coastguard Worker mull %edx 474*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 475*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 476*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 477*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 478*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 479*8fb009dcSAndroid Build Coastguard Worker # mul a[4]*b[7] 480*8fb009dcSAndroid Build Coastguard Worker mull %edx 481*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 482*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 483*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 484*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 485*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 486*8fb009dcSAndroid Build Coastguard Worker movl %ebp,44(%eax) 487*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 488*8fb009dcSAndroid Build Coastguard Worker # saved r[11] 489*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 12 490*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 491*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[5] 492*8fb009dcSAndroid Build Coastguard Worker mull %edx 493*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 494*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 495*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 496*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 497*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 498*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[6] 499*8fb009dcSAndroid Build Coastguard Worker mull %edx 500*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 501*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 502*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 503*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 504*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 505*8fb009dcSAndroid Build Coastguard Worker # mul a[5]*b[7] 506*8fb009dcSAndroid Build Coastguard Worker mull %edx 507*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 508*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 509*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 510*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 511*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 512*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%eax) 513*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 514*8fb009dcSAndroid Build Coastguard Worker # saved r[12] 515*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 13 516*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 517*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[6] 518*8fb009dcSAndroid Build Coastguard Worker mull %edx 519*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 520*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 521*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 522*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 523*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 524*8fb009dcSAndroid Build Coastguard Worker # mul a[6]*b[7] 525*8fb009dcSAndroid Build Coastguard Worker mull %edx 526*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 527*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 528*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 529*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 530*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 531*8fb009dcSAndroid Build Coastguard Worker movl %ecx,52(%eax) 532*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 533*8fb009dcSAndroid Build Coastguard Worker # saved r[13] 534*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 14 535*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 536*8fb009dcSAndroid Build Coastguard Worker # mul a[7]*b[7] 537*8fb009dcSAndroid Build Coastguard Worker mull %edx 538*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 539*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 540*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 541*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 542*8fb009dcSAndroid Build Coastguard Worker movl %ebp,56(%eax) 543*8fb009dcSAndroid Build Coastguard Worker # saved r[14] 544*8fb009dcSAndroid Build Coastguard Worker # save r[15] 545*8fb009dcSAndroid Build Coastguard Worker movl %ebx,60(%eax) 546*8fb009dcSAndroid Build Coastguard Worker popl %ebx 547*8fb009dcSAndroid Build Coastguard Worker popl %ebp 548*8fb009dcSAndroid Build Coastguard Worker popl %edi 549*8fb009dcSAndroid Build Coastguard Worker popl %esi 550*8fb009dcSAndroid Build Coastguard Worker ret 551*8fb009dcSAndroid Build Coastguard Worker.globl _bn_mul_comba4 552*8fb009dcSAndroid Build Coastguard Worker.private_extern _bn_mul_comba4 553*8fb009dcSAndroid Build Coastguard Worker.align 4 554*8fb009dcSAndroid Build Coastguard Worker_bn_mul_comba4: 555*8fb009dcSAndroid Build Coastguard WorkerL_bn_mul_comba4_begin: 556*8fb009dcSAndroid Build Coastguard Worker pushl %esi 557*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%esi 558*8fb009dcSAndroid Build Coastguard Worker pushl %edi 559*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edi 560*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 561*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 562*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 563*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 564*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 565*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 566*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 0 567*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 568*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[0] 569*8fb009dcSAndroid Build Coastguard Worker mull %edx 570*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 571*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 572*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 573*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 574*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 575*8fb009dcSAndroid Build Coastguard Worker movl %ebx,(%eax) 576*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 577*8fb009dcSAndroid Build Coastguard Worker # saved r[0] 578*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 1 579*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 580*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[0] 581*8fb009dcSAndroid Build Coastguard Worker mull %edx 582*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 583*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 584*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 585*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 586*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 587*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[1] 588*8fb009dcSAndroid Build Coastguard Worker mull %edx 589*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 590*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 591*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 592*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 593*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 594*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%eax) 595*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 596*8fb009dcSAndroid Build Coastguard Worker # saved r[1] 597*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 2 598*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 599*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[0] 600*8fb009dcSAndroid Build Coastguard Worker mull %edx 601*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 602*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 603*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 604*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 605*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 606*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[1] 607*8fb009dcSAndroid Build Coastguard Worker mull %edx 608*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 609*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 610*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 611*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 612*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 613*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[2] 614*8fb009dcSAndroid Build Coastguard Worker mull %edx 615*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 616*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 617*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 618*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 619*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 620*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%eax) 621*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 622*8fb009dcSAndroid Build Coastguard Worker # saved r[2] 623*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 3 624*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 625*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[0] 626*8fb009dcSAndroid Build Coastguard Worker mull %edx 627*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 628*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 629*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 630*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 631*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 632*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[1] 633*8fb009dcSAndroid Build Coastguard Worker mull %edx 634*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 635*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 636*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 637*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 638*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 639*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[2] 640*8fb009dcSAndroid Build Coastguard Worker mull %edx 641*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 642*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 643*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 644*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 645*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 646*8fb009dcSAndroid Build Coastguard Worker # mul a[0]*b[3] 647*8fb009dcSAndroid Build Coastguard Worker mull %edx 648*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 649*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 650*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 651*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 652*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 653*8fb009dcSAndroid Build Coastguard Worker movl %ebx,12(%eax) 654*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 655*8fb009dcSAndroid Build Coastguard Worker # saved r[3] 656*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 4 657*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 658*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[1] 659*8fb009dcSAndroid Build Coastguard Worker mull %edx 660*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 661*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 662*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 663*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 664*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 665*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[2] 666*8fb009dcSAndroid Build Coastguard Worker mull %edx 667*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 668*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 669*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 670*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 671*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 672*8fb009dcSAndroid Build Coastguard Worker # mul a[1]*b[3] 673*8fb009dcSAndroid Build Coastguard Worker mull %edx 674*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 675*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 676*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 677*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 678*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 679*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%eax) 680*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 681*8fb009dcSAndroid Build Coastguard Worker # saved r[4] 682*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 5 683*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 684*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[2] 685*8fb009dcSAndroid Build Coastguard Worker mull %edx 686*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 687*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 688*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 689*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 690*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 691*8fb009dcSAndroid Build Coastguard Worker # mul a[2]*b[3] 692*8fb009dcSAndroid Build Coastguard Worker mull %edx 693*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 694*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 695*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 696*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 697*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 698*8fb009dcSAndroid Build Coastguard Worker movl %ebp,20(%eax) 699*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 700*8fb009dcSAndroid Build Coastguard Worker # saved r[5] 701*8fb009dcSAndroid Build Coastguard Worker # ################## Calculate word 6 702*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 703*8fb009dcSAndroid Build Coastguard Worker # mul a[3]*b[3] 704*8fb009dcSAndroid Build Coastguard Worker mull %edx 705*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 706*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%eax 707*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 708*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 709*8fb009dcSAndroid Build Coastguard Worker movl %ebx,24(%eax) 710*8fb009dcSAndroid Build Coastguard Worker # saved r[6] 711*8fb009dcSAndroid Build Coastguard Worker # save r[7] 712*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%eax) 713*8fb009dcSAndroid Build Coastguard Worker popl %ebx 714*8fb009dcSAndroid Build Coastguard Worker popl %ebp 715*8fb009dcSAndroid Build Coastguard Worker popl %edi 716*8fb009dcSAndroid Build Coastguard Worker popl %esi 717*8fb009dcSAndroid Build Coastguard Worker ret 718*8fb009dcSAndroid Build Coastguard Worker.globl _bn_sqr_comba8 719*8fb009dcSAndroid Build Coastguard Worker.private_extern _bn_sqr_comba8 720*8fb009dcSAndroid Build Coastguard Worker.align 4 721*8fb009dcSAndroid Build Coastguard Worker_bn_sqr_comba8: 722*8fb009dcSAndroid Build Coastguard WorkerL_bn_sqr_comba8_begin: 723*8fb009dcSAndroid Build Coastguard Worker pushl %esi 724*8fb009dcSAndroid Build Coastguard Worker pushl %edi 725*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 726*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 727*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edi 728*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%esi 729*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 730*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 731*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 732*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 0 733*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 734*8fb009dcSAndroid Build Coastguard Worker # sqr a[0]*a[0] 735*8fb009dcSAndroid Build Coastguard Worker mull %eax 736*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 737*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 738*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 739*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 740*8fb009dcSAndroid Build Coastguard Worker movl %ebx,(%edi) 741*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 742*8fb009dcSAndroid Build Coastguard Worker # saved r[0] 743*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 1 744*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 745*8fb009dcSAndroid Build Coastguard Worker # sqr a[1]*a[0] 746*8fb009dcSAndroid Build Coastguard Worker mull %edx 747*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 748*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 749*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 750*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 751*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 752*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 753*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 754*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%edi) 755*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 756*8fb009dcSAndroid Build Coastguard Worker # saved r[1] 757*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 2 758*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 759*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[0] 760*8fb009dcSAndroid Build Coastguard Worker mull %edx 761*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 762*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 763*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 764*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 765*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 766*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 767*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 768*8fb009dcSAndroid Build Coastguard Worker # sqr a[1]*a[1] 769*8fb009dcSAndroid Build Coastguard Worker mull %eax 770*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 771*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 772*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 773*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 774*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%edi) 775*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 776*8fb009dcSAndroid Build Coastguard Worker # saved r[2] 777*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 3 778*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 779*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[0] 780*8fb009dcSAndroid Build Coastguard Worker mull %edx 781*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 782*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 783*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 784*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 785*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 786*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 787*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 788*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 789*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[1] 790*8fb009dcSAndroid Build Coastguard Worker mull %edx 791*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 792*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 793*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 794*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 795*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 796*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 797*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 798*8fb009dcSAndroid Build Coastguard Worker movl %ebx,12(%edi) 799*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 800*8fb009dcSAndroid Build Coastguard Worker # saved r[3] 801*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 4 802*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 803*8fb009dcSAndroid Build Coastguard Worker # sqr a[4]*a[0] 804*8fb009dcSAndroid Build Coastguard Worker mull %edx 805*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 806*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 807*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 808*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 809*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 810*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 811*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 812*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 813*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[1] 814*8fb009dcSAndroid Build Coastguard Worker mull %edx 815*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 816*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 817*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 818*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 819*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 820*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 821*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 822*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[2] 823*8fb009dcSAndroid Build Coastguard Worker mull %eax 824*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 825*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 826*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 827*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 828*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%edi) 829*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 830*8fb009dcSAndroid Build Coastguard Worker # saved r[4] 831*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 5 832*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 833*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[0] 834*8fb009dcSAndroid Build Coastguard Worker mull %edx 835*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 836*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 837*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 838*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 839*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 840*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 841*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 842*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 843*8fb009dcSAndroid Build Coastguard Worker # sqr a[4]*a[1] 844*8fb009dcSAndroid Build Coastguard Worker mull %edx 845*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 846*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 847*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 848*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 849*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 850*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 851*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 852*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 853*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[2] 854*8fb009dcSAndroid Build Coastguard Worker mull %edx 855*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 856*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 857*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 858*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 859*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 860*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 861*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 862*8fb009dcSAndroid Build Coastguard Worker movl %ebp,20(%edi) 863*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 864*8fb009dcSAndroid Build Coastguard Worker # saved r[5] 865*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 6 866*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 867*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[0] 868*8fb009dcSAndroid Build Coastguard Worker mull %edx 869*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 870*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 871*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 872*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 873*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 874*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 875*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 876*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 877*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[1] 878*8fb009dcSAndroid Build Coastguard Worker mull %edx 879*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 880*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 881*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 882*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 883*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 884*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 885*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 886*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 887*8fb009dcSAndroid Build Coastguard Worker # sqr a[4]*a[2] 888*8fb009dcSAndroid Build Coastguard Worker mull %edx 889*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 890*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 891*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 892*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 893*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 894*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 895*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 896*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[3] 897*8fb009dcSAndroid Build Coastguard Worker mull %eax 898*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 899*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 900*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 901*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 902*8fb009dcSAndroid Build Coastguard Worker movl %ebx,24(%edi) 903*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 904*8fb009dcSAndroid Build Coastguard Worker # saved r[6] 905*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 7 906*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 907*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[0] 908*8fb009dcSAndroid Build Coastguard Worker mull %edx 909*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 910*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 911*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 912*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 913*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 914*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 915*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 916*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 917*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[1] 918*8fb009dcSAndroid Build Coastguard Worker mull %edx 919*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 920*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 921*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 922*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 923*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 924*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 925*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 926*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 927*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[2] 928*8fb009dcSAndroid Build Coastguard Worker mull %edx 929*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 930*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 931*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 932*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 933*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 934*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 935*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 936*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%edx 937*8fb009dcSAndroid Build Coastguard Worker # sqr a[4]*a[3] 938*8fb009dcSAndroid Build Coastguard Worker mull %edx 939*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 940*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 941*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 942*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 943*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 944*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 945*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 946*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%edi) 947*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 948*8fb009dcSAndroid Build Coastguard Worker # saved r[7] 949*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 8 950*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 951*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[1] 952*8fb009dcSAndroid Build Coastguard Worker mull %edx 953*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 954*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 955*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 956*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 957*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 958*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 959*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 960*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 961*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[2] 962*8fb009dcSAndroid Build Coastguard Worker mull %edx 963*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 964*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 965*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 966*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 967*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 968*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 969*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 970*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%edx 971*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[3] 972*8fb009dcSAndroid Build Coastguard Worker mull %edx 973*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 974*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 975*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 976*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 977*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 978*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 979*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 980*8fb009dcSAndroid Build Coastguard Worker # sqr a[4]*a[4] 981*8fb009dcSAndroid Build Coastguard Worker mull %eax 982*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 983*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 984*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 985*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 986*8fb009dcSAndroid Build Coastguard Worker movl %ebp,32(%edi) 987*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 988*8fb009dcSAndroid Build Coastguard Worker # saved r[8] 989*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 9 990*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 991*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[2] 992*8fb009dcSAndroid Build Coastguard Worker mull %edx 993*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 994*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 995*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 996*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 997*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 998*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 999*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1000*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%edx 1001*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[3] 1002*8fb009dcSAndroid Build Coastguard Worker mull %edx 1003*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1004*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1005*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1006*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1007*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1008*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 1009*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1010*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%edx 1011*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[4] 1012*8fb009dcSAndroid Build Coastguard Worker mull %edx 1013*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1014*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1015*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1016*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1017*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1018*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 1019*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1020*8fb009dcSAndroid Build Coastguard Worker movl %ebx,36(%edi) 1021*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%edx 1022*8fb009dcSAndroid Build Coastguard Worker # saved r[9] 1023*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 10 1024*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 1025*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[3] 1026*8fb009dcSAndroid Build Coastguard Worker mull %edx 1027*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1028*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1029*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1030*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1031*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1032*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 1033*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1034*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%edx 1035*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[4] 1036*8fb009dcSAndroid Build Coastguard Worker mull %edx 1037*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1038*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1039*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1040*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1041*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1042*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%eax 1043*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1044*8fb009dcSAndroid Build Coastguard Worker # sqr a[5]*a[5] 1045*8fb009dcSAndroid Build Coastguard Worker mull %eax 1046*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1047*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1048*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%edx 1049*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1050*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%edi) 1051*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 1052*8fb009dcSAndroid Build Coastguard Worker # saved r[10] 1053*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 11 1054*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 1055*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[4] 1056*8fb009dcSAndroid Build Coastguard Worker mull %edx 1057*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1058*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1059*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1060*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1061*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1062*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 1063*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1064*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%edx 1065*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[5] 1066*8fb009dcSAndroid Build Coastguard Worker mull %edx 1067*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1068*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1069*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1070*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1071*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1072*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 1073*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1074*8fb009dcSAndroid Build Coastguard Worker movl %ebp,44(%edi) 1075*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%edx 1076*8fb009dcSAndroid Build Coastguard Worker # saved r[11] 1077*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 12 1078*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 1079*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[5] 1080*8fb009dcSAndroid Build Coastguard Worker mull %edx 1081*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1082*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1083*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1084*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1085*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1086*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%eax 1087*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1088*8fb009dcSAndroid Build Coastguard Worker # sqr a[6]*a[6] 1089*8fb009dcSAndroid Build Coastguard Worker mull %eax 1090*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1091*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1092*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%edx 1093*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1094*8fb009dcSAndroid Build Coastguard Worker movl %ebx,48(%edi) 1095*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 1096*8fb009dcSAndroid Build Coastguard Worker # saved r[12] 1097*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 13 1098*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 1099*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[6] 1100*8fb009dcSAndroid Build Coastguard Worker mull %edx 1101*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1102*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1103*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1104*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1105*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1106*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%eax 1107*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1108*8fb009dcSAndroid Build Coastguard Worker movl %ecx,52(%edi) 1109*8fb009dcSAndroid Build Coastguard Worker # saved r[13] 1110*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 14 1111*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 1112*8fb009dcSAndroid Build Coastguard Worker # sqr a[7]*a[7] 1113*8fb009dcSAndroid Build Coastguard Worker mull %eax 1114*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1115*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1116*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1117*8fb009dcSAndroid Build Coastguard Worker movl %ebp,56(%edi) 1118*8fb009dcSAndroid Build Coastguard Worker # saved r[14] 1119*8fb009dcSAndroid Build Coastguard Worker movl %ebx,60(%edi) 1120*8fb009dcSAndroid Build Coastguard Worker popl %ebx 1121*8fb009dcSAndroid Build Coastguard Worker popl %ebp 1122*8fb009dcSAndroid Build Coastguard Worker popl %edi 1123*8fb009dcSAndroid Build Coastguard Worker popl %esi 1124*8fb009dcSAndroid Build Coastguard Worker ret 1125*8fb009dcSAndroid Build Coastguard Worker.globl _bn_sqr_comba4 1126*8fb009dcSAndroid Build Coastguard Worker.private_extern _bn_sqr_comba4 1127*8fb009dcSAndroid Build Coastguard Worker.align 4 1128*8fb009dcSAndroid Build Coastguard Worker_bn_sqr_comba4: 1129*8fb009dcSAndroid Build Coastguard WorkerL_bn_sqr_comba4_begin: 1130*8fb009dcSAndroid Build Coastguard Worker pushl %esi 1131*8fb009dcSAndroid Build Coastguard Worker pushl %edi 1132*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 1133*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 1134*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edi 1135*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%esi 1136*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 1137*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 1138*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 1139*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 0 1140*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 1141*8fb009dcSAndroid Build Coastguard Worker # sqr a[0]*a[0] 1142*8fb009dcSAndroid Build Coastguard Worker mull %eax 1143*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1144*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1145*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 1146*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1147*8fb009dcSAndroid Build Coastguard Worker movl %ebx,(%edi) 1148*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 1149*8fb009dcSAndroid Build Coastguard Worker # saved r[0] 1150*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 1 1151*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 1152*8fb009dcSAndroid Build Coastguard Worker # sqr a[1]*a[0] 1153*8fb009dcSAndroid Build Coastguard Worker mull %edx 1154*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1155*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1156*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1157*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1158*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1159*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 1160*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1161*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%edi) 1162*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 1163*8fb009dcSAndroid Build Coastguard Worker # saved r[1] 1164*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 2 1165*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 1166*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[0] 1167*8fb009dcSAndroid Build Coastguard Worker mull %edx 1168*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1169*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1170*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1171*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1172*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1173*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%eax 1174*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1175*8fb009dcSAndroid Build Coastguard Worker # sqr a[1]*a[1] 1176*8fb009dcSAndroid Build Coastguard Worker mull %eax 1177*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1178*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1179*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%edx 1180*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1181*8fb009dcSAndroid Build Coastguard Worker movl %ebp,8(%edi) 1182*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 1183*8fb009dcSAndroid Build Coastguard Worker # saved r[2] 1184*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 3 1185*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 1186*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[0] 1187*8fb009dcSAndroid Build Coastguard Worker mull %edx 1188*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1189*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1190*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1191*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1192*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1193*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 1194*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1195*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 1196*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[1] 1197*8fb009dcSAndroid Build Coastguard Worker mull %edx 1198*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1199*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1200*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1201*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1202*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1203*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 1204*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1205*8fb009dcSAndroid Build Coastguard Worker movl %ebx,12(%edi) 1206*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%edx 1207*8fb009dcSAndroid Build Coastguard Worker # saved r[3] 1208*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 4 1209*8fb009dcSAndroid Build Coastguard Worker xorl %ebx,%ebx 1210*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[1] 1211*8fb009dcSAndroid Build Coastguard Worker mull %edx 1212*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1213*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1214*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1215*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1216*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1217*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%eax 1218*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1219*8fb009dcSAndroid Build Coastguard Worker # sqr a[2]*a[2] 1220*8fb009dcSAndroid Build Coastguard Worker mull %eax 1221*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 1222*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebp 1223*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%edx 1224*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebx 1225*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%edi) 1226*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 1227*8fb009dcSAndroid Build Coastguard Worker # saved r[4] 1228*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 5 1229*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ecx 1230*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[2] 1231*8fb009dcSAndroid Build Coastguard Worker mull %edx 1232*8fb009dcSAndroid Build Coastguard Worker addl %eax,%eax 1233*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%edx 1234*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1235*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebp 1236*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ebx 1237*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%eax 1238*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ecx 1239*8fb009dcSAndroid Build Coastguard Worker movl %ebp,20(%edi) 1240*8fb009dcSAndroid Build Coastguard Worker # saved r[5] 1241*8fb009dcSAndroid Build Coastguard Worker # ############### Calculate word 6 1242*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 1243*8fb009dcSAndroid Build Coastguard Worker # sqr a[3]*a[3] 1244*8fb009dcSAndroid Build Coastguard Worker mull %eax 1245*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ebx 1246*8fb009dcSAndroid Build Coastguard Worker adcl %edx,%ecx 1247*8fb009dcSAndroid Build Coastguard Worker adcl $0,%ebp 1248*8fb009dcSAndroid Build Coastguard Worker movl %ebx,24(%edi) 1249*8fb009dcSAndroid Build Coastguard Worker # saved r[6] 1250*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%edi) 1251*8fb009dcSAndroid Build Coastguard Worker popl %ebx 1252*8fb009dcSAndroid Build Coastguard Worker popl %ebp 1253*8fb009dcSAndroid Build Coastguard Worker popl %edi 1254*8fb009dcSAndroid Build Coastguard Worker popl %esi 1255*8fb009dcSAndroid Build Coastguard Worker ret 1256*8fb009dcSAndroid Build Coastguard Worker#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) 1257