1392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#include "arm_arch.h" 2392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifdef __ARMEL__ 3392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define LO 0 4392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define HI 4 5392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define WORD64(hi0,lo0,hi1,lo1) .word lo0,hi0, lo1,hi1 6392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 7392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define HI 0 8392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define LO 4 9392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom# define WORD64(hi0,lo0,hi1,lo1) .word hi0,lo0, hi1,lo1 10392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 11392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.text 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.code 32 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type K512,%object 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 5 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectK512: 17392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x428a2f98,0xd728ae22, 0x71374491,0x23ef65cd) 18392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xb5c0fbcf,0xec4d3b2f, 0xe9b5dba5,0x8189dbbc) 19392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x3956c25b,0xf348b538, 0x59f111f1,0xb605d019) 20392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x923f82a4,0xaf194f9b, 0xab1c5ed5,0xda6d8118) 21392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xd807aa98,0xa3030242, 0x12835b01,0x45706fbe) 22392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x243185be,0x4ee4b28c, 0x550c7dc3,0xd5ffb4e2) 23392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x72be5d74,0xf27b896f, 0x80deb1fe,0x3b1696b1) 24392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x9bdc06a7,0x25c71235, 0xc19bf174,0xcf692694) 25392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xe49b69c1,0x9ef14ad2, 0xefbe4786,0x384f25e3) 26392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x0fc19dc6,0x8b8cd5b5, 0x240ca1cc,0x77ac9c65) 27392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x2de92c6f,0x592b0275, 0x4a7484aa,0x6ea6e483) 28392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x5cb0a9dc,0xbd41fbd4, 0x76f988da,0x831153b5) 29392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x983e5152,0xee66dfab, 0xa831c66d,0x2db43210) 30392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xb00327c8,0x98fb213f, 0xbf597fc7,0xbeef0ee4) 31392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xc6e00bf3,0x3da88fc2, 0xd5a79147,0x930aa725) 32392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x06ca6351,0xe003826f, 0x14292967,0x0a0e6e70) 33392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x27b70a85,0x46d22ffc, 0x2e1b2138,0x5c26c926) 34392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x4d2c6dfc,0x5ac42aed, 0x53380d13,0x9d95b3df) 35392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x650a7354,0x8baf63de, 0x766a0abb,0x3c77b2a8) 36392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x81c2c92e,0x47edaee6, 0x92722c85,0x1482353b) 37392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xa2bfe8a1,0x4cf10364, 0xa81a664b,0xbc423001) 38392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xc24b8b70,0xd0f89791, 0xc76c51a3,0x0654be30) 39392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xd192e819,0xd6ef5218, 0xd6990624,0x5565a910) 40392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xf40e3585,0x5771202a, 0x106aa070,0x32bbd1b8) 41392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x19a4c116,0xb8d2d0c8, 0x1e376c08,0x5141ab53) 42392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x2748774c,0xdf8eeb99, 0x34b0bcb5,0xe19b48a8) 43392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x391c0cb3,0xc5c95a63, 0x4ed8aa4a,0xe3418acb) 44392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x5b9cca4f,0x7763e373, 0x682e6ff3,0xd6b2b8a3) 45392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x748f82ee,0x5defb2fc, 0x78a5636f,0x43172f60) 46392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x84c87814,0xa1f0ab72, 0x8cc70208,0x1a6439ec) 47392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x90befffa,0x23631e28, 0xa4506ceb,0xde82bde9) 48392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xbef9a3f7,0xb2c67915, 0xc67178f2,0xe372532b) 49392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xca273ece,0xea26619c, 0xd186b8c7,0x21c0c207) 50392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0xeada7dd6,0xcde0eb1e, 0xf57d4f7f,0xee6ed178) 51392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x06f067aa,0x72176fba, 0x0a637dc5,0xa2c898a6) 52392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x113f9804,0xbef90dae, 0x1b710b35,0x131c471b) 53392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x28db77f5,0x23047d84, 0x32caab7b,0x40c72493) 54392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c) 55392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a) 56392aa7cc7d2b122614c5393c3e357da07fd07af3Brian CarlstromWORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size K512,.-K512 58392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.LOPENSSL_armcap: 59392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.word OPENSSL_armcap_P-sha512_block_data_order 60392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.skip 32-4 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global sha512_block_data_order 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type sha512_block_data_order,%function 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectsha512_block_data_order: 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub r3,pc,#8 @ sha512_block_data_order 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r2,r1,r2,lsl#7 @ len to point at the end of inp 67392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 68392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,.LOPENSSL_armcap 69392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r3,r12] @ OPENSSL_armcap_P 70392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom tst r12,#1 71392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom bne .LNEON 72392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project stmdb sp!,{r4-r12,lr} 74392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom sub r14,r3,#672 @ K512 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub sp,sp,#9*8 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 77392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r7,[r0,#32+LO] 78392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r8,[r0,#32+HI] 79392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#48+LO] 80392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#48+HI] 81392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#56+LO] 82392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#56+HI] 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Loop: 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r9, [sp,#48+0] 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r10, [sp,#48+4] 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r11, [sp,#56+0] 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r12, [sp,#56+4] 88392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r5,[r0,#0+LO] 89392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r6,[r0,#0+HI] 90392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r0,#8+LO] 91392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r4,[r0,#8+HI] 92392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#16+LO] 93392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#16+HI] 94392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#24+LO] 95392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#24+HI] 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r3,[sp,#8+0] 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r4,[sp,#8+4] 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r9, [sp,#16+0] 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r10, [sp,#16+4] 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r11, [sp,#24+0] 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r12, [sp,#24+4] 102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r0,#40+LO] 103392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r4,[r0,#40+HI] 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r3,[sp,#40+0] 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str r4,[sp,#40+4] 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L00_15: 108392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__<7 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#7] 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r9, [r1,#6] 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r10, [r1,#5] 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r11, [r1,#4] 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r4,[r1,#3] 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12, [r1,#2] 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r9,lsl#8 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r9, [r1,#1] 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r10,lsl#16 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r10, [r1],#8 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r11,lsl#24 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r4,r4,r12,lsl#8 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r4,r4,r9,lsl#16 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r4,r4,r10,lsl#24 123392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 124392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1,#4] 125392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r4,[r1],#8 126392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifdef __ARMEL__ 127392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 128392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r4,r4 129392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 130392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ Sigma1(x) (ROTR((x),14) ^ ROTR((x),18) ^ ROTR((x),41)) 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>14^hi<<18 ^ lo>>18^hi<<14 ^ hi>>9^lo<<23 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>14^lo<<18 ^ hi>>18^lo<<14 ^ lo>>9^hi<<23 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r7,lsr#14 135392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#64+0] 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r8,lsr#14 137392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r4,[sp,#64+4] 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsl#18 139392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#56+0] @ h.lo 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsl#18 141392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[sp,#56+4] @ h.hi 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r7,lsr#18 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r8,lsr#18 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsl#14 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsl#14 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsr#9 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsr#9 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r7,lsl#23 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r8,lsl#23 @ Sigma1(e) 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r9,[sp,#40+0] @ f.lo 15243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adc r4,r4,r10 @ T += Sigma1(e) 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#40+4] @ f.hi 15443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adds r3,r3,r11 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r11,[sp,#48+0] @ g.lo 15643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adc r4,r4,r12 @ T += h 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#48+4] @ g.hi 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11 16043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r7,[sp,#32+0] 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r12 16243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r8,[sp,#32+4] 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r9,r9,r7 16443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r5,[sp,#0+0] 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r10,r10,r8 16643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r6,[sp,#0+4] 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11 168392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[r14,#LO] @ K[i].lo 16943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r10,r10,r12 @ Ch(e,f,g) 170392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14,#HI] @ K[i].hi 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 17343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ldr r7,[sp,#24+0] @ d.lo 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 @ T += Ch(e,f,g) 17543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ldr r8,[sp,#24+4] @ d.hi 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r11 177392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom and r9,r11,#0xff 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r12 @ T += K[i] 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r7,r7,r3 180392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#8+0] @ b.lo 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r8,r8,r4 @ d += T 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project teq r9,#148 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#16+0] @ c.lo 185392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orreq r14,r14,#1 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ Sigma0(x) (ROTR((x),28) ^ ROTR((x),34) ^ ROTR((x),39)) 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>28^hi<<4 ^ hi>>2^lo<<30 ^ hi>>7^lo<<25 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>28^lo<<4 ^ lo>>2^hi<<30 ^ lo>>7^hi<<25 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r5,lsr#28 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r6,lsr#28 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsl#4 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsl#4 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsr#2 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsr#2 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r5,lsl#30 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r6,lsl#30 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsr#7 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsr#7 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r5,lsl#25 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r6,lsl#25 @ Sigma0(a) 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 202392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom and r9,r5,r11 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 @ T += Sigma0(a) 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#8+4] @ b.hi 206392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r5,r5,r11 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r11,[sp,#16+4] @ c.hi 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r5,r5,r12 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r12,r6,r10 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r6,r6,r10 211392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r5,r5,r9 @ Maj(a,b,c).lo 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r6,r6,r11 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r5,r5,r3 214392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r6,r6,r12 @ Maj(a,b,c).hi 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub sp,sp,#8 216392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom adc r6,r6,r4 @ h += T 217392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom tst r14,#1 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r14,r14,#8 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst r14,#1 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project beq .L00_15 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r9,[sp,#184+0] 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#184+4] 223392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom bic r14,r14,#1 224392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.L16_79: 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ sigma0(x) (ROTR((x),1) ^ ROTR((x),8) ^ ((x)>>7)) 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>1^hi<<31 ^ lo>>8^hi<<24 ^ lo>>7^hi<<25 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>1^lo<<31 ^ hi>>8^lo<<24 ^ hi>>7 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r3,r9,lsr#1 229392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#80+0] 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r4,r10,lsr#1 231392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[sp,#80+4] 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r3,r3,r10,lsl#31 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r9,lsl#31 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r3,r3,r9,lsr#8 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r10,lsr#8 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r3,r3,r10,lsl#24 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r9,lsl#24 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r3,r3,r9,lsr#7 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r10,lsr#7 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r3,r3,r10,lsl#25 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ sigma1(x) (ROTR((x),19) ^ ROTR((x),61) ^ ((x)>>6)) 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>19^hi<<13 ^ hi>>29^lo<<3 ^ lo>>6^hi<<26 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>19^lo<<13 ^ lo>>29^hi<<3 ^ hi>>6 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r11,lsr#19 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r12,lsr#19 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r12,lsl#13 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,lsl#13 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r12,lsr#29 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,lsr#29 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11,lsl#3 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r12,lsl#3 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11,lsr#6 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r12,lsr#6 255392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#120+0] 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r12,lsl#26 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#120+4] 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 260392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9,[sp,#192+0] 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#192+4] 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r11 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r12 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ Sigma1(x) (ROTR((x),14) ^ ROTR((x),18) ^ ROTR((x),41)) 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>14^hi<<18 ^ lo>>18^hi<<14 ^ hi>>9^lo<<23 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>14^lo<<18 ^ hi>>18^lo<<14 ^ lo>>9^hi<<23 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r7,lsr#14 272392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#64+0] 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r8,lsr#14 274392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r4,[sp,#64+4] 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsl#18 276392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#56+0] @ h.lo 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsl#18 278392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[sp,#56+4] @ h.hi 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r7,lsr#18 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r8,lsr#18 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsl#14 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsl#14 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r8,lsr#9 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r7,lsr#9 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r7,lsl#23 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r8,lsl#23 @ Sigma1(e) 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r9,[sp,#40+0] @ f.lo 28943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adc r4,r4,r10 @ T += Sigma1(e) 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#40+4] @ f.hi 29143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adds r3,r3,r11 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r11,[sp,#48+0] @ g.lo 29343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom adc r4,r4,r12 @ T += h 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#48+4] @ g.hi 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11 29743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r7,[sp,#32+0] 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r12 29943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r8,[sp,#32+4] 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r9,r9,r7 30143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r5,[sp,#0+0] 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r10,r10,r8 30343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom str r6,[sp,#0+4] 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r11 305392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[r14,#LO] @ K[i].lo 30643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r10,r10,r12 @ Ch(e,f,g) 307392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14,#HI] @ K[i].hi 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 31043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ldr r7,[sp,#24+0] @ d.lo 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 @ T += Ch(e,f,g) 31243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom ldr r8,[sp,#24+4] @ d.hi 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r11 314392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom and r9,r11,#0xff 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r12 @ T += K[i] 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r7,r7,r3 317392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11,[sp,#8+0] @ b.lo 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r8,r8,r4 @ d += T 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project teq r9,#23 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#16+0] @ c.lo 322392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orreq r14,r14,#1 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ Sigma0(x) (ROTR((x),28) ^ ROTR((x),34) ^ ROTR((x),39)) 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ LO lo>>28^hi<<4 ^ hi>>2^lo<<30 ^ hi>>7^lo<<25 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project @ HI hi>>28^lo<<4 ^ lo>>2^hi<<30 ^ lo>>7^hi<<25 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r5,lsr#28 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r6,lsr#28 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsl#4 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsl#4 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsr#2 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsr#2 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r5,lsl#30 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r6,lsl#30 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r6,lsr#7 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r5,lsr#7 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r5,lsl#25 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r6,lsl#25 @ Sigma0(a) 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r3,r3,r9 339392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom and r9,r5,r11 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r4,r4,r10 @ T += Sigma0(a) 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r10,[sp,#8+4] @ b.hi 343392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r5,r5,r11 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r11,[sp,#16+4] @ c.hi 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r5,r5,r12 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r12,r6,r10 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r6,r6,r10 348392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r5,r5,r9 @ Maj(a,b,c).lo 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r6,r6,r11 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r5,r5,r3 351392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom orr r6,r6,r12 @ Maj(a,b,c).hi 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub sp,sp,#8 353392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom adc r6,r6,r4 @ h += T 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst r14,#1 355392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r14,r14,#8 356392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldreq r9,[sp,#184+0] 357392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldreq r10,[sp,#184+4] 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project beq .L16_79 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bic r14,r14,#1 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#8+0] 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r4,[sp,#8+4] 363392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#0+LO] 364392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#0+HI] 365392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#8+LO] 366392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#8+HI] 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r9,r5,r9 368392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r9, [r0,#0+LO] 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r10,r6,r10 370392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r10, [r0,#0+HI] 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r11,r3,r11 372392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r11, [r0,#8+LO] 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r12,r4,r12 374392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r12, [r0,#8+HI] 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r5,[sp,#16+0] 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r6,[sp,#16+4] 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#24+0] 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r4,[sp,#24+4] 380392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#16+LO] 381392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#16+HI] 382392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#24+LO] 383392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#24+HI] 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r9,r5,r9 385392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r9, [r0,#16+LO] 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r10,r6,r10 387392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r10, [r0,#16+HI] 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r11,r3,r11 389392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r11, [r0,#24+LO] 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r12,r4,r12 391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r12, [r0,#24+HI] 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#40+0] 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r4,[sp,#40+4] 395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#32+LO] 396392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#32+HI] 397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#40+LO] 398392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#40+HI] 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r7,r7,r9 400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r7,[r0,#32+LO] 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r8,r8,r10 402392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r8,[r0,#32+HI] 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r11,r3,r11 404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r11, [r0,#40+LO] 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r12,r4,r12 406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r12, [r0,#40+HI] 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r5,[sp,#48+0] 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r6,[sp,#48+4] 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#56+0] 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r4,[sp,#56+4] 412392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r9, [r0,#48+LO] 413392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r10, [r0,#48+HI] 414392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r11, [r0,#56+LO] 415392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12, [r0,#56+HI] 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r9,r5,r9 417392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r9, [r0,#48+LO] 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r10,r6,r10 419392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r10, [r0,#48+HI] 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adds r11,r3,r11 421392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r11, [r0,#56+LO] 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project adc r12,r4,r12 423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r12, [r0,#56+HI] 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add sp,sp,#640 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub r14,r14,#640 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project teq r1,r2 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bne .Loop 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add sp,sp,#8*9 @ destroy frame 432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=5 433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldmia sp!,{r4-r12,pc} 434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldmia sp!,{r4-r12,lr} 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst lr,#1 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project moveq pc,lr @ be binary compatible with V4, yet 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project .word 0xe12fff1e @ interoperable with Thumb ISA:-) 439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.fpu neon 442392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.align 4 444392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.LNEON: 445392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom dmb @ errata #451034 on early Cortex A8 446392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vstmdb sp!,{d8-d15} @ ABI specification says so 447392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom sub r3,r3,#672 @ K512 448392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vldmia r0,{d16-d23} @ load context 449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.Loop_neon: 450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#14 @ 0 451392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 0<16 452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d0},[r1]! @ handles unaligned 453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#18 455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#41 456392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 457392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#50 458392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#46 459392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#23 460392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 0<16 && defined(__ARMEL__) 461392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d0,d0 462392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 463392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d23 464392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21,d22 465392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 466392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20 467392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22 @ Ch(e,f,g) 469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 470392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#28 471392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 472392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#34 473392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#39 474392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#36 475392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#30 476392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#25 477392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d0 478392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d16,d18 479392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16,d18 480392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d24,d25 481392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d17 482392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d26 @ Sigma0(a) 483392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 484392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 485392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 486392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d30 487392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#14 @ 1 488392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 1<16 489392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d1},[r1]! @ handles unaligned 490392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 491392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#18 492392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#41 493392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 494392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#50 495392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#46 496392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#23 497392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 1<16 && defined(__ARMEL__) 498392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d1,d1 499392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 500392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d22 501392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20,d21 502392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 503392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19 504392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 505392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21 @ Ch(e,f,g) 506392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 507392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#28 508392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 509392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#34 510392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#39 511392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#36 512392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#30 513392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#25 514392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d1 515392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d23,d17 516392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23,d17 517392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d24,d25 518392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d16 519392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d26 @ Sigma0(a) 520392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 521392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 522392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 523392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d30 524392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#14 @ 2 525392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 2<16 526392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d2},[r1]! @ handles unaligned 527392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 528392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#18 529392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#41 530392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 531392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#50 532392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#46 533392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#23 534392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 2<16 && defined(__ARMEL__) 535392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d2,d2 536392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 537392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d21 538392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19,d20 539392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 540392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18 541392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 542392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20 @ Ch(e,f,g) 543392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 544392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#28 545392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 546392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#34 547392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#39 548392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#36 549392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#30 550392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#25 551392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d2 552392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d22,d16 553392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22,d16 554392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d24,d25 555392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d23 556392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d26 @ Sigma0(a) 557392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 558392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 559392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 560392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d30 561392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#14 @ 3 562392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 3<16 563392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d3},[r1]! @ handles unaligned 564392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 565392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#18 566392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#41 567392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 568392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#50 569392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#46 570392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#23 571392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 3<16 && defined(__ARMEL__) 572392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d3,d3 573392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 574392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d20 575392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18,d19 576392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 577392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17 578392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 579392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19 @ Ch(e,f,g) 580392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 581392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#28 582392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 583392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#34 584392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#39 585392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#36 586392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#30 587392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#25 588392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d3 589392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d21,d23 590392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21,d23 591392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d24,d25 592392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d22 593392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d26 @ Sigma0(a) 594392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 595392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 596392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 597392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d30 598392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#14 @ 4 599392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 4<16 600392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d4},[r1]! @ handles unaligned 601392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 602392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#18 603392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#41 604392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 605392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#50 606392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#46 607392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#23 608392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 4<16 && defined(__ARMEL__) 609392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d4,d4 610392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 611392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d19 612392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17,d18 613392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 614392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16 615392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 616392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18 @ Ch(e,f,g) 617392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 618392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#28 619392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 620392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#34 621392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#39 622392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#36 623392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#30 624392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#25 625392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d4 626392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d20,d22 627392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20,d22 628392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d24,d25 629392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d21 630392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d26 @ Sigma0(a) 631392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 632392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 633392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 634392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d30 635392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#14 @ 5 636392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 5<16 637392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d5},[r1]! @ handles unaligned 638392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 639392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#18 640392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#41 641392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 642392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#50 643392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#46 644392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#23 645392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 5<16 && defined(__ARMEL__) 646392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d5,d5 647392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 648392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d18 649392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16,d17 650392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 651392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23 652392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 653392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17 @ Ch(e,f,g) 654392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 655392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#28 656392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 657392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#34 658392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#39 659392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#36 660392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#30 661392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#25 662392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d5 663392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d19,d21 664392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19,d21 665392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d24,d25 666392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d20 667392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d26 @ Sigma0(a) 668392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 669392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 670392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 671392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d30 672392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#14 @ 6 673392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 6<16 674392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d6},[r1]! @ handles unaligned 675392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 676392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#18 677392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#41 678392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 679392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#50 680392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#46 681392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#23 682392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 6<16 && defined(__ARMEL__) 683392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d6,d6 684392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 685392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d17 686392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23,d16 687392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 688392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22 689392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 690392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16 @ Ch(e,f,g) 691392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 692392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#28 693392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 694392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#34 695392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#39 696392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#36 697392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#30 698392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#25 699392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d6 700392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d18,d20 701392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18,d20 702392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d24,d25 703392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d19 704392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d26 @ Sigma0(a) 705392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 706392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 707392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 708392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d30 709392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#14 @ 7 710392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 7<16 711392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d7},[r1]! @ handles unaligned 712392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 713392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#18 714392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#41 715392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 716392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#50 717392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#46 718392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#23 719392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 7<16 && defined(__ARMEL__) 720392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d7,d7 721392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 722392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d16 723392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22,d23 724392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 725392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21 726392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 727392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23 @ Ch(e,f,g) 728392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 729392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#28 730392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 731392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#34 732392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#39 733392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#36 734392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#30 735392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#25 736392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d7 737392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d17,d19 738392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17,d19 739392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d24,d25 740392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d18 741392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d26 @ Sigma0(a) 742392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 743392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 744392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 745392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d30 746392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#14 @ 8 747392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 8<16 748392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d8},[r1]! @ handles unaligned 749392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 750392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#18 751392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#41 752392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 753392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#50 754392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#46 755392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#23 756392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 8<16 && defined(__ARMEL__) 757392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d8,d8 758392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 759392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d23 760392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21,d22 761392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 762392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20 763392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 764392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22 @ Ch(e,f,g) 765392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 766392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#28 767392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 768392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#34 769392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#39 770392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#36 771392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#30 772392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#25 773392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d8 774392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d16,d18 775392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16,d18 776392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d24,d25 777392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d17 778392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d26 @ Sigma0(a) 779392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 780392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 781392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 782392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d30 783392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#14 @ 9 784392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 9<16 785392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d9},[r1]! @ handles unaligned 786392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 787392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#18 788392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#41 789392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 790392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#50 791392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#46 792392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#23 793392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 9<16 && defined(__ARMEL__) 794392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d9,d9 795392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 796392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d22 797392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20,d21 798392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 799392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19 800392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 801392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21 @ Ch(e,f,g) 802392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 803392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#28 804392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 805392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#34 806392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#39 807392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#36 808392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#30 809392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#25 810392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d9 811392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d23,d17 812392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23,d17 813392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d24,d25 814392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d16 815392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d26 @ Sigma0(a) 816392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 817392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 818392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 819392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d30 820392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#14 @ 10 821392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 10<16 822392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d10},[r1]! @ handles unaligned 823392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 824392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#18 825392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#41 826392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 827392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#50 828392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#46 829392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#23 830392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 10<16 && defined(__ARMEL__) 831392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d10,d10 832392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 833392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d21 834392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19,d20 835392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 836392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18 837392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 838392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20 @ Ch(e,f,g) 839392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 840392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#28 841392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 842392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#34 843392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#39 844392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#36 845392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#30 846392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#25 847392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d10 848392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d22,d16 849392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22,d16 850392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d24,d25 851392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d23 852392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d26 @ Sigma0(a) 853392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 854392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 855392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 856392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d30 857392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#14 @ 11 858392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 11<16 859392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d11},[r1]! @ handles unaligned 860392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 861392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#18 862392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#41 863392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 864392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#50 865392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#46 866392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#23 867392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 11<16 && defined(__ARMEL__) 868392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d11,d11 869392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 870392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d20 871392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18,d19 872392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 873392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17 874392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 875392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19 @ Ch(e,f,g) 876392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 877392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#28 878392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 879392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#34 880392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#39 881392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#36 882392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#30 883392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#25 884392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d11 885392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d21,d23 886392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21,d23 887392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d24,d25 888392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d22 889392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d26 @ Sigma0(a) 890392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 891392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 892392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 893392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d30 894392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#14 @ 12 895392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 12<16 896392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d12},[r1]! @ handles unaligned 897392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 898392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#18 899392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#41 900392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 901392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#50 902392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#46 903392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#23 904392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 12<16 && defined(__ARMEL__) 905392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d12,d12 906392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 907392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d19 908392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17,d18 909392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 910392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16 911392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 912392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18 @ Ch(e,f,g) 913392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 914392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#28 915392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 916392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#34 917392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#39 918392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#36 919392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#30 920392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#25 921392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d12 922392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d20,d22 923392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20,d22 924392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d24,d25 925392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d21 926392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d26 @ Sigma0(a) 927392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 928392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 929392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 930392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d30 931392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#14 @ 13 932392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 13<16 933392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d13},[r1]! @ handles unaligned 934392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 935392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#18 936392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#41 937392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 938392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#50 939392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#46 940392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#23 941392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 13<16 && defined(__ARMEL__) 942392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d13,d13 943392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 944392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d18 945392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16,d17 946392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 947392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23 948392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 949392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17 @ Ch(e,f,g) 950392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 951392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#28 952392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 953392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#34 954392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#39 955392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#36 956392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#30 957392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#25 958392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d13 959392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d19,d21 960392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19,d21 961392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d24,d25 962392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d20 963392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d26 @ Sigma0(a) 964392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 965392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 966392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 967392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d30 968392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#14 @ 14 969392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 14<16 970392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d14},[r1]! @ handles unaligned 971392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 972392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#18 973392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#41 974392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 975392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#50 976392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#46 977392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#23 978392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 14<16 && defined(__ARMEL__) 979392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d14,d14 980392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 981392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d17 982392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23,d16 983392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 984392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22 985392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 986392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16 @ Ch(e,f,g) 987392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 988392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#28 989392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 990392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#34 991392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#39 992392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#36 993392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#30 994392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#25 995392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d14 996392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d18,d20 997392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18,d20 998392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d24,d25 999392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d19 1000392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d26 @ Sigma0(a) 1001392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1002392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 1003392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 1004392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d30 1005392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#14 @ 15 1006392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 15<16 1007392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d15},[r1]! @ handles unaligned 1008392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1009392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#18 1010392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#41 1011392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1012392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#50 1013392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#46 1014392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#23 1015392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 15<16 && defined(__ARMEL__) 1016392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 d15,d15 1017392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1018392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d16 1019392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22,d23 1020392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1021392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21 1022392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1023392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23 @ Ch(e,f,g) 1024392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1025392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#28 1026392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1027392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#34 1028392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#39 1029392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#36 1030392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#30 1031392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#25 1032392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d15 1033392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d17,d19 1034392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17,d19 1035392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d24,d25 1036392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d18 1037392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d26 @ Sigma0(a) 1038392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1039392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 1040392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 1041392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d30 1042392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r12,#4 1043392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.L16_79_neon: 1044392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom subs r12,#1 1045392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q7,#19 1046392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q7,#61 1047392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q7,#6 1048392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q7,#45 1049392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q0,q1,#8 @ X[i+1] 1050392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q7,#3 1051392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1052392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1053392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1054392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1055392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q0,q15 1056392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1057392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1058392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1059392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q4,q5,#8 @ X[i+9] 1060392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1061392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#14 @ from NEON_00_15 1062392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q0,q14 1063392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#18 @ from NEON_00_15 1064392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1065392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#41 @ from NEON_00_15 1066392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q0,q15 1067392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1068392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#50 1069392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#46 1070392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#23 1071392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 16<16 && defined(__ARMEL__) 1072392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1073392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1074392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d23 1075392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21,d22 1076392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1077392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20 1078392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1079392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22 @ Ch(e,f,g) 1080392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1081392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#28 1082392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1083392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#34 1084392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#39 1085392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#36 1086392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#30 1087392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#25 1088392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d0 1089392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d16,d18 1090392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16,d18 1091392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d24,d25 1092392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d17 1093392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d26 @ Sigma0(a) 1094392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1095392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 1096392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 1097392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d30 1098392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#14 @ 17 1099392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 17<16 1100392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d1},[r1]! @ handles unaligned 1101392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#18 1103392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#41 1104392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1105392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#50 1106392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#46 1107392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#23 1108392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 17<16 && defined(__ARMEL__) 1109392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1110392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1111392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d22 1112392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20,d21 1113392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1114392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19 1115392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1116392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21 @ Ch(e,f,g) 1117392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1118392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#28 1119392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1120392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#34 1121392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#39 1122392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#36 1123392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#30 1124392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#25 1125392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d1 1126392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d23,d17 1127392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23,d17 1128392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d24,d25 1129392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d16 1130392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d26 @ Sigma0(a) 1131392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1132392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 1133392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 1134392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d30 1135392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q0,#19 1136392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q0,#61 1137392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q0,#6 1138392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q0,#45 1139392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q1,q2,#8 @ X[i+1] 1140392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q0,#3 1141392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1142392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1143392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1144392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1145392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q1,q15 1146392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1147392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1148392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1149392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q5,q6,#8 @ X[i+9] 1150392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1151392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#14 @ from NEON_00_15 1152392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q1,q14 1153392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#18 @ from NEON_00_15 1154392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1155392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#41 @ from NEON_00_15 1156392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q1,q15 1157392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1158392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#50 1159392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#46 1160392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#23 1161392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 18<16 && defined(__ARMEL__) 1162392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1163392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1164392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d21 1165392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19,d20 1166392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1167392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18 1168392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1169392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20 @ Ch(e,f,g) 1170392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1171392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#28 1172392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1173392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#34 1174392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#39 1175392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#36 1176392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#30 1177392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#25 1178392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d2 1179392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d22,d16 1180392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22,d16 1181392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d24,d25 1182392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d23 1183392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d26 @ Sigma0(a) 1184392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1185392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 1186392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 1187392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d30 1188392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#14 @ 19 1189392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 19<16 1190392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d3},[r1]! @ handles unaligned 1191392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1192392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#18 1193392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#41 1194392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1195392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#50 1196392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#46 1197392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#23 1198392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 19<16 && defined(__ARMEL__) 1199392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1200392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1201392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d20 1202392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18,d19 1203392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1204392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17 1205392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1206392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19 @ Ch(e,f,g) 1207392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1208392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#28 1209392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1210392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#34 1211392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#39 1212392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#36 1213392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#30 1214392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#25 1215392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d3 1216392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d21,d23 1217392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21,d23 1218392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d24,d25 1219392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d22 1220392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d26 @ Sigma0(a) 1221392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1222392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 1223392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 1224392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d30 1225392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q1,#19 1226392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q1,#61 1227392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q1,#6 1228392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q1,#45 1229392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q2,q3,#8 @ X[i+1] 1230392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q1,#3 1231392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1232392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1233392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1234392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1235392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q2,q15 1236392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1237392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1238392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1239392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q6,q7,#8 @ X[i+9] 1240392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1241392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#14 @ from NEON_00_15 1242392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q2,q14 1243392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#18 @ from NEON_00_15 1244392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1245392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#41 @ from NEON_00_15 1246392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q2,q15 1247392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1248392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#50 1249392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#46 1250392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#23 1251392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 20<16 && defined(__ARMEL__) 1252392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1253392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1254392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d19 1255392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17,d18 1256392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1257392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16 1258392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1259392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18 @ Ch(e,f,g) 1260392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1261392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#28 1262392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1263392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#34 1264392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#39 1265392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#36 1266392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#30 1267392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#25 1268392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d4 1269392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d20,d22 1270392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20,d22 1271392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d24,d25 1272392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d21 1273392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d26 @ Sigma0(a) 1274392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1275392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 1276392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 1277392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d30 1278392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#14 @ 21 1279392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 21<16 1280392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d5},[r1]! @ handles unaligned 1281392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1282392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#18 1283392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#41 1284392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1285392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#50 1286392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#46 1287392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#23 1288392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 21<16 && defined(__ARMEL__) 1289392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1290392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1291392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d18 1292392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16,d17 1293392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1294392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23 1295392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1296392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17 @ Ch(e,f,g) 1297392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1298392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#28 1299392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1300392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#34 1301392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#39 1302392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#36 1303392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#30 1304392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#25 1305392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d5 1306392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d19,d21 1307392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19,d21 1308392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d24,d25 1309392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d20 1310392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d26 @ Sigma0(a) 1311392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1312392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 1313392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 1314392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d30 1315392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q2,#19 1316392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q2,#61 1317392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q2,#6 1318392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q2,#45 1319392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q3,q4,#8 @ X[i+1] 1320392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q2,#3 1321392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1322392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1323392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1324392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1325392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q3,q15 1326392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1327392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1328392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1329392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q7,q0,#8 @ X[i+9] 1330392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1331392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#14 @ from NEON_00_15 1332392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q3,q14 1333392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#18 @ from NEON_00_15 1334392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1335392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#41 @ from NEON_00_15 1336392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q3,q15 1337392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1338392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#50 1339392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#46 1340392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#23 1341392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 22<16 && defined(__ARMEL__) 1342392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1343392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1344392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d17 1345392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23,d16 1346392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1347392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22 1348392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1349392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16 @ Ch(e,f,g) 1350392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1351392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#28 1352392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1353392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#34 1354392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#39 1355392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#36 1356392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#30 1357392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#25 1358392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d6 1359392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d18,d20 1360392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18,d20 1361392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d24,d25 1362392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d19 1363392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d26 @ Sigma0(a) 1364392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1365392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 1366392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 1367392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d30 1368392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#14 @ 23 1369392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 23<16 1370392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d7},[r1]! @ handles unaligned 1371392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1372392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#18 1373392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#41 1374392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1375392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#50 1376392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#46 1377392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#23 1378392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 23<16 && defined(__ARMEL__) 1379392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1380392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1381392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d16 1382392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22,d23 1383392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1384392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21 1385392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1386392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23 @ Ch(e,f,g) 1387392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1388392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#28 1389392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1390392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#34 1391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#39 1392392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#36 1393392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#30 1394392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#25 1395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d7 1396392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d17,d19 1397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17,d19 1398392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d24,d25 1399392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d18 1400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d26 @ Sigma0(a) 1401392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1402392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 1403392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 1404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d30 1405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q3,#19 1406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q3,#61 1407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q3,#6 1408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q3,#45 1409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q4,q5,#8 @ X[i+1] 1410392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q3,#3 1411392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1412392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1413392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1414392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1415392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q4,q15 1416392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1417392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1418392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1419392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q0,q1,#8 @ X[i+9] 1420392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1421392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#14 @ from NEON_00_15 1422392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q4,q14 1423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#18 @ from NEON_00_15 1424392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1425392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#41 @ from NEON_00_15 1426392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q4,q15 1427392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1428392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#50 1429392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#46 1430392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#23 1431392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 24<16 && defined(__ARMEL__) 1432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d23 1435392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21,d22 1436392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1437392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20 1438392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22 @ Ch(e,f,g) 1440392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#28 1442392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#34 1444392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#39 1445392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#36 1446392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#30 1447392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#25 1448392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d8 1449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d16,d18 1450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16,d18 1451392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d24,d25 1452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d17 1453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d23,d26 @ Sigma0(a) 1454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 1456392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 1457392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d30 1458392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#14 @ 25 1459392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 25<16 1460392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d9},[r1]! @ handles unaligned 1461392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1462392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#18 1463392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#41 1464392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1465392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#50 1466392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#46 1467392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#23 1468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 25<16 && defined(__ARMEL__) 1469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1470392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1471392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d22 1472392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20,d21 1473392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1474392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19 1475392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1476392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d21 @ Ch(e,f,g) 1477392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1478392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#28 1479392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1480392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#34 1481392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#39 1482392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#36 1483392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#30 1484392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#25 1485392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d9 1486392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d23,d17 1487392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23,d17 1488392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d24,d25 1489392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d16 1490392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d22,d26 @ Sigma0(a) 1491392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1492392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 1493392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 1494392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d30 1495392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q4,#19 1496392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q4,#61 1497392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q4,#6 1498392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q4,#45 1499392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q5,q6,#8 @ X[i+1] 1500392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q4,#3 1501392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1502392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1503392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1504392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1505392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q5,q15 1506392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1507392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1508392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1509392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q1,q2,#8 @ X[i+9] 1510392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1511392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#14 @ from NEON_00_15 1512392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q5,q14 1513392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#18 @ from NEON_00_15 1514392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1515392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#41 @ from NEON_00_15 1516392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q5,q15 1517392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1518392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#50 1519392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#46 1520392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#23 1521392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 26<16 && defined(__ARMEL__) 1522392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1523392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1524392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d21 1525392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19,d20 1526392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1527392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18 1528392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1529392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d20 @ Ch(e,f,g) 1530392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1531392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#28 1532392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1533392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#34 1534392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#39 1535392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#36 1536392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#30 1537392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#25 1538392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d10 1539392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d22,d16 1540392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22,d16 1541392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d24,d25 1542392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d23 1543392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d21,d26 @ Sigma0(a) 1544392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1545392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 1546392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 1547392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d30 1548392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#14 @ 27 1549392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 27<16 1550392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d11},[r1]! @ handles unaligned 1551392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1552392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#18 1553392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#41 1554392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1555392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#50 1556392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#46 1557392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#23 1558392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 27<16 && defined(__ARMEL__) 1559392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1560392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1561392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d20 1562392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18,d19 1563392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1564392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17 1565392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1566392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d19 @ Ch(e,f,g) 1567392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1568392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#28 1569392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1570392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#34 1571392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#39 1572392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#36 1573392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#30 1574392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#25 1575392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d11 1576392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d21,d23 1577392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21,d23 1578392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d24,d25 1579392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d22 1580392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d20,d26 @ Sigma0(a) 1581392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1582392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 1583392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 1584392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d30 1585392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q5,#19 1586392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q5,#61 1587392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q5,#6 1588392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q5,#45 1589392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q6,q7,#8 @ X[i+1] 1590392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q5,#3 1591392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1592392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1593392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1594392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1595392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q6,q15 1596392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1597392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1598392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1599392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q2,q3,#8 @ X[i+9] 1600392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1601392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d16,#14 @ from NEON_00_15 1602392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q6,q14 1603392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d16,#18 @ from NEON_00_15 1604392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1605392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d16,#41 @ from NEON_00_15 1606392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q6,q15 1607392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1608392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d16,#50 1609392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d16,#46 1610392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d16,#23 1611392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 28<16 && defined(__ARMEL__) 1612392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1613392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1614392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d19 1615392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17,d18 1616392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1617392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d16 1618392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1619392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d18 @ Ch(e,f,g) 1620392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1621392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d20,#28 1622392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1623392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d20,#34 1624392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d20,#39 1625392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d20,#36 1626392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d20,#30 1627392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d20,#25 1628392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d12 1629392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d20,d22 1630392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d20,d22 1631392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d24,d25 1632392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d21 1633392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d19,d26 @ Sigma0(a) 1634392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1635392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d27 1636392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d23,d27 1637392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d19,d30 1638392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d23,#14 @ 29 1639392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 29<16 1640392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d13},[r1]! @ handles unaligned 1641392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1642392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d23,#18 1643392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d23,#41 1644392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1645392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d23,#50 1646392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d23,#46 1647392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d23,#23 1648392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 29<16 && defined(__ARMEL__) 1649392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1650392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1651392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d18 1652392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16,d17 1653392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1654392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d23 1655392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1656392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d17 @ Ch(e,f,g) 1657392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1658392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d19,#28 1659392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1660392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d19,#34 1661392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d19,#39 1662392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d19,#36 1663392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d19,#30 1664392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d19,#25 1665392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d13 1666392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d19,d21 1667392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d19,d21 1668392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d24,d25 1669392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d20 1670392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d18,d26 @ Sigma0(a) 1671392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1672392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d27 1673392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d22,d27 1674392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d18,d30 1675392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q6,#19 1676392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q6,#61 1677392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q6,#6 1678392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q6,#45 1679392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q7,q0,#8 @ X[i+1] 1680392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q6,#3 1681392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1682392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q12,q14,#1 1683392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma1(X[i+14]) 1684392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q13,q14,#8 1685392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q7,q15 1686392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 q15,q14,#7 1687392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q12,q14,#63 1688392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 q13,q14,#56 1689392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vext.8 q14,q3,q4,#8 @ X[i+9] 1690392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q12 1691392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d22,#14 @ from NEON_00_15 1692392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q7,q14 1693392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d22,#18 @ from NEON_00_15 1694392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor q15,q13 @ sigma0(X[i+1]) 1695392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d22,#41 @ from NEON_00_15 1696392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q7,q15 1697392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1698392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d22,#50 1699392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d22,#46 1700392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d22,#23 1701392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 30<16 && defined(__ARMEL__) 1702392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1703392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1704392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d17 1705392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23,d16 1706392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1707392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d22 1708392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1709392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d16 @ Ch(e,f,g) 1710392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1711392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d18,#28 1712392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1713392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d18,#34 1714392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d18,#39 1715392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d18,#36 1716392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d18,#30 1717392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d18,#25 1718392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d14 1719392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d18,d20 1720392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d18,d20 1721392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d24,d25 1722392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d19 1723392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d17,d26 @ Sigma0(a) 1724392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1725392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d27 1726392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d21,d27 1727392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d17,d30 1728392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d21,#14 @ 31 1729392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 31<16 1730392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d15},[r1]! @ handles unaligned 1731392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1732392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d21,#18 1733392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d21,#41 1734392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vld1.64 {d28},[r3,:64]! @ K[i++] 1735392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d21,#50 1736392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d21,#46 1737392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d21,#23 1738392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 31<16 && defined(__ARMEL__) 1739392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vrev64.8 , 1740392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1741392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d28,d16 1742392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d22,d23 1743392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d25 1744392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d21 1745392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d24,d26 @ Sigma1(e) 1746392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d29,d23 @ Ch(e,f,g) 1747392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d24 1748392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d24,d17,#28 1749392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d29 1750392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d25,d17,#34 1751392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vshr.u64 d26,d17,#39 1752392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d24,d17,#36 1753392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d25,d17,#30 1754392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vsli.64 d26,d17,#25 1755392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d27,d15 1756392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d17,d19 1757392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d29,d17,d19 1758392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d24,d25 1759392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vand d30,d18 1760392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom veor d16,d26 @ Sigma0(a) 1761392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vorr d30,d29 @ Maj(a,b,c) 1762392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d27 1763392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d20,d27 1764392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 d16,d30 1765392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom bne .L16_79_neon 1766392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1767392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vldmia r0,{d24-d31} @ load context to temp 1768392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q8,q12 @ vectorized accumulate 1769392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q9,q13 1770392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q10,q14 1771392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vadd.i64 q11,q15 1772392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vstmia r0,{d16-d23} @ save context 1773392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom teq r1,r2 1774392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom sub r3,#640 @ rewind K512 1775392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom bne .Loop_neon 1776392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 1777392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom vldmia sp!,{d8-d15} @ epilogue 17783f9e6ada2c9f7183a41081263585e6a70bbd9f59Kenny Root bx lr @ .word 0xe12fff1e 1779392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1780392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.size sha512_block_data_order,.-sha512_block_data_order 1781392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.asciz "SHA512 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org>" 1782221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom.align 2 1783392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom.comm OPENSSL_armcap_P,4,4 1784