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