1392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#include "arm_arch.h" 2392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.text 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.code 32 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type K256,%object 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 5 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectK256: 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.word 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size K256,.-K256 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global sha256_block_data_order 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type sha256_block_data_order,%function 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectsha256_block_data_order: 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub r3,pc,#8 @ sha256_block_data_order 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r2,r1,r2,lsl#6 @ len to point at the end of inp 32392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom stmdb sp!,{r0,r1,r2,r4-r11,lr} 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11} 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub r14,r3,#256 @ K256 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub sp,sp,#16*4 @ alloca(X[16]) 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Loop: 37392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 38392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 39392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 0 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 47392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r8,ror#6 49392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r8,ror#11 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r9,r10 52392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 0>=16 53392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 54392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 55392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 56392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 57392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 0==15 58392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 59392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 6043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r8,ror#25 @ Sigma1(e) 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r8 62392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#0*4] 6343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r10 @ Ch(e,f,g) 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r11 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r11,r4,ror#2 6743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#13 6943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#22 @ Sigma0(a) 71392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 0>=15 72392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#2*4] @ from BODY_16_xx 73392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r4,r5 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r4,r5 7643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r6 7743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r3 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r7,r7,r3 8043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r0 81392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 82392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 83392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 1 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 91392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r7,ror#6 93392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r7,ror#11 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r8,r9 96392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 1>=16 97392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 98392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 99392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 100392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 101392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 1==15 102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 103392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 10443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r7,ror#25 @ Sigma1(e) 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r7 106392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#1*4] 10743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r9 @ Ch(e,f,g) 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r10 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r11,ror#2 11143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#13 11343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#22 @ Sigma0(a) 115392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 1>=15 116392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#3*4] @ from BODY_16_xx 117392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r11,r4 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r11,r4 12043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r5 12143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r3 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r6,r6,r3 12443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r0 125392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 126392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 127392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 2 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 135392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r6,ror#6 137392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r6,ror#11 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r7,r8 140392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 2>=16 141392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 142392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 143392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 144392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 145392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 2==15 146392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 147392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 14843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r6,ror#25 @ Sigma1(e) 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r6 150392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#2*4] 15143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r8 @ Ch(e,f,g) 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r9 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r10,ror#2 15543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#13 15743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#22 @ Sigma0(a) 159392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 2>=15 160392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#4*4] @ from BODY_16_xx 161392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r10,r11 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r10,r11 16443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r4 16543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r3 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r5,r5,r3 16843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r0 169392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 170392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 171392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 3 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 179392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r5,ror#6 181392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r5,ror#11 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r6,r7 184392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 3>=16 185392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 186392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 187392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 188392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 189392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 3==15 190392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 191392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 19243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r5,ror#25 @ Sigma1(e) 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r5 194392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#3*4] 19543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r7 @ Ch(e,f,g) 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r8 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r8,r9,ror#2 19943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#13 20143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#22 @ Sigma0(a) 203392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 3>=15 204392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#5*4] @ from BODY_16_xx 205392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r9,r10 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r9,r10 20843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r11 20943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r3 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r4,r4,r3 21243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r0 213392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 214392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 215392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 4 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 223392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r4,ror#6 225392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r4,ror#11 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r5,r6 228392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 4>=16 229392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 230392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 231392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 232392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 233392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 4==15 234392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 235392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 23643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r4,ror#25 @ Sigma1(e) 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r4 238392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#4*4] 23943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r6 @ Ch(e,f,g) 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r7 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r7,r8,ror#2 24343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#13 24543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#22 @ Sigma0(a) 247392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 4>=15 248392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#6*4] @ from BODY_16_xx 249392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r8,r9 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r8,r9 25243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r10 25343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r3 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r11,r11,r3 25643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r0 257392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 258392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 259392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 5 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 267392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r11,ror#6 269392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r11,ror#11 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r4,r5 272392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 5>=16 273392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 274392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 275392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 276392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 277392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 5==15 278392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 279392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 28043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r11,ror#25 @ Sigma1(e) 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r11 282392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#5*4] 28343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r5 @ Ch(e,f,g) 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r6 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r6,r7,ror#2 28743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#13 28943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#22 @ Sigma0(a) 291392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 5>=15 292392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#7*4] @ from BODY_16_xx 293392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r7,r8 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r7,r8 29643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r9 29743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r3 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r10,r10,r3 30043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r0 301392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 302392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 303392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 6 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 311392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r10,ror#6 313392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r10,ror#11 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r11,r4 316392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 6>=16 317392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 318392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 319392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 320392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 321392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 6==15 322392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 323392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 32443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r10,ror#25 @ Sigma1(e) 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r10 326392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#6*4] 32743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r4 @ Ch(e,f,g) 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r5 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r5,r6,ror#2 33143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#13 33343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#22 @ Sigma0(a) 335392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 6>=15 336392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#8*4] @ from BODY_16_xx 337392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r6,r7 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r6,r7 34043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r8 34143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r3 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r9,r9,r3 34443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r0 345392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 346392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 347392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 7 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 355392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r9,ror#6 357392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r9,ror#11 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r10,r11 360392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 7>=16 361392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 362392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 363392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 364392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 365392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 7==15 366392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 367392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 36843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r9,ror#25 @ Sigma1(e) 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r9 370392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#7*4] 37143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r11 @ Ch(e,f,g) 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r4 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r4,r5,ror#2 37543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#13 37743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#22 @ Sigma0(a) 379392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 7>=15 380392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#9*4] @ from BODY_16_xx 381392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r5,r6 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r5,r6 38443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r7 38543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r3 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r8,r8,r3 38843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r0 389392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 390392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 8 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 399392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r8,ror#6 401392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r8,ror#11 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r9,r10 404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 8>=16 405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 8==15 410392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 411392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 41243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r8,ror#25 @ Sigma1(e) 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r8 414392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#8*4] 41543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r10 @ Ch(e,f,g) 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r11 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r11,r4,ror#2 41943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#13 42143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#22 @ Sigma0(a) 423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 8>=15 424392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#10*4] @ from BODY_16_xx 425392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r4,r5 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r4,r5 42843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r6 42943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r3 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r7,r7,r3 43243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r0 433392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 435392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 9 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r7,ror#6 445392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r7,ror#11 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r8,r9 448392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 9>=16 449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 451392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 9==15 454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 45643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r7,ror#25 @ Sigma1(e) 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r7 458392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#9*4] 45943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r9 @ Ch(e,f,g) 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r10 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r11,ror#2 46343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#13 46543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#22 @ Sigma0(a) 467392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 9>=15 468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#11*4] @ from BODY_16_xx 469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r11,r4 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r11,r4 47243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r5 47343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r3 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r6,r6,r3 47643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r0 477392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 478392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 479392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 10 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 487392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r6,ror#6 489392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r6,ror#11 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r7,r8 492392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 10>=16 493392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 494392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 495392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 496392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 497392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 10==15 498392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 499392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 50043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r6,ror#25 @ Sigma1(e) 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r6 502392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#10*4] 50343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r8 @ Ch(e,f,g) 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r9 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r10,ror#2 50743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#13 50943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#22 @ Sigma0(a) 511392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 10>=15 512392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#12*4] @ from BODY_16_xx 513392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r10,r11 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r10,r11 51643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r4 51743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r3 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r5,r5,r3 52043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r0 521392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 522392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 523392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 11 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 531392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r5,ror#6 533392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r5,ror#11 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r6,r7 536392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 11>=16 537392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 538392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 539392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 540392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 541392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 11==15 542392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 543392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 54443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r5,ror#25 @ Sigma1(e) 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r5 546392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#11*4] 54743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r7 @ Ch(e,f,g) 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r8 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r8,r9,ror#2 55143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#13 55343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#22 @ Sigma0(a) 555392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 11>=15 556392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#13*4] @ from BODY_16_xx 557392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r9,r10 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r9,r10 56043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r11 56143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r3 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r4,r4,r3 56443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r0 565392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 566392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 567392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 12 569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 575392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r4,ror#6 577392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r4,ror#11 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r5,r6 580392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 12>=16 581392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 582392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 583392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 584392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 585392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 12==15 586392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 587392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 58843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r4,ror#25 @ Sigma1(e) 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r4 590392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#12*4] 59143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r6 @ Ch(e,f,g) 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r7 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r7,r8,ror#2 59543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#13 59743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#22 @ Sigma0(a) 599392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 12>=15 600392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#14*4] @ from BODY_16_xx 601392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r8,r9 603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r8,r9 60443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r10 60543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r3 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r11,r11,r3 60843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r0 609392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 610392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 611392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 13 613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 619392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r11,ror#6 621392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r11,ror#11 623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r4,r5 624392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 13>=16 625392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 626392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 627392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 628392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 629392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 13==15 630392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 631392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 63243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r11,ror#25 @ Sigma1(e) 633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r11 634392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#13*4] 63543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r5 @ Ch(e,f,g) 637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r6 638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r6,r7,ror#2 63943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#13 64143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#22 @ Sigma0(a) 643392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 13>=15 644392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#15*4] @ from BODY_16_xx 645392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r7,r8 647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r7,r8 64843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r9 64943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r3 650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 651656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r10,r10,r3 65243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r0 653392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 654392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 655392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 14 657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 661656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 663392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r10,ror#6 665392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r10,ror#11 667656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r11,r4 668392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 14>=16 669392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 670392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 671392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 672392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 673392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 14==15 674392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 675392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 67643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r10,ror#25 @ Sigma1(e) 677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r10 678392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#14*4] 67943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r4 @ Ch(e,f,g) 681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r5 682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r5,r6,ror#2 68343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 684656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#13 68543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 686656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#22 @ Sigma0(a) 687392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 14>=15 688392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#0*4] @ from BODY_16_xx 689392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 690656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r6,r7 691656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r6,r7 69243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r8 69343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r3 694656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 695656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r9,r9,r3 69643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r0 697392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=7 698392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r3,[r1],#4 699392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 700656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r3,[r1,#3] @ 15 701656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r12,[r1,#2] 702656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r2,[r1,#1] 703656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldrb r0,[r1],#4 704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r12,lsl#8 705656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r2,lsl#16 706656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r3,r3,r0,lsl#24 707392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 708656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r9,ror#6 709392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 710656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r9,ror#11 711656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r10,r11 712392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 15>=16 713392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 714392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 715392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 716392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 717392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 15==15 718392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 719392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 72043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r9,ror#25 @ Sigma1(e) 721656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r9 722392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#15*4] 72343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 724656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r11 @ Ch(e,f,g) 725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r4 726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r4,r5,ror#2 72743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#13 72943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#22 @ Sigma0(a) 731392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 15>=15 732392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#1*4] @ from BODY_16_xx 733392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 734656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r5,r6 735656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r5,r6 73643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r7 73743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r3 738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 739656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r8,r8,r3 74043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r0 741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.Lrounds_16_xx: 742392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#1*4] @ 16 743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#14*4] 744392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#0*4] 746392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 747392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#9*4] 748392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 749392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 75043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 751392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 752656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 753392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 754392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 755656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r8,ror#6 756392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r8,ror#11 758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r9,r10 759392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 16>=16 760392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 761392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 762392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 763392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 764392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 16==15 765392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 766392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 76743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r8,ror#25 @ Sigma1(e) 768656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r8 769392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#0*4] 77043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 771656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r10 @ Ch(e,f,g) 772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r11 773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r11,r4,ror#2 77443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#13 77643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#22 @ Sigma0(a) 778392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 16>=15 779392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#2*4] @ from BODY_16_xx 780392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 781656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r4,r5 782656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r4,r5 78343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r6 78443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r3 785656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r7,r7,r3 78743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r0 788392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#2*4] @ 17 789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#15*4] 790392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#1*4] 792392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 793392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#10*4] 794392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 795392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 79643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 797392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 798656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 799392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 800392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 801656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r7,ror#6 802392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 803656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r7,ror#11 804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r8,r9 805392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 17>=16 806392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 807392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 808392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 809392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 810392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 17==15 811392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 812392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 81343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r7,ror#25 @ Sigma1(e) 814656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r7 815392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#1*4] 81643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 817656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r9 @ Ch(e,f,g) 818656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r10 819656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r11,ror#2 82043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#13 82243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#22 @ Sigma0(a) 824392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 17>=15 825392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#3*4] @ from BODY_16_xx 826392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 827656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r11,r4 828656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r11,r4 82943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r5 83043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r3 831656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 832656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r6,r6,r3 83343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r0 834392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#3*4] @ 18 835656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#0*4] 836392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 837656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#2*4] 838392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 839392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#11*4] 840392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 841392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 84243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 843392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 844656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 845392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 846392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 847656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r6,ror#6 848392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 849656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r6,ror#11 850656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r7,r8 851392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 18>=16 852392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 853392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 854392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 855392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 856392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 18==15 857392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 858392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 85943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r6,ror#25 @ Sigma1(e) 860656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r6 861392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#2*4] 86243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 863656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r8 @ Ch(e,f,g) 864656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r9 865656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r10,ror#2 86643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 867656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#13 86843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 869656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#22 @ Sigma0(a) 870392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 18>=15 871392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#4*4] @ from BODY_16_xx 872392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 873656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r10,r11 874656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r10,r11 87543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r4 87643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r3 877656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 878656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r5,r5,r3 87943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r0 880392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#4*4] @ 19 881656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#1*4] 882392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 883656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#3*4] 884392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 885392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#12*4] 886392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 887392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 88843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 889392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 890656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 891392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 892392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 893656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r5,ror#6 894392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 895656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r5,ror#11 896656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r6,r7 897392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 19>=16 898392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 899392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 900392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 901392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 902392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 19==15 903392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 904392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 90543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r5,ror#25 @ Sigma1(e) 906656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r5 907392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#3*4] 90843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 909656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r7 @ Ch(e,f,g) 910656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r8 911656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r8,r9,ror#2 91243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 913656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#13 91443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 915656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#22 @ Sigma0(a) 916392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 19>=15 917392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#5*4] @ from BODY_16_xx 918392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 919656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r9,r10 920656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r9,r10 92143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r11 92243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r3 923656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 924656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r4,r4,r3 92543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r0 926392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#5*4] @ 20 927656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#2*4] 928392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 929656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#4*4] 930392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 931392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#13*4] 932392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 933392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 93443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 935392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 936656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 937392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 938392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 939656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r4,ror#6 940392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 941656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r4,ror#11 942656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r5,r6 943392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 20>=16 944392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 945392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 946392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 947392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 948392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 20==15 949392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 950392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 95143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r4,ror#25 @ Sigma1(e) 952656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r4 953392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#4*4] 95443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 955656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r6 @ Ch(e,f,g) 956656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r7 957656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r7,r8,ror#2 95843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 959656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#13 96043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 961656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#22 @ Sigma0(a) 962392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 20>=15 963392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#6*4] @ from BODY_16_xx 964392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 965656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r8,r9 966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r8,r9 96743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r10 96843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r3 969656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 970656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r11,r11,r3 97143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r0 972392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#6*4] @ 21 973656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#3*4] 974392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 975656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#5*4] 976392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 977392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#14*4] 978392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 979392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 98043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 981392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 982656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 983392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 984392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 985656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r11,ror#6 986392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 987656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r11,ror#11 988656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r4,r5 989392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 21>=16 990392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 991392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 992392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 993392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 994392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 21==15 995392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 996392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 99743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r11,ror#25 @ Sigma1(e) 998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r11 999392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#5*4] 100043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1001656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r5 @ Ch(e,f,g) 1002656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r6 1003656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r6,r7,ror#2 100443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1005656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#13 100643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1007656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#22 @ Sigma0(a) 1008392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 21>=15 1009392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#7*4] @ from BODY_16_xx 1010392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1011656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r7,r8 1012656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r7,r8 101343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r9 101443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r3 1015656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1016656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r10,r10,r3 101743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r0 1018392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#7*4] @ 22 1019656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#4*4] 1020392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1021656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#6*4] 1022392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1023392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#15*4] 1024392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1025392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 102643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1027392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1028656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1029392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1030392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1031656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r10,ror#6 1032392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1033656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r10,ror#11 1034656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r11,r4 1035392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 22>=16 1036392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1037392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1038392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1039392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1040392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 22==15 1041392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1042392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 104343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r10,ror#25 @ Sigma1(e) 1044656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r10 1045392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#6*4] 104643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1047656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r4 @ Ch(e,f,g) 1048656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r5 1049656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r5,r6,ror#2 105043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1051656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#13 105243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1053656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#22 @ Sigma0(a) 1054392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 22>=15 1055392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#8*4] @ from BODY_16_xx 1056392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1057656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r6,r7 1058656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r6,r7 105943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r8 106043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r3 1061656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1062656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r9,r9,r3 106343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r0 1064392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#8*4] @ 23 1065656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#5*4] 1066392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1067656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#7*4] 1068392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1069392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#0*4] 1070392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1071392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 107243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1073392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1074656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1075392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1076392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1077656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r9,ror#6 1078392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1079656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r9,ror#11 1080656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r10,r11 1081392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 23>=16 1082392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1083392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1084392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1085392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1086392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 23==15 1087392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1088392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 108943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r9,ror#25 @ Sigma1(e) 1090656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r9 1091392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#7*4] 109243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1093656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r11 @ Ch(e,f,g) 1094656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r4 1095656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r4,r5,ror#2 109643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1097656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#13 109843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1099656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#22 @ Sigma0(a) 1100392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 23>=15 1101392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#9*4] @ from BODY_16_xx 1102392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r5,r6 1104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r5,r6 110543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r7 110643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r3 1107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r8,r8,r3 110943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r0 1110392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#9*4] @ 24 1111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#6*4] 1112392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#8*4] 1114392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1115392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#1*4] 1116392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1117392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 111843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1119392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1121392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1122392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r8,ror#6 1124392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r8,ror#11 1126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r9,r10 1127392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 24>=16 1128392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1129392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1130392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1131392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1132392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 24==15 1133392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1134392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 113543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r8,ror#25 @ Sigma1(e) 1136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r8 1137392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#8*4] 113843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r10 @ Ch(e,f,g) 1140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r11 1141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r11,r4,ror#2 114243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#13 114443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r11,r11,r4,ror#22 @ Sigma0(a) 1146392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 24>=15 1147392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#10*4] @ from BODY_16_xx 1148392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r4,r5 1150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r4,r5 115143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r6 115243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r3 1153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r7,r7,r3 115543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r11,r11,r0 1156392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#10*4] @ 25 1157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#7*4] 1158392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#9*4] 1160392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1161392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#2*4] 1162392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1163392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 116443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1165392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1167392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1168392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r7,ror#6 1170392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r7,ror#11 1172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r8,r9 1173392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 25>=16 1174392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1175392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1176392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1177392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1178392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 25==15 1179392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1180392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 118143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r7,ror#25 @ Sigma1(e) 1182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r7 1183392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#9*4] 118443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r9 @ Ch(e,f,g) 1186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r10 1187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r10,r11,ror#2 118843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#13 119043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r10,r10,r11,ror#22 @ Sigma0(a) 1192392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 25>=15 1193392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#11*4] @ from BODY_16_xx 1194392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r11,r4 1196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r11,r4 119743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r5 119843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r3 1199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r6,r6,r3 120143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r10,r10,r0 1202392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#11*4] @ 26 1203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#8*4] 1204392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#10*4] 1206392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1207392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#3*4] 1208392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1209392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 121043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1211392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1213392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1214392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r6,ror#6 1216392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r6,ror#11 1218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r7,r8 1219392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 26>=16 1220392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1221392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1222392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1223392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1224392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 26==15 1225392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1226392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 122743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r6,ror#25 @ Sigma1(e) 1228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r6 1229392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#10*4] 123043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r8 @ Ch(e,f,g) 1232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r9 1233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r9,r10,ror#2 123443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#13 123643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r9,r9,r10,ror#22 @ Sigma0(a) 1238392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 26>=15 1239392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#12*4] @ from BODY_16_xx 1240392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r10,r11 1242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r10,r11 124343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r4 124443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r3 1245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r5,r5,r3 124743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r9,r9,r0 1248392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#12*4] @ 27 1249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#9*4] 1250392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#11*4] 1252392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1253392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#4*4] 1254392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1255392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 125643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1257392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1259392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1260392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r5,ror#6 1262392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r5,ror#11 1264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r6,r7 1265392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 27>=16 1266392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1267392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1268392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1269392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1270392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 27==15 1271392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1272392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 127343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r5,ror#25 @ Sigma1(e) 1274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r5 1275392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#11*4] 127643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r7 @ Ch(e,f,g) 1278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r8 1279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r8,r9,ror#2 128043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#13 128243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r8,r8,r9,ror#22 @ Sigma0(a) 1284392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 27>=15 1285392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#13*4] @ from BODY_16_xx 1286392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r9,r10 1288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r9,r10 128943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r11 129043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r3 1291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r4,r4,r3 129343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r8,r8,r0 1294392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#13*4] @ 28 1295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#10*4] 1296392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#12*4] 1298392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1299392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#5*4] 1300392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1301392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 130243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1303392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1305392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1306392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r4,ror#6 1308392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r4,ror#11 1310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r5,r6 1311392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 28>=16 1312392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1313392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1314392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1315392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1316392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 28==15 1317392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1318392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 131943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r4,ror#25 @ Sigma1(e) 1320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r4 1321392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#12*4] 132243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r6 @ Ch(e,f,g) 1324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r7 1325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r7,r8,ror#2 132643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#13 132843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r7,r7,r8,ror#22 @ Sigma0(a) 1330392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 28>=15 1331392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#14*4] @ from BODY_16_xx 1332392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r8,r9 1334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r8,r9 133543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r10 133643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r3 1337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r11,r11,r3 133943c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r7,r7,r0 1340392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#14*4] @ 29 1341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#11*4] 1342392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#13*4] 1344392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1345392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#6*4] 1346392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1347392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 134843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1349392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1351392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1352392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r11,ror#6 1354392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r11,ror#11 1356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r4,r5 1357392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 29>=16 1358392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1359392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1360392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1361392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1362392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 29==15 1363392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1364392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 136543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r11,ror#25 @ Sigma1(e) 1366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r11 1367392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#13*4] 136843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r5 @ Ch(e,f,g) 1370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r6 1371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r6,r7,ror#2 137243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#13 137443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r6,r6,r7,ror#22 @ Sigma0(a) 1376392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 29>=15 1377392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#15*4] @ from BODY_16_xx 1378392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r7,r8 1380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r7,r8 138143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r9 138243c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r3 1383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r10,r10,r3 138543c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r6,r6,r0 1386392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#15*4] @ 30 1387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#12*4] 1388392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#14*4] 1390392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1391392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#7*4] 1392392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1393392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 139443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1395392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1397392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1398392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r10,ror#6 1400392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r10,ror#11 1402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r11,r4 1403392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 30>=16 1404392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1405392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1406392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1407392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1408392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 30==15 1409392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1410392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 141143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r10,ror#25 @ Sigma1(e) 1412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r10 1413392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#14*4] 141443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r4 @ Ch(e,f,g) 1416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r5 1417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r5,r6,ror#2 141843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#13 142043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r5,r5,r6,ror#22 @ Sigma0(a) 1422392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 30>=15 1423392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#0*4] @ from BODY_16_xx 1424392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r6,r7 1426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r6,r7 142743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r8 142843c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r3 1429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r9,r9,r3 143143c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r5,r5,r0 1432392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ ldr r1,[sp,#0*4] @ 31 1433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#13*4] 1434392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r0,r1,ror#7 1435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#15*4] 1436392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,ror#18 1437392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r2,[sp,#8*4] 1438392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r0,r0,r1,lsr#3 @ sigma0(X[i+1]) 1439392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom mov r1,r12,ror#17 144043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1441392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,ror#19 1442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r2 1443392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom eor r1,r1,r12,lsr#10 @ sigma1(X[i+14]) 1444392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom @ add r3,r3,r1 1445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r0,r9,ror#6 1446392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r12,[r14],#4 @ *K256++ 1447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r0,r0,r9,ror#11 1448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r10,r11 1449392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 31>=16 1450392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom add r3,r3,r1 @ from BODY_16_xx 1451392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 1452392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom rev r3,r3 1453392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1454392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 31==15 1455392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r1,[sp,#17*4] @ leave room for r1 1456392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 145743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom eor r0,r0,r9,ror#25 @ Sigma1(e) 1458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r2,r9 1459392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom str r3,[sp,#15*4] 146043c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r0 1461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r2,r2,r11 @ Ch(e,f,g) 1462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r3,r3,r4 1463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov r4,r5,ror#2 146443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r2 1465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#13 146643c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r3,r3,r12 1467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project eor r4,r4,r5,ror#22 @ Sigma0(a) 1468392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if 31>=15 1469392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldr r1,[sp,#1*4] @ from BODY_16_xx 1470392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r5,r6 1472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r2,r5,r6 147343c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom and r0,r0,r7 147443c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r3 1475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project orr r0,r0,r2 @ Maj(a,b,c) 1476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r8,r8,r3 147743c12e3d4f9bbbbd4a8ba7b149686437514bc6b6Brian Carlstrom add r4,r4,r0 1478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project and r12,r12,#0xff 1479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp r12,#0xf2 1480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bne .Lrounds_16_xx 1481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r3,[sp,#16*4] @ pull ctx 1483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r0,[r3,#0] 1484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r2,[r3,#4] 1485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[r3,#8] 1486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r4,r4,r0 1487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r0,[r3,#12] 1488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r5,r5,r2 1489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r2,[r3,#16] 1490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r6,r6,r12 1491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[r3,#20] 1492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r7,r7,r0 1493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r0,[r3,#24] 1494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r8,r8,r2 1495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r2,[r3,#28] 1496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r9,r9,r12 1497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r1,[sp,#17*4] @ pull inp 1498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ldr r12,[sp,#18*4] @ pull inp+len 1499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r10,r10,r0 1500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add r11,r11,r2 1501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project stmia r3,{r4,r5,r6,r7,r8,r9,r10,r11} 1502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp r1,r12 1503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sub r14,r14,#256 @ rewind Ktbl 1504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bne .Loop 1505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project add sp,sp,#19*4 @ destroy frame 1507392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if __ARM_ARCH__>=5 1508392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldmia sp!,{r4-r11,pc} 1509392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#else 1510392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom ldmia sp!,{r4-r11,lr} 1511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst lr,#1 1512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project moveq pc,lr @ be binary compatible with V4, yet 1513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project .word 0xe12fff1e @ interoperable with Thumb ISA:-) 1514392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif 1515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size sha256_block_data_order,.-sha256_block_data_order 1516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.asciz "SHA256 block transform for ARMv4, CRYPTOGAMS by <appro@openssl.org>" 1517221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom.align 2 1518