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_AARCH64) && defined(_WIN32) 7*8fb009dcSAndroid Build Coastguard Worker#include <openssl/arm_arch.h> 8*8fb009dcSAndroid Build Coastguard Worker 9*8fb009dcSAndroid Build Coastguard Worker.section .rodata 10*8fb009dcSAndroid Build Coastguard Worker 11*8fb009dcSAndroid Build Coastguard Worker.align 5 12*8fb009dcSAndroid Build Coastguard WorkerLsigma: 13*8fb009dcSAndroid Build Coastguard Worker.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral 14*8fb009dcSAndroid Build Coastguard WorkerLone: 15*8fb009dcSAndroid Build Coastguard Worker.long 1,0,0,0 16*8fb009dcSAndroid Build Coastguard Worker.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 17*8fb009dcSAndroid Build Coastguard Worker.align 2 18*8fb009dcSAndroid Build Coastguard Worker 19*8fb009dcSAndroid Build Coastguard Worker.text 20*8fb009dcSAndroid Build Coastguard Worker 21*8fb009dcSAndroid Build Coastguard Worker.globl ChaCha20_ctr32_nohw 22*8fb009dcSAndroid Build Coastguard Worker 23*8fb009dcSAndroid Build Coastguard Worker.def ChaCha20_ctr32_nohw 24*8fb009dcSAndroid Build Coastguard Worker .type 32 25*8fb009dcSAndroid Build Coastguard Worker.endef 26*8fb009dcSAndroid Build Coastguard Worker.align 5 27*8fb009dcSAndroid Build Coastguard WorkerChaCha20_ctr32_nohw: 28*8fb009dcSAndroid Build Coastguard Worker AARCH64_SIGN_LINK_REGISTER 29*8fb009dcSAndroid Build Coastguard Worker stp x29,x30,[sp,#-96]! 30*8fb009dcSAndroid Build Coastguard Worker add x29,sp,#0 31*8fb009dcSAndroid Build Coastguard Worker 32*8fb009dcSAndroid Build Coastguard Worker adrp x5,Lsigma 33*8fb009dcSAndroid Build Coastguard Worker add x5,x5,:lo12:Lsigma 34*8fb009dcSAndroid Build Coastguard Worker stp x19,x20,[sp,#16] 35*8fb009dcSAndroid Build Coastguard Worker stp x21,x22,[sp,#32] 36*8fb009dcSAndroid Build Coastguard Worker stp x23,x24,[sp,#48] 37*8fb009dcSAndroid Build Coastguard Worker stp x25,x26,[sp,#64] 38*8fb009dcSAndroid Build Coastguard Worker stp x27,x28,[sp,#80] 39*8fb009dcSAndroid Build Coastguard Worker sub sp,sp,#64 40*8fb009dcSAndroid Build Coastguard Worker 41*8fb009dcSAndroid Build Coastguard Worker ldp x22,x23,[x5] // load sigma 42*8fb009dcSAndroid Build Coastguard Worker ldp x24,x25,[x3] // load key 43*8fb009dcSAndroid Build Coastguard Worker ldp x26,x27,[x3,#16] 44*8fb009dcSAndroid Build Coastguard Worker ldp x28,x30,[x4] // load counter 45*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 46*8fb009dcSAndroid Build Coastguard Worker ror x24,x24,#32 47*8fb009dcSAndroid Build Coastguard Worker ror x25,x25,#32 48*8fb009dcSAndroid Build Coastguard Worker ror x26,x26,#32 49*8fb009dcSAndroid Build Coastguard Worker ror x27,x27,#32 50*8fb009dcSAndroid Build Coastguard Worker ror x28,x28,#32 51*8fb009dcSAndroid Build Coastguard Worker ror x30,x30,#32 52*8fb009dcSAndroid Build Coastguard Worker#endif 53*8fb009dcSAndroid Build Coastguard Worker 54*8fb009dcSAndroid Build Coastguard WorkerLoop_outer: 55*8fb009dcSAndroid Build Coastguard Worker mov w5,w22 // unpack key block 56*8fb009dcSAndroid Build Coastguard Worker lsr x6,x22,#32 57*8fb009dcSAndroid Build Coastguard Worker mov w7,w23 58*8fb009dcSAndroid Build Coastguard Worker lsr x8,x23,#32 59*8fb009dcSAndroid Build Coastguard Worker mov w9,w24 60*8fb009dcSAndroid Build Coastguard Worker lsr x10,x24,#32 61*8fb009dcSAndroid Build Coastguard Worker mov w11,w25 62*8fb009dcSAndroid Build Coastguard Worker lsr x12,x25,#32 63*8fb009dcSAndroid Build Coastguard Worker mov w13,w26 64*8fb009dcSAndroid Build Coastguard Worker lsr x14,x26,#32 65*8fb009dcSAndroid Build Coastguard Worker mov w15,w27 66*8fb009dcSAndroid Build Coastguard Worker lsr x16,x27,#32 67*8fb009dcSAndroid Build Coastguard Worker mov w17,w28 68*8fb009dcSAndroid Build Coastguard Worker lsr x19,x28,#32 69*8fb009dcSAndroid Build Coastguard Worker mov w20,w30 70*8fb009dcSAndroid Build Coastguard Worker lsr x21,x30,#32 71*8fb009dcSAndroid Build Coastguard Worker 72*8fb009dcSAndroid Build Coastguard Worker mov x4,#10 73*8fb009dcSAndroid Build Coastguard Worker subs x2,x2,#64 74*8fb009dcSAndroid Build Coastguard WorkerLoop: 75*8fb009dcSAndroid Build Coastguard Worker sub x4,x4,#1 76*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 77*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 78*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 79*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 80*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 81*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 82*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 83*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 84*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 85*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 86*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 87*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 88*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 89*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 90*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 91*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 92*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 93*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 94*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 95*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 96*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 97*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 98*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 99*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 100*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 101*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 102*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 103*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 104*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 105*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 106*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 107*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 108*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 109*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 110*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 111*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 112*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 113*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 114*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 115*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 116*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 117*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 118*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 119*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 120*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 121*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 122*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 123*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 124*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 125*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 126*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 127*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 128*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 129*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 130*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 131*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 132*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 133*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 134*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 135*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 136*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 137*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 138*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 139*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 140*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 141*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 142*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 143*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 144*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 145*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 146*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 147*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 148*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 149*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 150*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 151*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 152*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 153*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 154*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 155*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 156*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 157*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 158*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 159*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 160*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 161*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 162*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 163*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 164*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 165*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 166*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 167*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 168*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 169*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 170*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 171*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 172*8fb009dcSAndroid Build Coastguard Worker cbnz x4,Loop 173*8fb009dcSAndroid Build Coastguard Worker 174*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w22 // accumulate key block 175*8fb009dcSAndroid Build Coastguard Worker add x6,x6,x22,lsr#32 176*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w23 177*8fb009dcSAndroid Build Coastguard Worker add x8,x8,x23,lsr#32 178*8fb009dcSAndroid Build Coastguard Worker add w9,w9,w24 179*8fb009dcSAndroid Build Coastguard Worker add x10,x10,x24,lsr#32 180*8fb009dcSAndroid Build Coastguard Worker add w11,w11,w25 181*8fb009dcSAndroid Build Coastguard Worker add x12,x12,x25,lsr#32 182*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w26 183*8fb009dcSAndroid Build Coastguard Worker add x14,x14,x26,lsr#32 184*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w27 185*8fb009dcSAndroid Build Coastguard Worker add x16,x16,x27,lsr#32 186*8fb009dcSAndroid Build Coastguard Worker add w17,w17,w28 187*8fb009dcSAndroid Build Coastguard Worker add x19,x19,x28,lsr#32 188*8fb009dcSAndroid Build Coastguard Worker add w20,w20,w30 189*8fb009dcSAndroid Build Coastguard Worker add x21,x21,x30,lsr#32 190*8fb009dcSAndroid Build Coastguard Worker 191*8fb009dcSAndroid Build Coastguard Worker b.lo Ltail 192*8fb009dcSAndroid Build Coastguard Worker 193*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 194*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 195*8fb009dcSAndroid Build Coastguard Worker ldp x6,x8,[x1,#0] // load input 196*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 197*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 198*8fb009dcSAndroid Build Coastguard Worker ldp x10,x12,[x1,#16] 199*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 200*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 201*8fb009dcSAndroid Build Coastguard Worker ldp x14,x16,[x1,#32] 202*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 203*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 204*8fb009dcSAndroid Build Coastguard Worker ldp x19,x21,[x1,#48] 205*8fb009dcSAndroid Build Coastguard Worker add x1,x1,#64 206*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 207*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 208*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 209*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 210*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 211*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 212*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 213*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 214*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 215*8fb009dcSAndroid Build Coastguard Worker#endif 216*8fb009dcSAndroid Build Coastguard Worker eor x5,x5,x6 217*8fb009dcSAndroid Build Coastguard Worker eor x7,x7,x8 218*8fb009dcSAndroid Build Coastguard Worker eor x9,x9,x10 219*8fb009dcSAndroid Build Coastguard Worker eor x11,x11,x12 220*8fb009dcSAndroid Build Coastguard Worker eor x13,x13,x14 221*8fb009dcSAndroid Build Coastguard Worker eor x15,x15,x16 222*8fb009dcSAndroid Build Coastguard Worker eor x17,x17,x19 223*8fb009dcSAndroid Build Coastguard Worker eor x20,x20,x21 224*8fb009dcSAndroid Build Coastguard Worker 225*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[x0,#0] // store output 226*8fb009dcSAndroid Build Coastguard Worker add x28,x28,#1 // increment counter 227*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[x0,#16] 228*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[x0,#32] 229*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[x0,#48] 230*8fb009dcSAndroid Build Coastguard Worker add x0,x0,#64 231*8fb009dcSAndroid Build Coastguard Worker 232*8fb009dcSAndroid Build Coastguard Worker b.hi Loop_outer 233*8fb009dcSAndroid Build Coastguard Worker 234*8fb009dcSAndroid Build Coastguard Worker ldp x19,x20,[x29,#16] 235*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#64 236*8fb009dcSAndroid Build Coastguard Worker ldp x21,x22,[x29,#32] 237*8fb009dcSAndroid Build Coastguard Worker ldp x23,x24,[x29,#48] 238*8fb009dcSAndroid Build Coastguard Worker ldp x25,x26,[x29,#64] 239*8fb009dcSAndroid Build Coastguard Worker ldp x27,x28,[x29,#80] 240*8fb009dcSAndroid Build Coastguard Worker ldp x29,x30,[sp],#96 241*8fb009dcSAndroid Build Coastguard Worker AARCH64_VALIDATE_LINK_REGISTER 242*8fb009dcSAndroid Build Coastguard Worker ret 243*8fb009dcSAndroid Build Coastguard Worker 244*8fb009dcSAndroid Build Coastguard Worker.align 4 245*8fb009dcSAndroid Build Coastguard WorkerLtail: 246*8fb009dcSAndroid Build Coastguard Worker add x2,x2,#64 247*8fb009dcSAndroid Build Coastguard WorkerLess_than_64: 248*8fb009dcSAndroid Build Coastguard Worker sub x0,x0,#1 249*8fb009dcSAndroid Build Coastguard Worker add x1,x1,x2 250*8fb009dcSAndroid Build Coastguard Worker add x0,x0,x2 251*8fb009dcSAndroid Build Coastguard Worker add x4,sp,x2 252*8fb009dcSAndroid Build Coastguard Worker neg x2,x2 253*8fb009dcSAndroid Build Coastguard Worker 254*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 255*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 256*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 257*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 258*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 259*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 260*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 261*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 262*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 263*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 264*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 265*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 266*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 267*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 268*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 269*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 270*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 271*8fb009dcSAndroid Build Coastguard Worker#endif 272*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[sp,#0] 273*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[sp,#16] 274*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[sp,#32] 275*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[sp,#48] 276*8fb009dcSAndroid Build Coastguard Worker 277*8fb009dcSAndroid Build Coastguard WorkerLoop_tail: 278*8fb009dcSAndroid Build Coastguard Worker ldrb w10,[x1,x2] 279*8fb009dcSAndroid Build Coastguard Worker ldrb w11,[x4,x2] 280*8fb009dcSAndroid Build Coastguard Worker add x2,x2,#1 281*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w11 282*8fb009dcSAndroid Build Coastguard Worker strb w10,[x0,x2] 283*8fb009dcSAndroid Build Coastguard Worker cbnz x2,Loop_tail 284*8fb009dcSAndroid Build Coastguard Worker 285*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#0] 286*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#16] 287*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#32] 288*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#48] 289*8fb009dcSAndroid Build Coastguard Worker 290*8fb009dcSAndroid Build Coastguard Worker ldp x19,x20,[x29,#16] 291*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#64 292*8fb009dcSAndroid Build Coastguard Worker ldp x21,x22,[x29,#32] 293*8fb009dcSAndroid Build Coastguard Worker ldp x23,x24,[x29,#48] 294*8fb009dcSAndroid Build Coastguard Worker ldp x25,x26,[x29,#64] 295*8fb009dcSAndroid Build Coastguard Worker ldp x27,x28,[x29,#80] 296*8fb009dcSAndroid Build Coastguard Worker ldp x29,x30,[sp],#96 297*8fb009dcSAndroid Build Coastguard Worker AARCH64_VALIDATE_LINK_REGISTER 298*8fb009dcSAndroid Build Coastguard Worker ret 299*8fb009dcSAndroid Build Coastguard Worker 300*8fb009dcSAndroid Build Coastguard Worker 301*8fb009dcSAndroid Build Coastguard Worker.globl ChaCha20_ctr32_neon 302*8fb009dcSAndroid Build Coastguard Worker 303*8fb009dcSAndroid Build Coastguard Worker.def ChaCha20_ctr32_neon 304*8fb009dcSAndroid Build Coastguard Worker .type 32 305*8fb009dcSAndroid Build Coastguard Worker.endef 306*8fb009dcSAndroid Build Coastguard Worker.align 5 307*8fb009dcSAndroid Build Coastguard WorkerChaCha20_ctr32_neon: 308*8fb009dcSAndroid Build Coastguard Worker AARCH64_SIGN_LINK_REGISTER 309*8fb009dcSAndroid Build Coastguard Worker stp x29,x30,[sp,#-96]! 310*8fb009dcSAndroid Build Coastguard Worker add x29,sp,#0 311*8fb009dcSAndroid Build Coastguard Worker 312*8fb009dcSAndroid Build Coastguard Worker adrp x5,Lsigma 313*8fb009dcSAndroid Build Coastguard Worker add x5,x5,:lo12:Lsigma 314*8fb009dcSAndroid Build Coastguard Worker stp x19,x20,[sp,#16] 315*8fb009dcSAndroid Build Coastguard Worker stp x21,x22,[sp,#32] 316*8fb009dcSAndroid Build Coastguard Worker stp x23,x24,[sp,#48] 317*8fb009dcSAndroid Build Coastguard Worker stp x25,x26,[sp,#64] 318*8fb009dcSAndroid Build Coastguard Worker stp x27,x28,[sp,#80] 319*8fb009dcSAndroid Build Coastguard Worker cmp x2,#512 320*8fb009dcSAndroid Build Coastguard Worker b.hs L512_or_more_neon 321*8fb009dcSAndroid Build Coastguard Worker 322*8fb009dcSAndroid Build Coastguard Worker sub sp,sp,#64 323*8fb009dcSAndroid Build Coastguard Worker 324*8fb009dcSAndroid Build Coastguard Worker ldp x22,x23,[x5] // load sigma 325*8fb009dcSAndroid Build Coastguard Worker ld1 {v24.4s},[x5],#16 326*8fb009dcSAndroid Build Coastguard Worker ldp x24,x25,[x3] // load key 327*8fb009dcSAndroid Build Coastguard Worker ldp x26,x27,[x3,#16] 328*8fb009dcSAndroid Build Coastguard Worker ld1 {v25.4s,v26.4s},[x3] 329*8fb009dcSAndroid Build Coastguard Worker ldp x28,x30,[x4] // load counter 330*8fb009dcSAndroid Build Coastguard Worker ld1 {v27.4s},[x4] 331*8fb009dcSAndroid Build Coastguard Worker ld1 {v31.4s},[x5] 332*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 333*8fb009dcSAndroid Build Coastguard Worker rev64 v24.4s,v24.4s 334*8fb009dcSAndroid Build Coastguard Worker ror x24,x24,#32 335*8fb009dcSAndroid Build Coastguard Worker ror x25,x25,#32 336*8fb009dcSAndroid Build Coastguard Worker ror x26,x26,#32 337*8fb009dcSAndroid Build Coastguard Worker ror x27,x27,#32 338*8fb009dcSAndroid Build Coastguard Worker ror x28,x28,#32 339*8fb009dcSAndroid Build Coastguard Worker ror x30,x30,#32 340*8fb009dcSAndroid Build Coastguard Worker#endif 341*8fb009dcSAndroid Build Coastguard Worker add v27.4s,v27.4s,v31.4s // += 1 342*8fb009dcSAndroid Build Coastguard Worker add v28.4s,v27.4s,v31.4s 343*8fb009dcSAndroid Build Coastguard Worker add v29.4s,v28.4s,v31.4s 344*8fb009dcSAndroid Build Coastguard Worker shl v31.4s,v31.4s,#2 // 1 -> 4 345*8fb009dcSAndroid Build Coastguard Worker 346*8fb009dcSAndroid Build Coastguard WorkerLoop_outer_neon: 347*8fb009dcSAndroid Build Coastguard Worker mov w5,w22 // unpack key block 348*8fb009dcSAndroid Build Coastguard Worker lsr x6,x22,#32 349*8fb009dcSAndroid Build Coastguard Worker mov v0.16b,v24.16b 350*8fb009dcSAndroid Build Coastguard Worker mov w7,w23 351*8fb009dcSAndroid Build Coastguard Worker lsr x8,x23,#32 352*8fb009dcSAndroid Build Coastguard Worker mov v4.16b,v24.16b 353*8fb009dcSAndroid Build Coastguard Worker mov w9,w24 354*8fb009dcSAndroid Build Coastguard Worker lsr x10,x24,#32 355*8fb009dcSAndroid Build Coastguard Worker mov v16.16b,v24.16b 356*8fb009dcSAndroid Build Coastguard Worker mov w11,w25 357*8fb009dcSAndroid Build Coastguard Worker mov v1.16b,v25.16b 358*8fb009dcSAndroid Build Coastguard Worker lsr x12,x25,#32 359*8fb009dcSAndroid Build Coastguard Worker mov v5.16b,v25.16b 360*8fb009dcSAndroid Build Coastguard Worker mov w13,w26 361*8fb009dcSAndroid Build Coastguard Worker mov v17.16b,v25.16b 362*8fb009dcSAndroid Build Coastguard Worker lsr x14,x26,#32 363*8fb009dcSAndroid Build Coastguard Worker mov v3.16b,v27.16b 364*8fb009dcSAndroid Build Coastguard Worker mov w15,w27 365*8fb009dcSAndroid Build Coastguard Worker mov v7.16b,v28.16b 366*8fb009dcSAndroid Build Coastguard Worker lsr x16,x27,#32 367*8fb009dcSAndroid Build Coastguard Worker mov v19.16b,v29.16b 368*8fb009dcSAndroid Build Coastguard Worker mov w17,w28 369*8fb009dcSAndroid Build Coastguard Worker mov v2.16b,v26.16b 370*8fb009dcSAndroid Build Coastguard Worker lsr x19,x28,#32 371*8fb009dcSAndroid Build Coastguard Worker mov v6.16b,v26.16b 372*8fb009dcSAndroid Build Coastguard Worker mov w20,w30 373*8fb009dcSAndroid Build Coastguard Worker mov v18.16b,v26.16b 374*8fb009dcSAndroid Build Coastguard Worker lsr x21,x30,#32 375*8fb009dcSAndroid Build Coastguard Worker 376*8fb009dcSAndroid Build Coastguard Worker mov x4,#10 377*8fb009dcSAndroid Build Coastguard Worker subs x2,x2,#256 378*8fb009dcSAndroid Build Coastguard WorkerLoop_neon: 379*8fb009dcSAndroid Build Coastguard Worker sub x4,x4,#1 380*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 381*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 382*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 383*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 384*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 385*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 386*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 387*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 388*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 389*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 390*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 391*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 392*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 393*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 394*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 395*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 396*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 397*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 398*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 399*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 400*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 401*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 402*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 403*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 404*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v1.16b,v2.16b 405*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 406*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v5.16b,v6.16b 407*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 408*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v17.16b,v18.16b 409*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 410*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v20.4s,#20 411*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 412*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v21.4s,#20 413*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 414*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v22.4s,#20 415*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 416*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v20.4s,#12 417*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 418*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v21.4s,#12 419*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 420*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v22.4s,#12 421*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 422*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 423*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 424*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 425*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 426*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 427*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 428*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v3.16b,v0.16b 429*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 430*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v7.16b,v4.16b 431*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 432*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v19.16b,v16.16b 433*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 434*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v20.4s,#24 435*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 436*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v21.4s,#24 437*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 438*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v22.4s,#24 439*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 440*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v20.4s,#8 441*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 442*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v21.4s,#8 443*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 444*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v22.4s,#8 445*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 446*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 447*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 448*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 449*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 450*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 451*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 452*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v1.16b,v2.16b 453*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 454*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v5.16b,v6.16b 455*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 456*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v17.16b,v18.16b 457*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 458*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v20.4s,#25 459*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 460*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v21.4s,#25 461*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 462*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v22.4s,#25 463*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 464*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v20.4s,#7 465*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 466*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v21.4s,#7 467*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 468*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v22.4s,#7 469*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 470*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 471*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 472*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 473*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 474*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 475*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 476*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#12 477*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#12 478*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#12 479*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#4 480*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#4 481*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#4 482*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 483*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 484*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 485*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 486*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 487*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 488*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 489*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 490*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 491*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 492*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 493*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 494*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 495*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 496*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 497*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 498*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 499*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 500*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 501*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 502*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 503*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 504*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 505*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 506*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v1.16b,v2.16b 507*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 508*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v5.16b,v6.16b 509*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 510*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v17.16b,v18.16b 511*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 512*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v20.4s,#20 513*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 514*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v21.4s,#20 515*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 516*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v22.4s,#20 517*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 518*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v20.4s,#12 519*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 520*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v21.4s,#12 521*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 522*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v22.4s,#12 523*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 524*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 525*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 526*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 527*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 528*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 529*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 530*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v3.16b,v0.16b 531*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 532*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v7.16b,v4.16b 533*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 534*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v19.16b,v16.16b 535*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 536*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v20.4s,#24 537*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 538*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v21.4s,#24 539*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 540*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v22.4s,#24 541*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 542*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v20.4s,#8 543*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 544*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v21.4s,#8 545*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 546*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v22.4s,#8 547*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 548*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 549*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 550*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 551*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 552*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 553*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 554*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v1.16b,v2.16b 555*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 556*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v5.16b,v6.16b 557*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 558*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v17.16b,v18.16b 559*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 560*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v20.4s,#25 561*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 562*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v21.4s,#25 563*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 564*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v22.4s,#25 565*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 566*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v20.4s,#7 567*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 568*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v21.4s,#7 569*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 570*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v22.4s,#7 571*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 572*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 573*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 574*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 575*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 576*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 577*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 578*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#4 579*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#4 580*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#4 581*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#12 582*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#12 583*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#12 584*8fb009dcSAndroid Build Coastguard Worker cbnz x4,Loop_neon 585*8fb009dcSAndroid Build Coastguard Worker 586*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w22 // accumulate key block 587*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v24.4s 588*8fb009dcSAndroid Build Coastguard Worker add x6,x6,x22,lsr#32 589*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v24.4s 590*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w23 591*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v24.4s 592*8fb009dcSAndroid Build Coastguard Worker add x8,x8,x23,lsr#32 593*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v26.4s 594*8fb009dcSAndroid Build Coastguard Worker add w9,w9,w24 595*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v26.4s 596*8fb009dcSAndroid Build Coastguard Worker add x10,x10,x24,lsr#32 597*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v26.4s 598*8fb009dcSAndroid Build Coastguard Worker add w11,w11,w25 599*8fb009dcSAndroid Build Coastguard Worker add v3.4s,v3.4s,v27.4s 600*8fb009dcSAndroid Build Coastguard Worker add x12,x12,x25,lsr#32 601*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w26 602*8fb009dcSAndroid Build Coastguard Worker add v7.4s,v7.4s,v28.4s 603*8fb009dcSAndroid Build Coastguard Worker add x14,x14,x26,lsr#32 604*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w27 605*8fb009dcSAndroid Build Coastguard Worker add v19.4s,v19.4s,v29.4s 606*8fb009dcSAndroid Build Coastguard Worker add x16,x16,x27,lsr#32 607*8fb009dcSAndroid Build Coastguard Worker add w17,w17,w28 608*8fb009dcSAndroid Build Coastguard Worker add v1.4s,v1.4s,v25.4s 609*8fb009dcSAndroid Build Coastguard Worker add x19,x19,x28,lsr#32 610*8fb009dcSAndroid Build Coastguard Worker add w20,w20,w30 611*8fb009dcSAndroid Build Coastguard Worker add v5.4s,v5.4s,v25.4s 612*8fb009dcSAndroid Build Coastguard Worker add x21,x21,x30,lsr#32 613*8fb009dcSAndroid Build Coastguard Worker add v17.4s,v17.4s,v25.4s 614*8fb009dcSAndroid Build Coastguard Worker 615*8fb009dcSAndroid Build Coastguard Worker b.lo Ltail_neon 616*8fb009dcSAndroid Build Coastguard Worker 617*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 618*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 619*8fb009dcSAndroid Build Coastguard Worker ldp x6,x8,[x1,#0] // load input 620*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 621*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 622*8fb009dcSAndroid Build Coastguard Worker ldp x10,x12,[x1,#16] 623*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 624*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 625*8fb009dcSAndroid Build Coastguard Worker ldp x14,x16,[x1,#32] 626*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 627*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 628*8fb009dcSAndroid Build Coastguard Worker ldp x19,x21,[x1,#48] 629*8fb009dcSAndroid Build Coastguard Worker add x1,x1,#64 630*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 631*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 632*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 633*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 634*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 635*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 636*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 637*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 638*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 639*8fb009dcSAndroid Build Coastguard Worker#endif 640*8fb009dcSAndroid Build Coastguard Worker ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 641*8fb009dcSAndroid Build Coastguard Worker eor x5,x5,x6 642*8fb009dcSAndroid Build Coastguard Worker eor x7,x7,x8 643*8fb009dcSAndroid Build Coastguard Worker eor x9,x9,x10 644*8fb009dcSAndroid Build Coastguard Worker eor x11,x11,x12 645*8fb009dcSAndroid Build Coastguard Worker eor x13,x13,x14 646*8fb009dcSAndroid Build Coastguard Worker eor v0.16b,v0.16b,v20.16b 647*8fb009dcSAndroid Build Coastguard Worker eor x15,x15,x16 648*8fb009dcSAndroid Build Coastguard Worker eor v1.16b,v1.16b,v21.16b 649*8fb009dcSAndroid Build Coastguard Worker eor x17,x17,x19 650*8fb009dcSAndroid Build Coastguard Worker eor v2.16b,v2.16b,v22.16b 651*8fb009dcSAndroid Build Coastguard Worker eor x20,x20,x21 652*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v23.16b 653*8fb009dcSAndroid Build Coastguard Worker ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 654*8fb009dcSAndroid Build Coastguard Worker 655*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[x0,#0] // store output 656*8fb009dcSAndroid Build Coastguard Worker add x28,x28,#4 // increment counter 657*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[x0,#16] 658*8fb009dcSAndroid Build Coastguard Worker add v27.4s,v27.4s,v31.4s // += 4 659*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[x0,#32] 660*8fb009dcSAndroid Build Coastguard Worker add v28.4s,v28.4s,v31.4s 661*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[x0,#48] 662*8fb009dcSAndroid Build Coastguard Worker add v29.4s,v29.4s,v31.4s 663*8fb009dcSAndroid Build Coastguard Worker add x0,x0,#64 664*8fb009dcSAndroid Build Coastguard Worker 665*8fb009dcSAndroid Build Coastguard Worker st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 666*8fb009dcSAndroid Build Coastguard Worker ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 667*8fb009dcSAndroid Build Coastguard Worker 668*8fb009dcSAndroid Build Coastguard Worker eor v4.16b,v4.16b,v20.16b 669*8fb009dcSAndroid Build Coastguard Worker eor v5.16b,v5.16b,v21.16b 670*8fb009dcSAndroid Build Coastguard Worker eor v6.16b,v6.16b,v22.16b 671*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v23.16b 672*8fb009dcSAndroid Build Coastguard Worker st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 673*8fb009dcSAndroid Build Coastguard Worker 674*8fb009dcSAndroid Build Coastguard Worker eor v16.16b,v16.16b,v0.16b 675*8fb009dcSAndroid Build Coastguard Worker eor v17.16b,v17.16b,v1.16b 676*8fb009dcSAndroid Build Coastguard Worker eor v18.16b,v18.16b,v2.16b 677*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v3.16b 678*8fb009dcSAndroid Build Coastguard Worker st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 679*8fb009dcSAndroid Build Coastguard Worker 680*8fb009dcSAndroid Build Coastguard Worker b.hi Loop_outer_neon 681*8fb009dcSAndroid Build Coastguard Worker 682*8fb009dcSAndroid Build Coastguard Worker ldp x19,x20,[x29,#16] 683*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#64 684*8fb009dcSAndroid Build Coastguard Worker ldp x21,x22,[x29,#32] 685*8fb009dcSAndroid Build Coastguard Worker ldp x23,x24,[x29,#48] 686*8fb009dcSAndroid Build Coastguard Worker ldp x25,x26,[x29,#64] 687*8fb009dcSAndroid Build Coastguard Worker ldp x27,x28,[x29,#80] 688*8fb009dcSAndroid Build Coastguard Worker ldp x29,x30,[sp],#96 689*8fb009dcSAndroid Build Coastguard Worker AARCH64_VALIDATE_LINK_REGISTER 690*8fb009dcSAndroid Build Coastguard Worker ret 691*8fb009dcSAndroid Build Coastguard Worker 692*8fb009dcSAndroid Build Coastguard WorkerLtail_neon: 693*8fb009dcSAndroid Build Coastguard Worker add x2,x2,#256 694*8fb009dcSAndroid Build Coastguard Worker cmp x2,#64 695*8fb009dcSAndroid Build Coastguard Worker b.lo Less_than_64 696*8fb009dcSAndroid Build Coastguard Worker 697*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 698*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 699*8fb009dcSAndroid Build Coastguard Worker ldp x6,x8,[x1,#0] // load input 700*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 701*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 702*8fb009dcSAndroid Build Coastguard Worker ldp x10,x12,[x1,#16] 703*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 704*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 705*8fb009dcSAndroid Build Coastguard Worker ldp x14,x16,[x1,#32] 706*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 707*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 708*8fb009dcSAndroid Build Coastguard Worker ldp x19,x21,[x1,#48] 709*8fb009dcSAndroid Build Coastguard Worker add x1,x1,#64 710*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 711*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 712*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 713*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 714*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 715*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 716*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 717*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 718*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 719*8fb009dcSAndroid Build Coastguard Worker#endif 720*8fb009dcSAndroid Build Coastguard Worker eor x5,x5,x6 721*8fb009dcSAndroid Build Coastguard Worker eor x7,x7,x8 722*8fb009dcSAndroid Build Coastguard Worker eor x9,x9,x10 723*8fb009dcSAndroid Build Coastguard Worker eor x11,x11,x12 724*8fb009dcSAndroid Build Coastguard Worker eor x13,x13,x14 725*8fb009dcSAndroid Build Coastguard Worker eor x15,x15,x16 726*8fb009dcSAndroid Build Coastguard Worker eor x17,x17,x19 727*8fb009dcSAndroid Build Coastguard Worker eor x20,x20,x21 728*8fb009dcSAndroid Build Coastguard Worker 729*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[x0,#0] // store output 730*8fb009dcSAndroid Build Coastguard Worker add x28,x28,#4 // increment counter 731*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[x0,#16] 732*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[x0,#32] 733*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[x0,#48] 734*8fb009dcSAndroid Build Coastguard Worker add x0,x0,#64 735*8fb009dcSAndroid Build Coastguard Worker b.eq Ldone_neon 736*8fb009dcSAndroid Build Coastguard Worker sub x2,x2,#64 737*8fb009dcSAndroid Build Coastguard Worker cmp x2,#64 738*8fb009dcSAndroid Build Coastguard Worker b.lo Less_than_128 739*8fb009dcSAndroid Build Coastguard Worker 740*8fb009dcSAndroid Build Coastguard Worker ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 741*8fb009dcSAndroid Build Coastguard Worker eor v0.16b,v0.16b,v20.16b 742*8fb009dcSAndroid Build Coastguard Worker eor v1.16b,v1.16b,v21.16b 743*8fb009dcSAndroid Build Coastguard Worker eor v2.16b,v2.16b,v22.16b 744*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v23.16b 745*8fb009dcSAndroid Build Coastguard Worker st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 746*8fb009dcSAndroid Build Coastguard Worker b.eq Ldone_neon 747*8fb009dcSAndroid Build Coastguard Worker sub x2,x2,#64 748*8fb009dcSAndroid Build Coastguard Worker cmp x2,#64 749*8fb009dcSAndroid Build Coastguard Worker b.lo Less_than_192 750*8fb009dcSAndroid Build Coastguard Worker 751*8fb009dcSAndroid Build Coastguard Worker ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 752*8fb009dcSAndroid Build Coastguard Worker eor v4.16b,v4.16b,v20.16b 753*8fb009dcSAndroid Build Coastguard Worker eor v5.16b,v5.16b,v21.16b 754*8fb009dcSAndroid Build Coastguard Worker eor v6.16b,v6.16b,v22.16b 755*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v23.16b 756*8fb009dcSAndroid Build Coastguard Worker st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 757*8fb009dcSAndroid Build Coastguard Worker b.eq Ldone_neon 758*8fb009dcSAndroid Build Coastguard Worker sub x2,x2,#64 759*8fb009dcSAndroid Build Coastguard Worker 760*8fb009dcSAndroid Build Coastguard Worker st1 {v16.16b,v17.16b,v18.16b,v19.16b},[sp] 761*8fb009dcSAndroid Build Coastguard Worker b Last_neon 762*8fb009dcSAndroid Build Coastguard Worker 763*8fb009dcSAndroid Build Coastguard WorkerLess_than_128: 764*8fb009dcSAndroid Build Coastguard Worker st1 {v0.16b,v1.16b,v2.16b,v3.16b},[sp] 765*8fb009dcSAndroid Build Coastguard Worker b Last_neon 766*8fb009dcSAndroid Build Coastguard WorkerLess_than_192: 767*8fb009dcSAndroid Build Coastguard Worker st1 {v4.16b,v5.16b,v6.16b,v7.16b},[sp] 768*8fb009dcSAndroid Build Coastguard Worker b Last_neon 769*8fb009dcSAndroid Build Coastguard Worker 770*8fb009dcSAndroid Build Coastguard Worker.align 4 771*8fb009dcSAndroid Build Coastguard WorkerLast_neon: 772*8fb009dcSAndroid Build Coastguard Worker sub x0,x0,#1 773*8fb009dcSAndroid Build Coastguard Worker add x1,x1,x2 774*8fb009dcSAndroid Build Coastguard Worker add x0,x0,x2 775*8fb009dcSAndroid Build Coastguard Worker add x4,sp,x2 776*8fb009dcSAndroid Build Coastguard Worker neg x2,x2 777*8fb009dcSAndroid Build Coastguard Worker 778*8fb009dcSAndroid Build Coastguard WorkerLoop_tail_neon: 779*8fb009dcSAndroid Build Coastguard Worker ldrb w10,[x1,x2] 780*8fb009dcSAndroid Build Coastguard Worker ldrb w11,[x4,x2] 781*8fb009dcSAndroid Build Coastguard Worker add x2,x2,#1 782*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w11 783*8fb009dcSAndroid Build Coastguard Worker strb w10,[x0,x2] 784*8fb009dcSAndroid Build Coastguard Worker cbnz x2,Loop_tail_neon 785*8fb009dcSAndroid Build Coastguard Worker 786*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#0] 787*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#16] 788*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#32] 789*8fb009dcSAndroid Build Coastguard Worker stp xzr,xzr,[sp,#48] 790*8fb009dcSAndroid Build Coastguard Worker 791*8fb009dcSAndroid Build Coastguard WorkerLdone_neon: 792*8fb009dcSAndroid Build Coastguard Worker ldp x19,x20,[x29,#16] 793*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#64 794*8fb009dcSAndroid Build Coastguard Worker ldp x21,x22,[x29,#32] 795*8fb009dcSAndroid Build Coastguard Worker ldp x23,x24,[x29,#48] 796*8fb009dcSAndroid Build Coastguard Worker ldp x25,x26,[x29,#64] 797*8fb009dcSAndroid Build Coastguard Worker ldp x27,x28,[x29,#80] 798*8fb009dcSAndroid Build Coastguard Worker ldp x29,x30,[sp],#96 799*8fb009dcSAndroid Build Coastguard Worker AARCH64_VALIDATE_LINK_REGISTER 800*8fb009dcSAndroid Build Coastguard Worker ret 801*8fb009dcSAndroid Build Coastguard Worker 802*8fb009dcSAndroid Build Coastguard Worker.def ChaCha20_512_neon 803*8fb009dcSAndroid Build Coastguard Worker .type 32 804*8fb009dcSAndroid Build Coastguard Worker.endef 805*8fb009dcSAndroid Build Coastguard Worker.align 5 806*8fb009dcSAndroid Build Coastguard WorkerChaCha20_512_neon: 807*8fb009dcSAndroid Build Coastguard Worker AARCH64_SIGN_LINK_REGISTER 808*8fb009dcSAndroid Build Coastguard Worker stp x29,x30,[sp,#-96]! 809*8fb009dcSAndroid Build Coastguard Worker add x29,sp,#0 810*8fb009dcSAndroid Build Coastguard Worker 811*8fb009dcSAndroid Build Coastguard Worker adrp x5,Lsigma 812*8fb009dcSAndroid Build Coastguard Worker add x5,x5,:lo12:Lsigma 813*8fb009dcSAndroid Build Coastguard Worker stp x19,x20,[sp,#16] 814*8fb009dcSAndroid Build Coastguard Worker stp x21,x22,[sp,#32] 815*8fb009dcSAndroid Build Coastguard Worker stp x23,x24,[sp,#48] 816*8fb009dcSAndroid Build Coastguard Worker stp x25,x26,[sp,#64] 817*8fb009dcSAndroid Build Coastguard Worker stp x27,x28,[sp,#80] 818*8fb009dcSAndroid Build Coastguard Worker 819*8fb009dcSAndroid Build Coastguard WorkerL512_or_more_neon: 820*8fb009dcSAndroid Build Coastguard Worker sub sp,sp,#128+64 821*8fb009dcSAndroid Build Coastguard Worker 822*8fb009dcSAndroid Build Coastguard Worker ldp x22,x23,[x5] // load sigma 823*8fb009dcSAndroid Build Coastguard Worker ld1 {v24.4s},[x5],#16 824*8fb009dcSAndroid Build Coastguard Worker ldp x24,x25,[x3] // load key 825*8fb009dcSAndroid Build Coastguard Worker ldp x26,x27,[x3,#16] 826*8fb009dcSAndroid Build Coastguard Worker ld1 {v25.4s,v26.4s},[x3] 827*8fb009dcSAndroid Build Coastguard Worker ldp x28,x30,[x4] // load counter 828*8fb009dcSAndroid Build Coastguard Worker ld1 {v27.4s},[x4] 829*8fb009dcSAndroid Build Coastguard Worker ld1 {v31.4s},[x5] 830*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 831*8fb009dcSAndroid Build Coastguard Worker rev64 v24.4s,v24.4s 832*8fb009dcSAndroid Build Coastguard Worker ror x24,x24,#32 833*8fb009dcSAndroid Build Coastguard Worker ror x25,x25,#32 834*8fb009dcSAndroid Build Coastguard Worker ror x26,x26,#32 835*8fb009dcSAndroid Build Coastguard Worker ror x27,x27,#32 836*8fb009dcSAndroid Build Coastguard Worker ror x28,x28,#32 837*8fb009dcSAndroid Build Coastguard Worker ror x30,x30,#32 838*8fb009dcSAndroid Build Coastguard Worker#endif 839*8fb009dcSAndroid Build Coastguard Worker add v27.4s,v27.4s,v31.4s // += 1 840*8fb009dcSAndroid Build Coastguard Worker stp q24,q25,[sp,#0] // off-load key block, invariant part 841*8fb009dcSAndroid Build Coastguard Worker add v27.4s,v27.4s,v31.4s // not typo 842*8fb009dcSAndroid Build Coastguard Worker str q26,[sp,#32] 843*8fb009dcSAndroid Build Coastguard Worker add v28.4s,v27.4s,v31.4s 844*8fb009dcSAndroid Build Coastguard Worker add v29.4s,v28.4s,v31.4s 845*8fb009dcSAndroid Build Coastguard Worker add v30.4s,v29.4s,v31.4s 846*8fb009dcSAndroid Build Coastguard Worker shl v31.4s,v31.4s,#2 // 1 -> 4 847*8fb009dcSAndroid Build Coastguard Worker 848*8fb009dcSAndroid Build Coastguard Worker stp d8,d9,[sp,#128+0] // meet ABI requirements 849*8fb009dcSAndroid Build Coastguard Worker stp d10,d11,[sp,#128+16] 850*8fb009dcSAndroid Build Coastguard Worker stp d12,d13,[sp,#128+32] 851*8fb009dcSAndroid Build Coastguard Worker stp d14,d15,[sp,#128+48] 852*8fb009dcSAndroid Build Coastguard Worker 853*8fb009dcSAndroid Build Coastguard Worker sub x2,x2,#512 // not typo 854*8fb009dcSAndroid Build Coastguard Worker 855*8fb009dcSAndroid Build Coastguard WorkerLoop_outer_512_neon: 856*8fb009dcSAndroid Build Coastguard Worker mov v0.16b,v24.16b 857*8fb009dcSAndroid Build Coastguard Worker mov v4.16b,v24.16b 858*8fb009dcSAndroid Build Coastguard Worker mov v8.16b,v24.16b 859*8fb009dcSAndroid Build Coastguard Worker mov v12.16b,v24.16b 860*8fb009dcSAndroid Build Coastguard Worker mov v16.16b,v24.16b 861*8fb009dcSAndroid Build Coastguard Worker mov v20.16b,v24.16b 862*8fb009dcSAndroid Build Coastguard Worker mov v1.16b,v25.16b 863*8fb009dcSAndroid Build Coastguard Worker mov w5,w22 // unpack key block 864*8fb009dcSAndroid Build Coastguard Worker mov v5.16b,v25.16b 865*8fb009dcSAndroid Build Coastguard Worker lsr x6,x22,#32 866*8fb009dcSAndroid Build Coastguard Worker mov v9.16b,v25.16b 867*8fb009dcSAndroid Build Coastguard Worker mov w7,w23 868*8fb009dcSAndroid Build Coastguard Worker mov v13.16b,v25.16b 869*8fb009dcSAndroid Build Coastguard Worker lsr x8,x23,#32 870*8fb009dcSAndroid Build Coastguard Worker mov v17.16b,v25.16b 871*8fb009dcSAndroid Build Coastguard Worker mov w9,w24 872*8fb009dcSAndroid Build Coastguard Worker mov v21.16b,v25.16b 873*8fb009dcSAndroid Build Coastguard Worker lsr x10,x24,#32 874*8fb009dcSAndroid Build Coastguard Worker mov v3.16b,v27.16b 875*8fb009dcSAndroid Build Coastguard Worker mov w11,w25 876*8fb009dcSAndroid Build Coastguard Worker mov v7.16b,v28.16b 877*8fb009dcSAndroid Build Coastguard Worker lsr x12,x25,#32 878*8fb009dcSAndroid Build Coastguard Worker mov v11.16b,v29.16b 879*8fb009dcSAndroid Build Coastguard Worker mov w13,w26 880*8fb009dcSAndroid Build Coastguard Worker mov v15.16b,v30.16b 881*8fb009dcSAndroid Build Coastguard Worker lsr x14,x26,#32 882*8fb009dcSAndroid Build Coastguard Worker mov v2.16b,v26.16b 883*8fb009dcSAndroid Build Coastguard Worker mov w15,w27 884*8fb009dcSAndroid Build Coastguard Worker mov v6.16b,v26.16b 885*8fb009dcSAndroid Build Coastguard Worker lsr x16,x27,#32 886*8fb009dcSAndroid Build Coastguard Worker add v19.4s,v3.4s,v31.4s // +4 887*8fb009dcSAndroid Build Coastguard Worker mov w17,w28 888*8fb009dcSAndroid Build Coastguard Worker add v23.4s,v7.4s,v31.4s // +4 889*8fb009dcSAndroid Build Coastguard Worker lsr x19,x28,#32 890*8fb009dcSAndroid Build Coastguard Worker mov v10.16b,v26.16b 891*8fb009dcSAndroid Build Coastguard Worker mov w20,w30 892*8fb009dcSAndroid Build Coastguard Worker mov v14.16b,v26.16b 893*8fb009dcSAndroid Build Coastguard Worker lsr x21,x30,#32 894*8fb009dcSAndroid Build Coastguard Worker mov v18.16b,v26.16b 895*8fb009dcSAndroid Build Coastguard Worker stp q27,q28,[sp,#48] // off-load key block, variable part 896*8fb009dcSAndroid Build Coastguard Worker mov v22.16b,v26.16b 897*8fb009dcSAndroid Build Coastguard Worker str q29,[sp,#80] 898*8fb009dcSAndroid Build Coastguard Worker 899*8fb009dcSAndroid Build Coastguard Worker mov x4,#5 900*8fb009dcSAndroid Build Coastguard Worker subs x2,x2,#512 901*8fb009dcSAndroid Build Coastguard WorkerLoop_upper_neon: 902*8fb009dcSAndroid Build Coastguard Worker sub x4,x4,#1 903*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 904*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 905*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 906*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 907*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 908*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 909*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 910*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 911*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 912*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 913*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 914*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 915*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 916*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 917*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 918*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 919*8fb009dcSAndroid Build Coastguard Worker eor v11.16b,v11.16b,v8.16b 920*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 921*8fb009dcSAndroid Build Coastguard Worker eor v15.16b,v15.16b,v12.16b 922*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 923*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 924*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 925*8fb009dcSAndroid Build Coastguard Worker eor v23.16b,v23.16b,v20.16b 926*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 927*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 928*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 929*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 930*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 931*8fb009dcSAndroid Build Coastguard Worker rev32 v11.8h,v11.8h 932*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 933*8fb009dcSAndroid Build Coastguard Worker rev32 v15.8h,v15.8h 934*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 935*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 936*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 937*8fb009dcSAndroid Build Coastguard Worker rev32 v23.8h,v23.8h 938*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 939*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 940*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 941*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 942*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 943*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 944*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 945*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 946*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 947*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 948*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 949*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 950*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 951*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 952*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 953*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 954*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 955*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 956*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 957*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 958*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 959*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 960*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 961*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 962*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 963*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#20 964*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 965*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#20 966*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 967*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#20 968*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 969*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#20 970*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 971*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#20 972*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 973*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#20 974*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 975*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#12 976*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 977*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#12 978*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 979*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#12 980*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 981*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#12 982*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 983*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#12 984*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 985*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#12 986*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 987*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 988*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 989*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 990*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 991*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 992*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 993*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 994*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 995*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 996*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 997*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 998*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 999*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v3.16b,v0.16b 1000*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1001*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v7.16b,v4.16b 1002*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1003*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v11.16b,v8.16b 1004*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1005*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v15.16b,v12.16b 1006*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1007*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v19.16b,v16.16b 1008*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1009*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v23.16b,v20.16b 1010*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1011*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v24.4s,#24 1012*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1013*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v25.4s,#24 1014*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1015*8fb009dcSAndroid Build Coastguard Worker ushr v11.4s,v26.4s,#24 1016*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1017*8fb009dcSAndroid Build Coastguard Worker ushr v15.4s,v27.4s,#24 1018*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1019*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v28.4s,#24 1020*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1021*8fb009dcSAndroid Build Coastguard Worker ushr v23.4s,v29.4s,#24 1022*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1023*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v24.4s,#8 1024*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1025*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v25.4s,#8 1026*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1027*8fb009dcSAndroid Build Coastguard Worker sli v11.4s,v26.4s,#8 1028*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1029*8fb009dcSAndroid Build Coastguard Worker sli v15.4s,v27.4s,#8 1030*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1031*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v28.4s,#8 1032*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1033*8fb009dcSAndroid Build Coastguard Worker sli v23.4s,v29.4s,#8 1034*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1035*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1036*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1037*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1038*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1039*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1040*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1041*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1042*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1043*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1044*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1045*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1046*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1047*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1048*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1049*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1050*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1051*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1052*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1053*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1054*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1055*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1056*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1057*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1058*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1059*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#25 1060*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1061*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#25 1062*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1063*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#25 1064*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1065*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#25 1066*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1067*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#25 1068*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1069*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#25 1070*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1071*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#7 1072*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1073*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#7 1074*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1075*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#7 1076*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1077*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#7 1078*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1079*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#7 1080*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1081*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#7 1082*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1083*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 1084*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1085*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 1086*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1087*8fb009dcSAndroid Build Coastguard Worker ext v10.16b,v10.16b,v10.16b,#8 1088*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1089*8fb009dcSAndroid Build Coastguard Worker ext v14.16b,v14.16b,v14.16b,#8 1090*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1091*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 1092*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1093*8fb009dcSAndroid Build Coastguard Worker ext v22.16b,v22.16b,v22.16b,#8 1094*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1095*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#12 1096*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#12 1097*8fb009dcSAndroid Build Coastguard Worker ext v11.16b,v11.16b,v11.16b,#12 1098*8fb009dcSAndroid Build Coastguard Worker ext v15.16b,v15.16b,v15.16b,#12 1099*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#12 1100*8fb009dcSAndroid Build Coastguard Worker ext v23.16b,v23.16b,v23.16b,#12 1101*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#4 1102*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#4 1103*8fb009dcSAndroid Build Coastguard Worker ext v9.16b,v9.16b,v9.16b,#4 1104*8fb009dcSAndroid Build Coastguard Worker ext v13.16b,v13.16b,v13.16b,#4 1105*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#4 1106*8fb009dcSAndroid Build Coastguard Worker ext v21.16b,v21.16b,v21.16b,#4 1107*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1108*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1109*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1110*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1111*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1112*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1113*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1114*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1115*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1116*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1117*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1118*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1119*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 1120*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1121*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 1122*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1123*8fb009dcSAndroid Build Coastguard Worker eor v11.16b,v11.16b,v8.16b 1124*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1125*8fb009dcSAndroid Build Coastguard Worker eor v15.16b,v15.16b,v12.16b 1126*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1127*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 1128*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1129*8fb009dcSAndroid Build Coastguard Worker eor v23.16b,v23.16b,v20.16b 1130*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1131*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 1132*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1133*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 1134*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1135*8fb009dcSAndroid Build Coastguard Worker rev32 v11.8h,v11.8h 1136*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1137*8fb009dcSAndroid Build Coastguard Worker rev32 v15.8h,v15.8h 1138*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1139*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 1140*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1141*8fb009dcSAndroid Build Coastguard Worker rev32 v23.8h,v23.8h 1142*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1143*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1144*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1145*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1146*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1147*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1148*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1149*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1150*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1151*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1152*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1153*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1154*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1155*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1156*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1157*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1158*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1159*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1160*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1161*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1162*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1163*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1164*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1165*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1166*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1167*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#20 1168*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1169*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#20 1170*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1171*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#20 1172*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1173*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#20 1174*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1175*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#20 1176*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1177*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#20 1178*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1179*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#12 1180*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1181*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#12 1182*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1183*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#12 1184*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1185*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#12 1186*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1187*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#12 1188*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1189*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#12 1190*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1191*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1192*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1193*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1194*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1195*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1196*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1197*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1198*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1199*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1200*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1201*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1202*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1203*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v3.16b,v0.16b 1204*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1205*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v7.16b,v4.16b 1206*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1207*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v11.16b,v8.16b 1208*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1209*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v15.16b,v12.16b 1210*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1211*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v19.16b,v16.16b 1212*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1213*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v23.16b,v20.16b 1214*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1215*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v24.4s,#24 1216*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1217*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v25.4s,#24 1218*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1219*8fb009dcSAndroid Build Coastguard Worker ushr v11.4s,v26.4s,#24 1220*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1221*8fb009dcSAndroid Build Coastguard Worker ushr v15.4s,v27.4s,#24 1222*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1223*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v28.4s,#24 1224*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1225*8fb009dcSAndroid Build Coastguard Worker ushr v23.4s,v29.4s,#24 1226*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1227*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v24.4s,#8 1228*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1229*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v25.4s,#8 1230*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1231*8fb009dcSAndroid Build Coastguard Worker sli v11.4s,v26.4s,#8 1232*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1233*8fb009dcSAndroid Build Coastguard Worker sli v15.4s,v27.4s,#8 1234*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1235*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v28.4s,#8 1236*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1237*8fb009dcSAndroid Build Coastguard Worker sli v23.4s,v29.4s,#8 1238*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1239*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1240*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1241*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1242*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1243*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1244*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1245*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1246*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1247*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1248*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1249*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1250*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1251*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1252*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1253*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1254*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1255*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1256*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1257*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1258*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1259*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1260*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1261*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1262*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1263*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#25 1264*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1265*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#25 1266*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1267*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#25 1268*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1269*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#25 1270*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1271*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#25 1272*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1273*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#25 1274*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1275*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#7 1276*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1277*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#7 1278*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1279*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#7 1280*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1281*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#7 1282*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1283*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#7 1284*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1285*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#7 1286*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1287*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 1288*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1289*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 1290*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1291*8fb009dcSAndroid Build Coastguard Worker ext v10.16b,v10.16b,v10.16b,#8 1292*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1293*8fb009dcSAndroid Build Coastguard Worker ext v14.16b,v14.16b,v14.16b,#8 1294*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1295*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 1296*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1297*8fb009dcSAndroid Build Coastguard Worker ext v22.16b,v22.16b,v22.16b,#8 1298*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1299*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#4 1300*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#4 1301*8fb009dcSAndroid Build Coastguard Worker ext v11.16b,v11.16b,v11.16b,#4 1302*8fb009dcSAndroid Build Coastguard Worker ext v15.16b,v15.16b,v15.16b,#4 1303*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#4 1304*8fb009dcSAndroid Build Coastguard Worker ext v23.16b,v23.16b,v23.16b,#4 1305*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#12 1306*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#12 1307*8fb009dcSAndroid Build Coastguard Worker ext v9.16b,v9.16b,v9.16b,#12 1308*8fb009dcSAndroid Build Coastguard Worker ext v13.16b,v13.16b,v13.16b,#12 1309*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#12 1310*8fb009dcSAndroid Build Coastguard Worker ext v21.16b,v21.16b,v21.16b,#12 1311*8fb009dcSAndroid Build Coastguard Worker cbnz x4,Loop_upper_neon 1312*8fb009dcSAndroid Build Coastguard Worker 1313*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w22 // accumulate key block 1314*8fb009dcSAndroid Build Coastguard Worker add x6,x6,x22,lsr#32 1315*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w23 1316*8fb009dcSAndroid Build Coastguard Worker add x8,x8,x23,lsr#32 1317*8fb009dcSAndroid Build Coastguard Worker add w9,w9,w24 1318*8fb009dcSAndroid Build Coastguard Worker add x10,x10,x24,lsr#32 1319*8fb009dcSAndroid Build Coastguard Worker add w11,w11,w25 1320*8fb009dcSAndroid Build Coastguard Worker add x12,x12,x25,lsr#32 1321*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w26 1322*8fb009dcSAndroid Build Coastguard Worker add x14,x14,x26,lsr#32 1323*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w27 1324*8fb009dcSAndroid Build Coastguard Worker add x16,x16,x27,lsr#32 1325*8fb009dcSAndroid Build Coastguard Worker add w17,w17,w28 1326*8fb009dcSAndroid Build Coastguard Worker add x19,x19,x28,lsr#32 1327*8fb009dcSAndroid Build Coastguard Worker add w20,w20,w30 1328*8fb009dcSAndroid Build Coastguard Worker add x21,x21,x30,lsr#32 1329*8fb009dcSAndroid Build Coastguard Worker 1330*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 1331*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 1332*8fb009dcSAndroid Build Coastguard Worker ldp x6,x8,[x1,#0] // load input 1333*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 1334*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 1335*8fb009dcSAndroid Build Coastguard Worker ldp x10,x12,[x1,#16] 1336*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 1337*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 1338*8fb009dcSAndroid Build Coastguard Worker ldp x14,x16,[x1,#32] 1339*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 1340*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 1341*8fb009dcSAndroid Build Coastguard Worker ldp x19,x21,[x1,#48] 1342*8fb009dcSAndroid Build Coastguard Worker add x1,x1,#64 1343*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 1344*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 1345*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 1346*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 1347*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 1348*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 1349*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 1350*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 1351*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 1352*8fb009dcSAndroid Build Coastguard Worker#endif 1353*8fb009dcSAndroid Build Coastguard Worker eor x5,x5,x6 1354*8fb009dcSAndroid Build Coastguard Worker eor x7,x7,x8 1355*8fb009dcSAndroid Build Coastguard Worker eor x9,x9,x10 1356*8fb009dcSAndroid Build Coastguard Worker eor x11,x11,x12 1357*8fb009dcSAndroid Build Coastguard Worker eor x13,x13,x14 1358*8fb009dcSAndroid Build Coastguard Worker eor x15,x15,x16 1359*8fb009dcSAndroid Build Coastguard Worker eor x17,x17,x19 1360*8fb009dcSAndroid Build Coastguard Worker eor x20,x20,x21 1361*8fb009dcSAndroid Build Coastguard Worker 1362*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[x0,#0] // store output 1363*8fb009dcSAndroid Build Coastguard Worker add x28,x28,#1 // increment counter 1364*8fb009dcSAndroid Build Coastguard Worker mov w5,w22 // unpack key block 1365*8fb009dcSAndroid Build Coastguard Worker lsr x6,x22,#32 1366*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[x0,#16] 1367*8fb009dcSAndroid Build Coastguard Worker mov w7,w23 1368*8fb009dcSAndroid Build Coastguard Worker lsr x8,x23,#32 1369*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[x0,#32] 1370*8fb009dcSAndroid Build Coastguard Worker mov w9,w24 1371*8fb009dcSAndroid Build Coastguard Worker lsr x10,x24,#32 1372*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[x0,#48] 1373*8fb009dcSAndroid Build Coastguard Worker add x0,x0,#64 1374*8fb009dcSAndroid Build Coastguard Worker mov w11,w25 1375*8fb009dcSAndroid Build Coastguard Worker lsr x12,x25,#32 1376*8fb009dcSAndroid Build Coastguard Worker mov w13,w26 1377*8fb009dcSAndroid Build Coastguard Worker lsr x14,x26,#32 1378*8fb009dcSAndroid Build Coastguard Worker mov w15,w27 1379*8fb009dcSAndroid Build Coastguard Worker lsr x16,x27,#32 1380*8fb009dcSAndroid Build Coastguard Worker mov w17,w28 1381*8fb009dcSAndroid Build Coastguard Worker lsr x19,x28,#32 1382*8fb009dcSAndroid Build Coastguard Worker mov w20,w30 1383*8fb009dcSAndroid Build Coastguard Worker lsr x21,x30,#32 1384*8fb009dcSAndroid Build Coastguard Worker 1385*8fb009dcSAndroid Build Coastguard Worker mov x4,#5 1386*8fb009dcSAndroid Build Coastguard WorkerLoop_lower_neon: 1387*8fb009dcSAndroid Build Coastguard Worker sub x4,x4,#1 1388*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1389*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1390*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1391*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1392*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1393*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1394*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1395*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1396*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1397*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1398*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1399*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1400*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 1401*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1402*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 1403*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1404*8fb009dcSAndroid Build Coastguard Worker eor v11.16b,v11.16b,v8.16b 1405*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1406*8fb009dcSAndroid Build Coastguard Worker eor v15.16b,v15.16b,v12.16b 1407*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1408*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 1409*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1410*8fb009dcSAndroid Build Coastguard Worker eor v23.16b,v23.16b,v20.16b 1411*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1412*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 1413*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1414*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 1415*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1416*8fb009dcSAndroid Build Coastguard Worker rev32 v11.8h,v11.8h 1417*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1418*8fb009dcSAndroid Build Coastguard Worker rev32 v15.8h,v15.8h 1419*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1420*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 1421*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1422*8fb009dcSAndroid Build Coastguard Worker rev32 v23.8h,v23.8h 1423*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1424*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1425*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1426*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1427*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1428*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1429*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1430*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1431*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1432*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1433*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1434*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1435*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1436*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1437*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1438*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1439*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1440*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1441*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1442*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1443*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1444*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1445*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1446*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1447*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1448*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#20 1449*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1450*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#20 1451*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1452*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#20 1453*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1454*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#20 1455*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1456*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#20 1457*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1458*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#20 1459*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1460*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#12 1461*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1462*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#12 1463*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1464*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#12 1465*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1466*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#12 1467*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1468*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#12 1469*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1470*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#12 1471*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1472*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1473*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1474*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1475*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1476*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1477*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1478*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1479*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1480*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1481*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1482*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1483*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1484*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v3.16b,v0.16b 1485*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1486*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v7.16b,v4.16b 1487*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1488*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v11.16b,v8.16b 1489*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1490*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v15.16b,v12.16b 1491*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1492*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v19.16b,v16.16b 1493*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1494*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v23.16b,v20.16b 1495*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1496*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v24.4s,#24 1497*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1498*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v25.4s,#24 1499*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1500*8fb009dcSAndroid Build Coastguard Worker ushr v11.4s,v26.4s,#24 1501*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1502*8fb009dcSAndroid Build Coastguard Worker ushr v15.4s,v27.4s,#24 1503*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1504*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v28.4s,#24 1505*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1506*8fb009dcSAndroid Build Coastguard Worker ushr v23.4s,v29.4s,#24 1507*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1508*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v24.4s,#8 1509*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1510*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v25.4s,#8 1511*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1512*8fb009dcSAndroid Build Coastguard Worker sli v11.4s,v26.4s,#8 1513*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1514*8fb009dcSAndroid Build Coastguard Worker sli v15.4s,v27.4s,#8 1515*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1516*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v28.4s,#8 1517*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1518*8fb009dcSAndroid Build Coastguard Worker sli v23.4s,v29.4s,#8 1519*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1520*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1521*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1522*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1523*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1524*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1525*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1526*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1527*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1528*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1529*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1530*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1531*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1532*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1533*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1534*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1535*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1536*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1537*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1538*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1539*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1540*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1541*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1542*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1543*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1544*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#25 1545*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1546*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#25 1547*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1548*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#25 1549*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1550*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#25 1551*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1552*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#25 1553*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1554*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#25 1555*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1556*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#7 1557*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1558*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#7 1559*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1560*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#7 1561*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1562*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#7 1563*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1564*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#7 1565*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1566*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#7 1567*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1568*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 1569*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1570*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 1571*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1572*8fb009dcSAndroid Build Coastguard Worker ext v10.16b,v10.16b,v10.16b,#8 1573*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1574*8fb009dcSAndroid Build Coastguard Worker ext v14.16b,v14.16b,v14.16b,#8 1575*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1576*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 1577*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1578*8fb009dcSAndroid Build Coastguard Worker ext v22.16b,v22.16b,v22.16b,#8 1579*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1580*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#12 1581*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#12 1582*8fb009dcSAndroid Build Coastguard Worker ext v11.16b,v11.16b,v11.16b,#12 1583*8fb009dcSAndroid Build Coastguard Worker ext v15.16b,v15.16b,v15.16b,#12 1584*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#12 1585*8fb009dcSAndroid Build Coastguard Worker ext v23.16b,v23.16b,v23.16b,#12 1586*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#4 1587*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#4 1588*8fb009dcSAndroid Build Coastguard Worker ext v9.16b,v9.16b,v9.16b,#4 1589*8fb009dcSAndroid Build Coastguard Worker ext v13.16b,v13.16b,v13.16b,#4 1590*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#4 1591*8fb009dcSAndroid Build Coastguard Worker ext v21.16b,v21.16b,v21.16b,#4 1592*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1593*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1594*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1595*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1596*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1597*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1598*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1599*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1600*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1601*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1602*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1603*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1604*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v0.16b 1605*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1606*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v4.16b 1607*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1608*8fb009dcSAndroid Build Coastguard Worker eor v11.16b,v11.16b,v8.16b 1609*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1610*8fb009dcSAndroid Build Coastguard Worker eor v15.16b,v15.16b,v12.16b 1611*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1612*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v16.16b 1613*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1614*8fb009dcSAndroid Build Coastguard Worker eor v23.16b,v23.16b,v20.16b 1615*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1616*8fb009dcSAndroid Build Coastguard Worker rev32 v3.8h,v3.8h 1617*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1618*8fb009dcSAndroid Build Coastguard Worker rev32 v7.8h,v7.8h 1619*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1620*8fb009dcSAndroid Build Coastguard Worker rev32 v11.8h,v11.8h 1621*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1622*8fb009dcSAndroid Build Coastguard Worker rev32 v15.8h,v15.8h 1623*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1624*8fb009dcSAndroid Build Coastguard Worker rev32 v19.8h,v19.8h 1625*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1626*8fb009dcSAndroid Build Coastguard Worker rev32 v23.8h,v23.8h 1627*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1628*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1629*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1630*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1631*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1632*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1633*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1634*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1635*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1636*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1637*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1638*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1639*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1640*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1641*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w9 1642*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1643*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w10 1644*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1645*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w11 1646*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1647*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w12 1648*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1649*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w5 1650*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1651*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w6 1652*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#20 1653*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w7 1654*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#20 1655*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w8 1656*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#20 1657*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1658*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#20 1659*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1660*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#20 1661*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1662*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#20 1663*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1664*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#12 1665*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w17 1666*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#12 1667*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w19 1668*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#12 1669*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w20 1670*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#12 1671*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w21 1672*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#12 1673*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w13 1674*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#12 1675*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w14 1676*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v1.4s 1677*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w15 1678*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v5.4s 1679*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w16 1680*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v9.4s 1681*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1682*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v13.4s 1683*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1684*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v17.4s 1685*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1686*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v21.4s 1687*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1688*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v3.16b,v0.16b 1689*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1690*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v7.16b,v4.16b 1691*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1692*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v11.16b,v8.16b 1693*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1694*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v15.16b,v12.16b 1695*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1696*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v19.16b,v16.16b 1697*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1698*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v23.16b,v20.16b 1699*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1700*8fb009dcSAndroid Build Coastguard Worker ushr v3.4s,v24.4s,#24 1701*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1702*8fb009dcSAndroid Build Coastguard Worker ushr v7.4s,v25.4s,#24 1703*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1704*8fb009dcSAndroid Build Coastguard Worker ushr v11.4s,v26.4s,#24 1705*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#16 1706*8fb009dcSAndroid Build Coastguard Worker ushr v15.4s,v27.4s,#24 1707*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#16 1708*8fb009dcSAndroid Build Coastguard Worker ushr v19.4s,v28.4s,#24 1709*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#16 1710*8fb009dcSAndroid Build Coastguard Worker ushr v23.4s,v29.4s,#24 1711*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#16 1712*8fb009dcSAndroid Build Coastguard Worker sli v3.4s,v24.4s,#8 1713*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1714*8fb009dcSAndroid Build Coastguard Worker sli v7.4s,v25.4s,#8 1715*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1716*8fb009dcSAndroid Build Coastguard Worker sli v11.4s,v26.4s,#8 1717*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1718*8fb009dcSAndroid Build Coastguard Worker sli v15.4s,v27.4s,#8 1719*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1720*8fb009dcSAndroid Build Coastguard Worker sli v19.4s,v28.4s,#8 1721*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1722*8fb009dcSAndroid Build Coastguard Worker sli v23.4s,v29.4s,#8 1723*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1724*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v3.4s 1725*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1726*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v7.4s 1727*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1728*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v11.4s 1729*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#20 1730*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v15.4s 1731*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#20 1732*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v19.4s 1733*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#20 1734*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v23.4s 1735*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#20 1736*8fb009dcSAndroid Build Coastguard Worker eor v24.16b,v1.16b,v2.16b 1737*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w10 1738*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v5.16b,v6.16b 1739*8fb009dcSAndroid Build Coastguard Worker add w6,w6,w11 1740*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v9.16b,v10.16b 1741*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w12 1742*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v13.16b,v14.16b 1743*8fb009dcSAndroid Build Coastguard Worker add w8,w8,w9 1744*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v17.16b,v18.16b 1745*8fb009dcSAndroid Build Coastguard Worker eor w21,w21,w5 1746*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v21.16b,v22.16b 1747*8fb009dcSAndroid Build Coastguard Worker eor w17,w17,w6 1748*8fb009dcSAndroid Build Coastguard Worker ushr v1.4s,v24.4s,#25 1749*8fb009dcSAndroid Build Coastguard Worker eor w19,w19,w7 1750*8fb009dcSAndroid Build Coastguard Worker ushr v5.4s,v25.4s,#25 1751*8fb009dcSAndroid Build Coastguard Worker eor w20,w20,w8 1752*8fb009dcSAndroid Build Coastguard Worker ushr v9.4s,v26.4s,#25 1753*8fb009dcSAndroid Build Coastguard Worker ror w21,w21,#24 1754*8fb009dcSAndroid Build Coastguard Worker ushr v13.4s,v27.4s,#25 1755*8fb009dcSAndroid Build Coastguard Worker ror w17,w17,#24 1756*8fb009dcSAndroid Build Coastguard Worker ushr v17.4s,v28.4s,#25 1757*8fb009dcSAndroid Build Coastguard Worker ror w19,w19,#24 1758*8fb009dcSAndroid Build Coastguard Worker ushr v21.4s,v29.4s,#25 1759*8fb009dcSAndroid Build Coastguard Worker ror w20,w20,#24 1760*8fb009dcSAndroid Build Coastguard Worker sli v1.4s,v24.4s,#7 1761*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w21 1762*8fb009dcSAndroid Build Coastguard Worker sli v5.4s,v25.4s,#7 1763*8fb009dcSAndroid Build Coastguard Worker add w16,w16,w17 1764*8fb009dcSAndroid Build Coastguard Worker sli v9.4s,v26.4s,#7 1765*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w19 1766*8fb009dcSAndroid Build Coastguard Worker sli v13.4s,v27.4s,#7 1767*8fb009dcSAndroid Build Coastguard Worker add w14,w14,w20 1768*8fb009dcSAndroid Build Coastguard Worker sli v17.4s,v28.4s,#7 1769*8fb009dcSAndroid Build Coastguard Worker eor w10,w10,w15 1770*8fb009dcSAndroid Build Coastguard Worker sli v21.4s,v29.4s,#7 1771*8fb009dcSAndroid Build Coastguard Worker eor w11,w11,w16 1772*8fb009dcSAndroid Build Coastguard Worker ext v2.16b,v2.16b,v2.16b,#8 1773*8fb009dcSAndroid Build Coastguard Worker eor w12,w12,w13 1774*8fb009dcSAndroid Build Coastguard Worker ext v6.16b,v6.16b,v6.16b,#8 1775*8fb009dcSAndroid Build Coastguard Worker eor w9,w9,w14 1776*8fb009dcSAndroid Build Coastguard Worker ext v10.16b,v10.16b,v10.16b,#8 1777*8fb009dcSAndroid Build Coastguard Worker ror w10,w10,#25 1778*8fb009dcSAndroid Build Coastguard Worker ext v14.16b,v14.16b,v14.16b,#8 1779*8fb009dcSAndroid Build Coastguard Worker ror w11,w11,#25 1780*8fb009dcSAndroid Build Coastguard Worker ext v18.16b,v18.16b,v18.16b,#8 1781*8fb009dcSAndroid Build Coastguard Worker ror w12,w12,#25 1782*8fb009dcSAndroid Build Coastguard Worker ext v22.16b,v22.16b,v22.16b,#8 1783*8fb009dcSAndroid Build Coastguard Worker ror w9,w9,#25 1784*8fb009dcSAndroid Build Coastguard Worker ext v3.16b,v3.16b,v3.16b,#4 1785*8fb009dcSAndroid Build Coastguard Worker ext v7.16b,v7.16b,v7.16b,#4 1786*8fb009dcSAndroid Build Coastguard Worker ext v11.16b,v11.16b,v11.16b,#4 1787*8fb009dcSAndroid Build Coastguard Worker ext v15.16b,v15.16b,v15.16b,#4 1788*8fb009dcSAndroid Build Coastguard Worker ext v19.16b,v19.16b,v19.16b,#4 1789*8fb009dcSAndroid Build Coastguard Worker ext v23.16b,v23.16b,v23.16b,#4 1790*8fb009dcSAndroid Build Coastguard Worker ext v1.16b,v1.16b,v1.16b,#12 1791*8fb009dcSAndroid Build Coastguard Worker ext v5.16b,v5.16b,v5.16b,#12 1792*8fb009dcSAndroid Build Coastguard Worker ext v9.16b,v9.16b,v9.16b,#12 1793*8fb009dcSAndroid Build Coastguard Worker ext v13.16b,v13.16b,v13.16b,#12 1794*8fb009dcSAndroid Build Coastguard Worker ext v17.16b,v17.16b,v17.16b,#12 1795*8fb009dcSAndroid Build Coastguard Worker ext v21.16b,v21.16b,v21.16b,#12 1796*8fb009dcSAndroid Build Coastguard Worker cbnz x4,Loop_lower_neon 1797*8fb009dcSAndroid Build Coastguard Worker 1798*8fb009dcSAndroid Build Coastguard Worker add w5,w5,w22 // accumulate key block 1799*8fb009dcSAndroid Build Coastguard Worker ldp q24,q25,[sp,#0] 1800*8fb009dcSAndroid Build Coastguard Worker add x6,x6,x22,lsr#32 1801*8fb009dcSAndroid Build Coastguard Worker ldp q26,q27,[sp,#32] 1802*8fb009dcSAndroid Build Coastguard Worker add w7,w7,w23 1803*8fb009dcSAndroid Build Coastguard Worker ldp q28,q29,[sp,#64] 1804*8fb009dcSAndroid Build Coastguard Worker add x8,x8,x23,lsr#32 1805*8fb009dcSAndroid Build Coastguard Worker add v0.4s,v0.4s,v24.4s 1806*8fb009dcSAndroid Build Coastguard Worker add w9,w9,w24 1807*8fb009dcSAndroid Build Coastguard Worker add v4.4s,v4.4s,v24.4s 1808*8fb009dcSAndroid Build Coastguard Worker add x10,x10,x24,lsr#32 1809*8fb009dcSAndroid Build Coastguard Worker add v8.4s,v8.4s,v24.4s 1810*8fb009dcSAndroid Build Coastguard Worker add w11,w11,w25 1811*8fb009dcSAndroid Build Coastguard Worker add v12.4s,v12.4s,v24.4s 1812*8fb009dcSAndroid Build Coastguard Worker add x12,x12,x25,lsr#32 1813*8fb009dcSAndroid Build Coastguard Worker add v16.4s,v16.4s,v24.4s 1814*8fb009dcSAndroid Build Coastguard Worker add w13,w13,w26 1815*8fb009dcSAndroid Build Coastguard Worker add v20.4s,v20.4s,v24.4s 1816*8fb009dcSAndroid Build Coastguard Worker add x14,x14,x26,lsr#32 1817*8fb009dcSAndroid Build Coastguard Worker add v2.4s,v2.4s,v26.4s 1818*8fb009dcSAndroid Build Coastguard Worker add w15,w15,w27 1819*8fb009dcSAndroid Build Coastguard Worker add v6.4s,v6.4s,v26.4s 1820*8fb009dcSAndroid Build Coastguard Worker add x16,x16,x27,lsr#32 1821*8fb009dcSAndroid Build Coastguard Worker add v10.4s,v10.4s,v26.4s 1822*8fb009dcSAndroid Build Coastguard Worker add w17,w17,w28 1823*8fb009dcSAndroid Build Coastguard Worker add v14.4s,v14.4s,v26.4s 1824*8fb009dcSAndroid Build Coastguard Worker add x19,x19,x28,lsr#32 1825*8fb009dcSAndroid Build Coastguard Worker add v18.4s,v18.4s,v26.4s 1826*8fb009dcSAndroid Build Coastguard Worker add w20,w20,w30 1827*8fb009dcSAndroid Build Coastguard Worker add v22.4s,v22.4s,v26.4s 1828*8fb009dcSAndroid Build Coastguard Worker add x21,x21,x30,lsr#32 1829*8fb009dcSAndroid Build Coastguard Worker add v19.4s,v19.4s,v31.4s // +4 1830*8fb009dcSAndroid Build Coastguard Worker add x5,x5,x6,lsl#32 // pack 1831*8fb009dcSAndroid Build Coastguard Worker add v23.4s,v23.4s,v31.4s // +4 1832*8fb009dcSAndroid Build Coastguard Worker add x7,x7,x8,lsl#32 1833*8fb009dcSAndroid Build Coastguard Worker add v3.4s,v3.4s,v27.4s 1834*8fb009dcSAndroid Build Coastguard Worker ldp x6,x8,[x1,#0] // load input 1835*8fb009dcSAndroid Build Coastguard Worker add v7.4s,v7.4s,v28.4s 1836*8fb009dcSAndroid Build Coastguard Worker add x9,x9,x10,lsl#32 1837*8fb009dcSAndroid Build Coastguard Worker add v11.4s,v11.4s,v29.4s 1838*8fb009dcSAndroid Build Coastguard Worker add x11,x11,x12,lsl#32 1839*8fb009dcSAndroid Build Coastguard Worker add v15.4s,v15.4s,v30.4s 1840*8fb009dcSAndroid Build Coastguard Worker ldp x10,x12,[x1,#16] 1841*8fb009dcSAndroid Build Coastguard Worker add v19.4s,v19.4s,v27.4s 1842*8fb009dcSAndroid Build Coastguard Worker add x13,x13,x14,lsl#32 1843*8fb009dcSAndroid Build Coastguard Worker add v23.4s,v23.4s,v28.4s 1844*8fb009dcSAndroid Build Coastguard Worker add x15,x15,x16,lsl#32 1845*8fb009dcSAndroid Build Coastguard Worker add v1.4s,v1.4s,v25.4s 1846*8fb009dcSAndroid Build Coastguard Worker ldp x14,x16,[x1,#32] 1847*8fb009dcSAndroid Build Coastguard Worker add v5.4s,v5.4s,v25.4s 1848*8fb009dcSAndroid Build Coastguard Worker add x17,x17,x19,lsl#32 1849*8fb009dcSAndroid Build Coastguard Worker add v9.4s,v9.4s,v25.4s 1850*8fb009dcSAndroid Build Coastguard Worker add x20,x20,x21,lsl#32 1851*8fb009dcSAndroid Build Coastguard Worker add v13.4s,v13.4s,v25.4s 1852*8fb009dcSAndroid Build Coastguard Worker ldp x19,x21,[x1,#48] 1853*8fb009dcSAndroid Build Coastguard Worker add v17.4s,v17.4s,v25.4s 1854*8fb009dcSAndroid Build Coastguard Worker add x1,x1,#64 1855*8fb009dcSAndroid Build Coastguard Worker add v21.4s,v21.4s,v25.4s 1856*8fb009dcSAndroid Build Coastguard Worker 1857*8fb009dcSAndroid Build Coastguard Worker#ifdef __AARCH64EB__ 1858*8fb009dcSAndroid Build Coastguard Worker rev x5,x5 1859*8fb009dcSAndroid Build Coastguard Worker rev x7,x7 1860*8fb009dcSAndroid Build Coastguard Worker rev x9,x9 1861*8fb009dcSAndroid Build Coastguard Worker rev x11,x11 1862*8fb009dcSAndroid Build Coastguard Worker rev x13,x13 1863*8fb009dcSAndroid Build Coastguard Worker rev x15,x15 1864*8fb009dcSAndroid Build Coastguard Worker rev x17,x17 1865*8fb009dcSAndroid Build Coastguard Worker rev x20,x20 1866*8fb009dcSAndroid Build Coastguard Worker#endif 1867*8fb009dcSAndroid Build Coastguard Worker ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 1868*8fb009dcSAndroid Build Coastguard Worker eor x5,x5,x6 1869*8fb009dcSAndroid Build Coastguard Worker eor x7,x7,x8 1870*8fb009dcSAndroid Build Coastguard Worker eor x9,x9,x10 1871*8fb009dcSAndroid Build Coastguard Worker eor x11,x11,x12 1872*8fb009dcSAndroid Build Coastguard Worker eor x13,x13,x14 1873*8fb009dcSAndroid Build Coastguard Worker eor v0.16b,v0.16b,v24.16b 1874*8fb009dcSAndroid Build Coastguard Worker eor x15,x15,x16 1875*8fb009dcSAndroid Build Coastguard Worker eor v1.16b,v1.16b,v25.16b 1876*8fb009dcSAndroid Build Coastguard Worker eor x17,x17,x19 1877*8fb009dcSAndroid Build Coastguard Worker eor v2.16b,v2.16b,v26.16b 1878*8fb009dcSAndroid Build Coastguard Worker eor x20,x20,x21 1879*8fb009dcSAndroid Build Coastguard Worker eor v3.16b,v3.16b,v27.16b 1880*8fb009dcSAndroid Build Coastguard Worker ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 1881*8fb009dcSAndroid Build Coastguard Worker 1882*8fb009dcSAndroid Build Coastguard Worker stp x5,x7,[x0,#0] // store output 1883*8fb009dcSAndroid Build Coastguard Worker add x28,x28,#7 // increment counter 1884*8fb009dcSAndroid Build Coastguard Worker stp x9,x11,[x0,#16] 1885*8fb009dcSAndroid Build Coastguard Worker stp x13,x15,[x0,#32] 1886*8fb009dcSAndroid Build Coastguard Worker stp x17,x20,[x0,#48] 1887*8fb009dcSAndroid Build Coastguard Worker add x0,x0,#64 1888*8fb009dcSAndroid Build Coastguard Worker st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 1889*8fb009dcSAndroid Build Coastguard Worker 1890*8fb009dcSAndroid Build Coastguard Worker ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 1891*8fb009dcSAndroid Build Coastguard Worker eor v4.16b,v4.16b,v24.16b 1892*8fb009dcSAndroid Build Coastguard Worker eor v5.16b,v5.16b,v25.16b 1893*8fb009dcSAndroid Build Coastguard Worker eor v6.16b,v6.16b,v26.16b 1894*8fb009dcSAndroid Build Coastguard Worker eor v7.16b,v7.16b,v27.16b 1895*8fb009dcSAndroid Build Coastguard Worker st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 1896*8fb009dcSAndroid Build Coastguard Worker 1897*8fb009dcSAndroid Build Coastguard Worker ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 1898*8fb009dcSAndroid Build Coastguard Worker eor v8.16b,v8.16b,v0.16b 1899*8fb009dcSAndroid Build Coastguard Worker ldp q24,q25,[sp,#0] 1900*8fb009dcSAndroid Build Coastguard Worker eor v9.16b,v9.16b,v1.16b 1901*8fb009dcSAndroid Build Coastguard Worker ldp q26,q27,[sp,#32] 1902*8fb009dcSAndroid Build Coastguard Worker eor v10.16b,v10.16b,v2.16b 1903*8fb009dcSAndroid Build Coastguard Worker eor v11.16b,v11.16b,v3.16b 1904*8fb009dcSAndroid Build Coastguard Worker st1 {v8.16b,v9.16b,v10.16b,v11.16b},[x0],#64 1905*8fb009dcSAndroid Build Coastguard Worker 1906*8fb009dcSAndroid Build Coastguard Worker ld1 {v8.16b,v9.16b,v10.16b,v11.16b},[x1],#64 1907*8fb009dcSAndroid Build Coastguard Worker eor v12.16b,v12.16b,v4.16b 1908*8fb009dcSAndroid Build Coastguard Worker eor v13.16b,v13.16b,v5.16b 1909*8fb009dcSAndroid Build Coastguard Worker eor v14.16b,v14.16b,v6.16b 1910*8fb009dcSAndroid Build Coastguard Worker eor v15.16b,v15.16b,v7.16b 1911*8fb009dcSAndroid Build Coastguard Worker st1 {v12.16b,v13.16b,v14.16b,v15.16b},[x0],#64 1912*8fb009dcSAndroid Build Coastguard Worker 1913*8fb009dcSAndroid Build Coastguard Worker ld1 {v12.16b,v13.16b,v14.16b,v15.16b},[x1],#64 1914*8fb009dcSAndroid Build Coastguard Worker eor v16.16b,v16.16b,v8.16b 1915*8fb009dcSAndroid Build Coastguard Worker eor v17.16b,v17.16b,v9.16b 1916*8fb009dcSAndroid Build Coastguard Worker eor v18.16b,v18.16b,v10.16b 1917*8fb009dcSAndroid Build Coastguard Worker eor v19.16b,v19.16b,v11.16b 1918*8fb009dcSAndroid Build Coastguard Worker st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 1919*8fb009dcSAndroid Build Coastguard Worker 1920*8fb009dcSAndroid Build Coastguard Worker shl v0.4s,v31.4s,#1 // 4 -> 8 1921*8fb009dcSAndroid Build Coastguard Worker eor v20.16b,v20.16b,v12.16b 1922*8fb009dcSAndroid Build Coastguard Worker eor v21.16b,v21.16b,v13.16b 1923*8fb009dcSAndroid Build Coastguard Worker eor v22.16b,v22.16b,v14.16b 1924*8fb009dcSAndroid Build Coastguard Worker eor v23.16b,v23.16b,v15.16b 1925*8fb009dcSAndroid Build Coastguard Worker st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 1926*8fb009dcSAndroid Build Coastguard Worker 1927*8fb009dcSAndroid Build Coastguard Worker add v27.4s,v27.4s,v0.4s // += 8 1928*8fb009dcSAndroid Build Coastguard Worker add v28.4s,v28.4s,v0.4s 1929*8fb009dcSAndroid Build Coastguard Worker add v29.4s,v29.4s,v0.4s 1930*8fb009dcSAndroid Build Coastguard Worker add v30.4s,v30.4s,v0.4s 1931*8fb009dcSAndroid Build Coastguard Worker 1932*8fb009dcSAndroid Build Coastguard Worker b.hs Loop_outer_512_neon 1933*8fb009dcSAndroid Build Coastguard Worker 1934*8fb009dcSAndroid Build Coastguard Worker adds x2,x2,#512 1935*8fb009dcSAndroid Build Coastguard Worker ushr v0.4s,v31.4s,#2 // 4 -> 1 1936*8fb009dcSAndroid Build Coastguard Worker 1937*8fb009dcSAndroid Build Coastguard Worker ldp d8,d9,[sp,#128+0] // meet ABI requirements 1938*8fb009dcSAndroid Build Coastguard Worker ldp d10,d11,[sp,#128+16] 1939*8fb009dcSAndroid Build Coastguard Worker ldp d12,d13,[sp,#128+32] 1940*8fb009dcSAndroid Build Coastguard Worker ldp d14,d15,[sp,#128+48] 1941*8fb009dcSAndroid Build Coastguard Worker 1942*8fb009dcSAndroid Build Coastguard Worker stp q24,q31,[sp,#0] // wipe off-load area 1943*8fb009dcSAndroid Build Coastguard Worker stp q24,q31,[sp,#32] 1944*8fb009dcSAndroid Build Coastguard Worker stp q24,q31,[sp,#64] 1945*8fb009dcSAndroid Build Coastguard Worker 1946*8fb009dcSAndroid Build Coastguard Worker b.eq Ldone_512_neon 1947*8fb009dcSAndroid Build Coastguard Worker 1948*8fb009dcSAndroid Build Coastguard Worker cmp x2,#192 1949*8fb009dcSAndroid Build Coastguard Worker sub v27.4s,v27.4s,v0.4s // -= 1 1950*8fb009dcSAndroid Build Coastguard Worker sub v28.4s,v28.4s,v0.4s 1951*8fb009dcSAndroid Build Coastguard Worker sub v29.4s,v29.4s,v0.4s 1952*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#128 1953*8fb009dcSAndroid Build Coastguard Worker b.hs Loop_outer_neon 1954*8fb009dcSAndroid Build Coastguard Worker 1955*8fb009dcSAndroid Build Coastguard Worker eor v25.16b,v25.16b,v25.16b 1956*8fb009dcSAndroid Build Coastguard Worker eor v26.16b,v26.16b,v26.16b 1957*8fb009dcSAndroid Build Coastguard Worker eor v27.16b,v27.16b,v27.16b 1958*8fb009dcSAndroid Build Coastguard Worker eor v28.16b,v28.16b,v28.16b 1959*8fb009dcSAndroid Build Coastguard Worker eor v29.16b,v29.16b,v29.16b 1960*8fb009dcSAndroid Build Coastguard Worker eor v30.16b,v30.16b,v30.16b 1961*8fb009dcSAndroid Build Coastguard Worker b Loop_outer 1962*8fb009dcSAndroid Build Coastguard Worker 1963*8fb009dcSAndroid Build Coastguard WorkerLdone_512_neon: 1964*8fb009dcSAndroid Build Coastguard Worker ldp x19,x20,[x29,#16] 1965*8fb009dcSAndroid Build Coastguard Worker add sp,sp,#128+64 1966*8fb009dcSAndroid Build Coastguard Worker ldp x21,x22,[x29,#32] 1967*8fb009dcSAndroid Build Coastguard Worker ldp x23,x24,[x29,#48] 1968*8fb009dcSAndroid Build Coastguard Worker ldp x25,x26,[x29,#64] 1969*8fb009dcSAndroid Build Coastguard Worker ldp x27,x28,[x29,#80] 1970*8fb009dcSAndroid Build Coastguard Worker ldp x29,x30,[sp],#96 1971*8fb009dcSAndroid Build Coastguard Worker AARCH64_VALIDATE_LINK_REGISTER 1972*8fb009dcSAndroid Build Coastguard Worker ret 1973*8fb009dcSAndroid Build Coastguard Worker 1974*8fb009dcSAndroid Build Coastguard Worker#endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(_WIN32) 1975