xref: /aosp_15_r20/external/boringssl/src/gen/bcm/sha1-armv4-large-linux.S (revision 8fb009dc861624b67b6cdb62ea21f0f22d0c584b)
1*8fb009dcSAndroid Build Coastguard Worker// This file is generated from a similarly-named Perl script in the BoringSSL
2*8fb009dcSAndroid Build Coastguard Worker// source tree. Do not edit by hand.
3*8fb009dcSAndroid Build Coastguard Worker
4*8fb009dcSAndroid Build Coastguard Worker#include <openssl/asm_base.h>
5*8fb009dcSAndroid Build Coastguard Worker
6*8fb009dcSAndroid Build Coastguard Worker#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
7*8fb009dcSAndroid Build Coastguard Worker#include <openssl/arm_arch.h>
8*8fb009dcSAndroid Build Coastguard Worker
9*8fb009dcSAndroid Build Coastguard Worker.text
10*8fb009dcSAndroid Build Coastguard Worker#if defined(__thumb2__)
11*8fb009dcSAndroid Build Coastguard Worker.syntax	unified
12*8fb009dcSAndroid Build Coastguard Worker.thumb
13*8fb009dcSAndroid Build Coastguard Worker#else
14*8fb009dcSAndroid Build Coastguard Worker.code	32
15*8fb009dcSAndroid Build Coastguard Worker#endif
16*8fb009dcSAndroid Build Coastguard Worker
17*8fb009dcSAndroid Build Coastguard Worker.globl	sha1_block_data_order_nohw
18*8fb009dcSAndroid Build Coastguard Worker.hidden	sha1_block_data_order_nohw
19*8fb009dcSAndroid Build Coastguard Worker.type	sha1_block_data_order_nohw,%function
20*8fb009dcSAndroid Build Coastguard Worker
21*8fb009dcSAndroid Build Coastguard Worker.align	5
22*8fb009dcSAndroid Build Coastguard Workersha1_block_data_order_nohw:
23*8fb009dcSAndroid Build Coastguard Worker	stmdb	sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
24*8fb009dcSAndroid Build Coastguard Worker	add	r2,r1,r2,lsl#6	@ r2 to point at the end of r1
25*8fb009dcSAndroid Build Coastguard Worker	ldmia	r0,{r3,r4,r5,r6,r7}
26*8fb009dcSAndroid Build Coastguard Worker.Lloop:
27*8fb009dcSAndroid Build Coastguard Worker	ldr	r8,.LK_00_19
28*8fb009dcSAndroid Build Coastguard Worker	mov	r14,sp
29*8fb009dcSAndroid Build Coastguard Worker	sub	sp,sp,#15*4
30*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#30
31*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#30
32*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#30		@ [6]
33*8fb009dcSAndroid Build Coastguard Worker.L_00_15:
34*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
35*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
36*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
37*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
38*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_00_19
39*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
40*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
41*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
42*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
43*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
44*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
45*8fb009dcSAndroid Build Coastguard Worker#else
46*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
47*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_00_19
48*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
49*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
50*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
51*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
52*8fb009dcSAndroid Build Coastguard Worker#endif
53*8fb009dcSAndroid Build Coastguard Worker#endif
54*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r10,ror#2
55*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9			@ E+=X[i]
56*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r6,ror#2		@ F_00_19(B,C,D)
57*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
58*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10			@ E+=F_00_19(B,C,D)
59*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
60*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
61*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
62*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
63*8fb009dcSAndroid Build Coastguard Worker	add	r6,r8,r6,ror#2			@ E+=K_00_19
64*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
65*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
66*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r5			@ F_xx_xx
67*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
68*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27			@ E+=ROR(A,27)
69*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
70*8fb009dcSAndroid Build Coastguard Worker#else
71*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
72*8fb009dcSAndroid Build Coastguard Worker	add	r6,r8,r6,ror#2			@ E+=K_00_19
73*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r5			@ F_xx_xx
74*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27			@ E+=ROR(A,27)
75*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
76*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
77*8fb009dcSAndroid Build Coastguard Worker#endif
78*8fb009dcSAndroid Build Coastguard Worker#endif
79*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r10,ror#2
80*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9			@ E+=X[i]
81*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r5,ror#2		@ F_00_19(B,C,D)
82*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
83*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10			@ E+=F_00_19(B,C,D)
84*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
85*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
86*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
87*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
88*8fb009dcSAndroid Build Coastguard Worker	add	r5,r8,r5,ror#2			@ E+=K_00_19
89*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
90*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
91*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r4			@ F_xx_xx
92*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
93*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27			@ E+=ROR(A,27)
94*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
95*8fb009dcSAndroid Build Coastguard Worker#else
96*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
97*8fb009dcSAndroid Build Coastguard Worker	add	r5,r8,r5,ror#2			@ E+=K_00_19
98*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r4			@ F_xx_xx
99*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27			@ E+=ROR(A,27)
100*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
101*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
102*8fb009dcSAndroid Build Coastguard Worker#endif
103*8fb009dcSAndroid Build Coastguard Worker#endif
104*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r10,ror#2
105*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9			@ E+=X[i]
106*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r4,ror#2		@ F_00_19(B,C,D)
107*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
108*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10			@ E+=F_00_19(B,C,D)
109*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
110*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
111*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
112*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
113*8fb009dcSAndroid Build Coastguard Worker	add	r4,r8,r4,ror#2			@ E+=K_00_19
114*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
115*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
116*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r3			@ F_xx_xx
117*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
118*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27			@ E+=ROR(A,27)
119*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
120*8fb009dcSAndroid Build Coastguard Worker#else
121*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
122*8fb009dcSAndroid Build Coastguard Worker	add	r4,r8,r4,ror#2			@ E+=K_00_19
123*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r3			@ F_xx_xx
124*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27			@ E+=ROR(A,27)
125*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
126*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
127*8fb009dcSAndroid Build Coastguard Worker#endif
128*8fb009dcSAndroid Build Coastguard Worker#endif
129*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r10,ror#2
130*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9			@ E+=X[i]
131*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r3,ror#2		@ F_00_19(B,C,D)
132*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
133*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10			@ E+=F_00_19(B,C,D)
134*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
135*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
136*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
137*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
138*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3,ror#2			@ E+=K_00_19
139*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
140*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
141*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r7			@ F_xx_xx
142*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
143*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27			@ E+=ROR(A,27)
144*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
145*8fb009dcSAndroid Build Coastguard Worker#else
146*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
147*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3,ror#2			@ E+=K_00_19
148*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r7			@ F_xx_xx
149*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27			@ E+=ROR(A,27)
150*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
151*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
152*8fb009dcSAndroid Build Coastguard Worker#endif
153*8fb009dcSAndroid Build Coastguard Worker#endif
154*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r10,ror#2
155*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9			@ E+=X[i]
156*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r7,ror#2		@ F_00_19(B,C,D)
157*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
158*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10			@ E+=F_00_19(B,C,D)
159*8fb009dcSAndroid Build Coastguard Worker#if defined(__thumb2__)
160*8fb009dcSAndroid Build Coastguard Worker	mov	r12,sp
161*8fb009dcSAndroid Build Coastguard Worker	teq	r14,r12
162*8fb009dcSAndroid Build Coastguard Worker#else
163*8fb009dcSAndroid Build Coastguard Worker	teq	r14,sp
164*8fb009dcSAndroid Build Coastguard Worker#endif
165*8fb009dcSAndroid Build Coastguard Worker	bne	.L_00_15		@ [((11+4)*5+2)*3]
166*8fb009dcSAndroid Build Coastguard Worker	sub	sp,sp,#25*4
167*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH<7
168*8fb009dcSAndroid Build Coastguard Worker	ldrb	r10,[r1,#2]
169*8fb009dcSAndroid Build Coastguard Worker	ldrb	r9,[r1,#3]
170*8fb009dcSAndroid Build Coastguard Worker	ldrb	r11,[r1,#1]
171*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_00_19
172*8fb009dcSAndroid Build Coastguard Worker	ldrb	r12,[r1],#4
173*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r10,lsl#8
174*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
175*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r11,lsl#16
176*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
177*8fb009dcSAndroid Build Coastguard Worker	orr	r9,r9,r12,lsl#24
178*8fb009dcSAndroid Build Coastguard Worker#else
179*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r1],#4			@ handles unaligned
180*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_00_19
181*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
182*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
183*8fb009dcSAndroid Build Coastguard Worker#ifdef __ARMEL__
184*8fb009dcSAndroid Build Coastguard Worker	rev	r9,r9				@ byte swap
185*8fb009dcSAndroid Build Coastguard Worker#endif
186*8fb009dcSAndroid Build Coastguard Worker#endif
187*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r10,ror#2
188*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9			@ E+=X[i]
189*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r6,ror#2		@ F_00_19(B,C,D)
190*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
191*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10			@ E+=F_00_19(B,C,D)
192*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
193*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
194*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
195*8fb009dcSAndroid Build Coastguard Worker	add	r6,r8,r6,ror#2			@ E+=K_xx_xx
196*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
197*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
198*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
199*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r5			@ F_xx_xx
200*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
201*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27			@ E+=ROR(A,27)
202*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
203*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
204*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r10,ror#2					@ F_xx_xx
205*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
206*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9			@ E+=X[i]
207*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r5,ror#2		@ F_00_19(B,C,D)
208*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10			@ E+=F_00_19(B,C,D)
209*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
210*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
211*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
212*8fb009dcSAndroid Build Coastguard Worker	add	r5,r8,r5,ror#2			@ E+=K_xx_xx
213*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
214*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
215*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
216*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r4			@ F_xx_xx
217*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
218*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27			@ E+=ROR(A,27)
219*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
220*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
221*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r10,ror#2					@ F_xx_xx
222*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
223*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9			@ E+=X[i]
224*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r4,ror#2		@ F_00_19(B,C,D)
225*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10			@ E+=F_00_19(B,C,D)
226*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
227*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
228*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
229*8fb009dcSAndroid Build Coastguard Worker	add	r4,r8,r4,ror#2			@ E+=K_xx_xx
230*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
231*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
232*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
233*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r3			@ F_xx_xx
234*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
235*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27			@ E+=ROR(A,27)
236*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
237*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
238*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r10,ror#2					@ F_xx_xx
239*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
240*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9			@ E+=X[i]
241*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r3,ror#2		@ F_00_19(B,C,D)
242*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10			@ E+=F_00_19(B,C,D)
243*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
244*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
245*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
246*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3,ror#2			@ E+=K_xx_xx
247*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
248*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
249*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
250*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r7			@ F_xx_xx
251*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
252*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27			@ E+=ROR(A,27)
253*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
254*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
255*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r10,ror#2					@ F_xx_xx
256*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
257*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9			@ E+=X[i]
258*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r10,r7,ror#2		@ F_00_19(B,C,D)
259*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10			@ E+=F_00_19(B,C,D)
260*8fb009dcSAndroid Build Coastguard Worker
261*8fb009dcSAndroid Build Coastguard Worker	ldr	r8,.LK_20_39		@ [+15+16*4]
262*8fb009dcSAndroid Build Coastguard Worker	cmn	sp,#0			@ [+3], clear carry to denote 20_39
263*8fb009dcSAndroid Build Coastguard Worker.L_20_39_or_60_79:
264*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
265*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
266*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
267*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_xx_xx
268*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
269*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
270*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
271*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
272*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
273*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
274*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
275*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
276*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r10,ror#2					@ F_xx_xx
277*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
278*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9			@ E+=X[i]
279*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10			@ E+=F_20_39(B,C,D)
280*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
281*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
282*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
283*8fb009dcSAndroid Build Coastguard Worker	add	r6,r8,r6,ror#2			@ E+=K_xx_xx
284*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
285*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
286*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
287*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r5			@ F_xx_xx
288*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
289*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27			@ E+=ROR(A,27)
290*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
291*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
292*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r10,ror#2					@ F_xx_xx
293*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
294*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9			@ E+=X[i]
295*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10			@ E+=F_20_39(B,C,D)
296*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
297*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
298*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
299*8fb009dcSAndroid Build Coastguard Worker	add	r5,r8,r5,ror#2			@ E+=K_xx_xx
300*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
301*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
302*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
303*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r4			@ F_xx_xx
304*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
305*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27			@ E+=ROR(A,27)
306*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
307*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
308*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r10,ror#2					@ F_xx_xx
309*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
310*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9			@ E+=X[i]
311*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10			@ E+=F_20_39(B,C,D)
312*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
313*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
314*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
315*8fb009dcSAndroid Build Coastguard Worker	add	r4,r8,r4,ror#2			@ E+=K_xx_xx
316*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
317*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
318*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
319*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r3			@ F_xx_xx
320*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
321*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27			@ E+=ROR(A,27)
322*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
323*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
324*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r10,ror#2					@ F_xx_xx
325*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
326*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9			@ E+=X[i]
327*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10			@ E+=F_20_39(B,C,D)
328*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
329*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
330*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
331*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3,ror#2			@ E+=K_xx_xx
332*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
333*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
334*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
335*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r7			@ F_xx_xx
336*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
337*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27			@ E+=ROR(A,27)
338*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
339*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
340*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r10,ror#2					@ F_xx_xx
341*8fb009dcSAndroid Build Coastguard Worker						@ F_xx_xx
342*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9			@ E+=X[i]
343*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10			@ E+=F_20_39(B,C,D)
344*8fb009dcSAndroid Build Coastguard Worker#if defined(__thumb2__)
345*8fb009dcSAndroid Build Coastguard Worker	mov	r12,sp
346*8fb009dcSAndroid Build Coastguard Worker	teq	r14,r12
347*8fb009dcSAndroid Build Coastguard Worker#else
348*8fb009dcSAndroid Build Coastguard Worker	teq	r14,sp			@ preserve carry
349*8fb009dcSAndroid Build Coastguard Worker#endif
350*8fb009dcSAndroid Build Coastguard Worker	bne	.L_20_39_or_60_79	@ [+((12+3)*5+2)*4]
351*8fb009dcSAndroid Build Coastguard Worker	bcs	.L_done			@ [+((12+3)*5+2)*4], spare 300 bytes
352*8fb009dcSAndroid Build Coastguard Worker
353*8fb009dcSAndroid Build Coastguard Worker	ldr	r8,.LK_40_59
354*8fb009dcSAndroid Build Coastguard Worker	sub	sp,sp,#20*4		@ [+2]
355*8fb009dcSAndroid Build Coastguard Worker.L_40_59:
356*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
357*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
358*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
359*8fb009dcSAndroid Build Coastguard Worker	add	r7,r8,r7,ror#2			@ E+=K_xx_xx
360*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
361*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
362*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
363*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r6			@ F_xx_xx
364*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
365*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27			@ E+=ROR(A,27)
366*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
367*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
368*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r10,ror#2					@ F_xx_xx
369*8fb009dcSAndroid Build Coastguard Worker	and	r11,r5,r6					@ F_xx_xx
370*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9			@ E+=X[i]
371*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10			@ E+=F_40_59(B,C,D)
372*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11,ror#2
373*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
374*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
375*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
376*8fb009dcSAndroid Build Coastguard Worker	add	r6,r8,r6,ror#2			@ E+=K_xx_xx
377*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
378*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
379*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
380*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r5			@ F_xx_xx
381*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
382*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27			@ E+=ROR(A,27)
383*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
384*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
385*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r10,ror#2					@ F_xx_xx
386*8fb009dcSAndroid Build Coastguard Worker	and	r11,r4,r5					@ F_xx_xx
387*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9			@ E+=X[i]
388*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10			@ E+=F_40_59(B,C,D)
389*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11,ror#2
390*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
391*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
392*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
393*8fb009dcSAndroid Build Coastguard Worker	add	r5,r8,r5,ror#2			@ E+=K_xx_xx
394*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
395*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
396*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
397*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r4			@ F_xx_xx
398*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
399*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27			@ E+=ROR(A,27)
400*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
401*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
402*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r10,ror#2					@ F_xx_xx
403*8fb009dcSAndroid Build Coastguard Worker	and	r11,r3,r4					@ F_xx_xx
404*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9			@ E+=X[i]
405*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10			@ E+=F_40_59(B,C,D)
406*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11,ror#2
407*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
408*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
409*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
410*8fb009dcSAndroid Build Coastguard Worker	add	r4,r8,r4,ror#2			@ E+=K_xx_xx
411*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
412*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
413*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
414*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r3			@ F_xx_xx
415*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
416*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27			@ E+=ROR(A,27)
417*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
418*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
419*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r10,ror#2					@ F_xx_xx
420*8fb009dcSAndroid Build Coastguard Worker	and	r11,r7,r3					@ F_xx_xx
421*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9			@ E+=X[i]
422*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10			@ E+=F_40_59(B,C,D)
423*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11,ror#2
424*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r14,#15*4]
425*8fb009dcSAndroid Build Coastguard Worker	ldr	r10,[r14,#13*4]
426*8fb009dcSAndroid Build Coastguard Worker	ldr	r11,[r14,#7*4]
427*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3,ror#2			@ E+=K_xx_xx
428*8fb009dcSAndroid Build Coastguard Worker	ldr	r12,[r14,#2*4]
429*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r10
430*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r12			@ 1 cycle stall
431*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r7			@ F_xx_xx
432*8fb009dcSAndroid Build Coastguard Worker	mov	r9,r9,ror#31
433*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27			@ E+=ROR(A,27)
434*8fb009dcSAndroid Build Coastguard Worker	eor	r9,r9,r11,ror#31
435*8fb009dcSAndroid Build Coastguard Worker	str	r9,[r14,#-4]!
436*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r10,ror#2					@ F_xx_xx
437*8fb009dcSAndroid Build Coastguard Worker	and	r11,r6,r7					@ F_xx_xx
438*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9			@ E+=X[i]
439*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10			@ E+=F_40_59(B,C,D)
440*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11,ror#2
441*8fb009dcSAndroid Build Coastguard Worker#if defined(__thumb2__)
442*8fb009dcSAndroid Build Coastguard Worker	mov	r12,sp
443*8fb009dcSAndroid Build Coastguard Worker	teq	r14,r12
444*8fb009dcSAndroid Build Coastguard Worker#else
445*8fb009dcSAndroid Build Coastguard Worker	teq	r14,sp
446*8fb009dcSAndroid Build Coastguard Worker#endif
447*8fb009dcSAndroid Build Coastguard Worker	bne	.L_40_59		@ [+((12+5)*5+2)*4]
448*8fb009dcSAndroid Build Coastguard Worker
449*8fb009dcSAndroid Build Coastguard Worker	ldr	r8,.LK_60_79
450*8fb009dcSAndroid Build Coastguard Worker	sub	sp,sp,#20*4
451*8fb009dcSAndroid Build Coastguard Worker	cmp	sp,#0			@ set carry to denote 60_79
452*8fb009dcSAndroid Build Coastguard Worker	b	.L_20_39_or_60_79	@ [+4], spare 300 bytes
453*8fb009dcSAndroid Build Coastguard Worker.L_done:
454*8fb009dcSAndroid Build Coastguard Worker	add	sp,sp,#80*4		@ "deallocate" stack frame
455*8fb009dcSAndroid Build Coastguard Worker	ldmia	r0,{r8,r9,r10,r11,r12}
456*8fb009dcSAndroid Build Coastguard Worker	add	r3,r8,r3
457*8fb009dcSAndroid Build Coastguard Worker	add	r4,r9,r4
458*8fb009dcSAndroid Build Coastguard Worker	add	r5,r10,r5,ror#2
459*8fb009dcSAndroid Build Coastguard Worker	add	r6,r11,r6,ror#2
460*8fb009dcSAndroid Build Coastguard Worker	add	r7,r12,r7,ror#2
461*8fb009dcSAndroid Build Coastguard Worker	stmia	r0,{r3,r4,r5,r6,r7}
462*8fb009dcSAndroid Build Coastguard Worker	teq	r1,r2
463*8fb009dcSAndroid Build Coastguard Worker	bne	.Lloop			@ [+18], total 1307
464*8fb009dcSAndroid Build Coastguard Worker
465*8fb009dcSAndroid Build Coastguard Worker#if __ARM_ARCH>=5
466*8fb009dcSAndroid Build Coastguard Worker	ldmia	sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
467*8fb009dcSAndroid Build Coastguard Worker#else
468*8fb009dcSAndroid Build Coastguard Worker	ldmia	sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
469*8fb009dcSAndroid Build Coastguard Worker	tst	lr,#1
470*8fb009dcSAndroid Build Coastguard Worker	moveq	pc,lr			@ be binary compatible with V4, yet
471*8fb009dcSAndroid Build Coastguard Worker.word	0xe12fff1e			@ interoperable with Thumb ISA:-)
472*8fb009dcSAndroid Build Coastguard Worker#endif
473*8fb009dcSAndroid Build Coastguard Worker.size	sha1_block_data_order_nohw,.-sha1_block_data_order_nohw
474*8fb009dcSAndroid Build Coastguard Worker
475*8fb009dcSAndroid Build Coastguard Worker.align	5
476*8fb009dcSAndroid Build Coastguard Worker.LK_00_19:.word	0x5a827999
477*8fb009dcSAndroid Build Coastguard Worker.LK_20_39:.word	0x6ed9eba1
478*8fb009dcSAndroid Build Coastguard Worker.LK_40_59:.word	0x8f1bbcdc
479*8fb009dcSAndroid Build Coastguard Worker.LK_60_79:.word	0xca62c1d6
480*8fb009dcSAndroid Build Coastguard Worker.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,52,47,78,69,79,78,47,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
481*8fb009dcSAndroid Build Coastguard Worker.align	2
482*8fb009dcSAndroid Build Coastguard Worker.align	5
483*8fb009dcSAndroid Build Coastguard Worker#if __ARM_MAX_ARCH__>=7
484*8fb009dcSAndroid Build Coastguard Worker.arch	armv7-a
485*8fb009dcSAndroid Build Coastguard Worker.fpu	neon
486*8fb009dcSAndroid Build Coastguard Worker
487*8fb009dcSAndroid Build Coastguard Worker.globl	sha1_block_data_order_neon
488*8fb009dcSAndroid Build Coastguard Worker.hidden	sha1_block_data_order_neon
489*8fb009dcSAndroid Build Coastguard Worker.type	sha1_block_data_order_neon,%function
490*8fb009dcSAndroid Build Coastguard Worker.align	4
491*8fb009dcSAndroid Build Coastguard Workersha1_block_data_order_neon:
492*8fb009dcSAndroid Build Coastguard Worker	stmdb	sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
493*8fb009dcSAndroid Build Coastguard Worker	add	r2,r1,r2,lsl#6	@ r2 to point at the end of r1
494*8fb009dcSAndroid Build Coastguard Worker	@ dmb				@ errata #451034 on early Cortex A8
495*8fb009dcSAndroid Build Coastguard Worker	@ vstmdb	sp!,{d8-d15}	@ ABI specification says so
496*8fb009dcSAndroid Build Coastguard Worker	mov	r14,sp
497*8fb009dcSAndroid Build Coastguard Worker	sub	r12,sp,#64
498*8fb009dcSAndroid Build Coastguard Worker	adr	r8,.LK_00_19
499*8fb009dcSAndroid Build Coastguard Worker	bic	r12,r12,#15		@ align for 128-bit stores
500*8fb009dcSAndroid Build Coastguard Worker
501*8fb009dcSAndroid Build Coastguard Worker	ldmia	r0,{r3,r4,r5,r6,r7}	@ load context
502*8fb009dcSAndroid Build Coastguard Worker	mov	sp,r12		@ alloca
503*8fb009dcSAndroid Build Coastguard Worker
504*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q0,q1},[r1]!	@ handles unaligned
505*8fb009dcSAndroid Build Coastguard Worker	veor	q15,q15,q15
506*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q2,q3},[r1]!
507*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d28[],d29[]},[r8,:32]!	@ load K_00_19
508*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q0,q0		@ yes, even on
509*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q1,q1		@ big-endian...
510*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q2,q2
511*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q8,q0,q14
512*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q3,q3
513*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q9,q1,q14
514*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q8},[r12,:128]!
515*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q10,q2,q14
516*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q9},[r12,:128]!
517*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q10},[r12,:128]!
518*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp]			@ big RAW stall
519*8fb009dcSAndroid Build Coastguard Worker
520*8fb009dcSAndroid Build Coastguard Worker.Loop_neon:
521*8fb009dcSAndroid Build Coastguard Worker	vext.8	q8,q0,q1,#8
522*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r6,r4
523*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
524*8fb009dcSAndroid Build Coastguard Worker	and	r11,r5,r4
525*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q3,q14
526*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#4]
527*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
528*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q3,q15,#4
529*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
530*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
531*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
532*8fb009dcSAndroid Build Coastguard Worker	veor	q8,q8,q0
533*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r5,r3
534*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
535*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q2
536*8fb009dcSAndroid Build Coastguard Worker	and	r11,r4,r3
537*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#8]
538*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q8
539*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
540*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
541*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
542*8fb009dcSAndroid Build Coastguard Worker	sub	r12,r12,#64
543*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
544*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
545*8fb009dcSAndroid Build Coastguard Worker	vext.8	q13,q15,q12,#4
546*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r4,r7
547*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
548*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q8,q12,q12
549*8fb009dcSAndroid Build Coastguard Worker	and	r11,r3,r7
550*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#12]
551*8fb009dcSAndroid Build Coastguard Worker	vsri.32	q8,q12,#31
552*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
553*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
554*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
555*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q12,q13,#30
556*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
557*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r3,r6
558*8fb009dcSAndroid Build Coastguard Worker	vshl.u32	q13,q13,#2
559*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
560*8fb009dcSAndroid Build Coastguard Worker	and	r11,r7,r6
561*8fb009dcSAndroid Build Coastguard Worker	veor	q8,q8,q12
562*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#16]
563*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
564*8fb009dcSAndroid Build Coastguard Worker	veor	q8,q8,q13
565*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
566*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
567*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
568*8fb009dcSAndroid Build Coastguard Worker	vext.8	q9,q1,q2,#8
569*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r7,r5
570*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
571*8fb009dcSAndroid Build Coastguard Worker	and	r11,r6,r5
572*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q8,q14
573*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#20]
574*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d28[],d29[]},[r8,:32]!
575*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
576*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q8,q15,#4
577*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
578*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
579*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
580*8fb009dcSAndroid Build Coastguard Worker	veor	q9,q9,q1
581*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r6,r4
582*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
583*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q3
584*8fb009dcSAndroid Build Coastguard Worker	and	r11,r5,r4
585*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#24]
586*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q9
587*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
588*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
589*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
590*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
591*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
592*8fb009dcSAndroid Build Coastguard Worker	vext.8	q13,q15,q12,#4
593*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r5,r3
594*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
595*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q9,q12,q12
596*8fb009dcSAndroid Build Coastguard Worker	and	r11,r4,r3
597*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#28]
598*8fb009dcSAndroid Build Coastguard Worker	vsri.32	q9,q12,#31
599*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
600*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
601*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
602*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q12,q13,#30
603*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
604*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r4,r7
605*8fb009dcSAndroid Build Coastguard Worker	vshl.u32	q13,q13,#2
606*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
607*8fb009dcSAndroid Build Coastguard Worker	and	r11,r3,r7
608*8fb009dcSAndroid Build Coastguard Worker	veor	q9,q9,q12
609*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#32]
610*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
611*8fb009dcSAndroid Build Coastguard Worker	veor	q9,q9,q13
612*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
613*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
614*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
615*8fb009dcSAndroid Build Coastguard Worker	vext.8	q10,q2,q3,#8
616*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r3,r6
617*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
618*8fb009dcSAndroid Build Coastguard Worker	and	r11,r7,r6
619*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q9,q14
620*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#36]
621*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
622*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q9,q15,#4
623*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
624*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
625*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
626*8fb009dcSAndroid Build Coastguard Worker	veor	q10,q10,q2
627*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r7,r5
628*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
629*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q8
630*8fb009dcSAndroid Build Coastguard Worker	and	r11,r6,r5
631*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#40]
632*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q10
633*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
634*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
635*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
636*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
637*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
638*8fb009dcSAndroid Build Coastguard Worker	vext.8	q13,q15,q12,#4
639*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r6,r4
640*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
641*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q10,q12,q12
642*8fb009dcSAndroid Build Coastguard Worker	and	r11,r5,r4
643*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#44]
644*8fb009dcSAndroid Build Coastguard Worker	vsri.32	q10,q12,#31
645*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
646*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
647*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
648*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q12,q13,#30
649*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
650*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r5,r3
651*8fb009dcSAndroid Build Coastguard Worker	vshl.u32	q13,q13,#2
652*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
653*8fb009dcSAndroid Build Coastguard Worker	and	r11,r4,r3
654*8fb009dcSAndroid Build Coastguard Worker	veor	q10,q10,q12
655*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#48]
656*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
657*8fb009dcSAndroid Build Coastguard Worker	veor	q10,q10,q13
658*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
659*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
660*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
661*8fb009dcSAndroid Build Coastguard Worker	vext.8	q11,q3,q8,#8
662*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r4,r7
663*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
664*8fb009dcSAndroid Build Coastguard Worker	and	r11,r3,r7
665*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q10,q14
666*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#52]
667*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
668*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q10,q15,#4
669*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
670*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
671*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
672*8fb009dcSAndroid Build Coastguard Worker	veor	q11,q11,q3
673*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r3,r6
674*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
675*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q9
676*8fb009dcSAndroid Build Coastguard Worker	and	r11,r7,r6
677*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#56]
678*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q11
679*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
680*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
681*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
682*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
683*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
684*8fb009dcSAndroid Build Coastguard Worker	vext.8	q13,q15,q12,#4
685*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r7,r5
686*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
687*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q11,q12,q12
688*8fb009dcSAndroid Build Coastguard Worker	and	r11,r6,r5
689*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#60]
690*8fb009dcSAndroid Build Coastguard Worker	vsri.32	q11,q12,#31
691*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
692*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
693*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
694*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q12,q13,#30
695*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
696*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r6,r4
697*8fb009dcSAndroid Build Coastguard Worker	vshl.u32	q13,q13,#2
698*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
699*8fb009dcSAndroid Build Coastguard Worker	and	r11,r5,r4
700*8fb009dcSAndroid Build Coastguard Worker	veor	q11,q11,q12
701*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#0]
702*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
703*8fb009dcSAndroid Build Coastguard Worker	veor	q11,q11,q13
704*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
705*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
706*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
707*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q10,q11,#8
708*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r5,r3
709*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
710*8fb009dcSAndroid Build Coastguard Worker	and	r11,r4,r3
711*8fb009dcSAndroid Build Coastguard Worker	veor	q0,q0,q8
712*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#4]
713*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
714*8fb009dcSAndroid Build Coastguard Worker	veor	q0,q0,q1
715*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
716*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
717*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q11,q14
718*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
719*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r4,r7
720*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q0
721*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
722*8fb009dcSAndroid Build Coastguard Worker	and	r11,r3,r7
723*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q0,q12,#30
724*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#8]
725*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
726*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
727*8fb009dcSAndroid Build Coastguard Worker	sub	r12,r12,#64
728*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
729*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
730*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q0,q12,#2
731*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
732*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r3,r6
733*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
734*8fb009dcSAndroid Build Coastguard Worker	and	r11,r7,r6
735*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#12]
736*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
737*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
738*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
739*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
740*8fb009dcSAndroid Build Coastguard Worker	bic	r10,r7,r5
741*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
742*8fb009dcSAndroid Build Coastguard Worker	and	r11,r6,r5
743*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#16]
744*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
745*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r11,r10
746*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
747*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
748*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q11,q0,#8
749*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
750*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
751*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#20]
752*8fb009dcSAndroid Build Coastguard Worker	veor	q1,q1,q9
753*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
754*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
755*8fb009dcSAndroid Build Coastguard Worker	veor	q1,q1,q2
756*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
757*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
758*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q0,q14
759*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
760*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
761*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q1
762*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#24]
763*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
764*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q1,q12,#30
765*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
766*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
767*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
768*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
769*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
770*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q1,q12,#2
771*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
772*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#28]
773*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
774*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
775*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
776*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
777*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
778*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
779*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#32]
780*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
781*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
782*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
783*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
784*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q0,q1,#8
785*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
786*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
787*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#36]
788*8fb009dcSAndroid Build Coastguard Worker	veor	q2,q2,q10
789*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
790*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
791*8fb009dcSAndroid Build Coastguard Worker	veor	q2,q2,q3
792*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
793*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
794*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q1,q14
795*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
796*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d28[],d29[]},[r8,:32]!
797*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
798*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q2
799*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#40]
800*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
801*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q2,q12,#30
802*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
803*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
804*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
805*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
806*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
807*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q2,q12,#2
808*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
809*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#44]
810*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
811*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
812*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
813*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
814*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
815*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
816*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#48]
817*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
818*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
819*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
820*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
821*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q1,q2,#8
822*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
823*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
824*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#52]
825*8fb009dcSAndroid Build Coastguard Worker	veor	q3,q3,q11
826*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
827*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
828*8fb009dcSAndroid Build Coastguard Worker	veor	q3,q3,q8
829*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
830*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
831*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q2,q14
832*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
833*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
834*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q3
835*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#56]
836*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
837*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q3,q12,#30
838*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
839*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
840*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
841*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
842*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
843*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q3,q12,#2
844*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
845*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#60]
846*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
847*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
848*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
849*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
850*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
851*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
852*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#0]
853*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
854*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
855*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
856*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
857*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q2,q3,#8
858*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
859*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
860*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#4]
861*8fb009dcSAndroid Build Coastguard Worker	veor	q8,q8,q0
862*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
863*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
864*8fb009dcSAndroid Build Coastguard Worker	veor	q8,q8,q9
865*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
866*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
867*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q3,q14
868*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
869*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
870*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q8
871*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#8]
872*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
873*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q8,q12,#30
874*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
875*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
876*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
877*8fb009dcSAndroid Build Coastguard Worker	sub	r12,r12,#64
878*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
879*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
880*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q8,q12,#2
881*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
882*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#12]
883*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
884*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
885*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
886*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
887*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
888*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
889*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#16]
890*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
891*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
892*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
893*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
894*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q3,q8,#8
895*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
896*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
897*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#20]
898*8fb009dcSAndroid Build Coastguard Worker	veor	q9,q9,q1
899*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
900*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
901*8fb009dcSAndroid Build Coastguard Worker	veor	q9,q9,q10
902*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
903*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
904*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q8,q14
905*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
906*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
907*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q9
908*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#24]
909*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
910*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q9,q12,#30
911*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
912*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
913*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
914*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
915*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
916*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q9,q12,#2
917*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
918*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#28]
919*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
920*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
921*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
922*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
923*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
924*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
925*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#32]
926*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
927*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
928*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
929*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
930*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q8,q9,#8
931*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
932*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r6
933*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#36]
934*8fb009dcSAndroid Build Coastguard Worker	veor	q10,q10,q2
935*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
936*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r5,r6
937*8fb009dcSAndroid Build Coastguard Worker	veor	q10,q10,q11
938*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10
939*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r4
940*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q9,q14
941*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
942*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
943*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q10
944*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
945*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r5
946*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q10,q12,#30
947*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#40]
948*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
949*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
950*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r4,r5
951*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10
952*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q10,q12,#2
953*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r3
954*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
955*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
956*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
957*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r4
958*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#44]
959*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
960*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r3,r4
961*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10
962*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r7
963*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
964*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
965*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
966*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r3
967*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#48]
968*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
969*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r7,r3
970*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10
971*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r6
972*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
973*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
974*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q9,q10,#8
975*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
976*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r7
977*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#52]
978*8fb009dcSAndroid Build Coastguard Worker	veor	q11,q11,q3
979*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
980*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r6,r7
981*8fb009dcSAndroid Build Coastguard Worker	veor	q11,q11,q0
982*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10
983*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r5
984*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q10,q14
985*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
986*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d28[],d29[]},[r8,:32]!
987*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
988*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q11
989*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
990*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r6
991*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q11,q12,#30
992*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#56]
993*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
994*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
995*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r5,r6
996*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10
997*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q11,q12,#2
998*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r4
999*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1000*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1001*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1002*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r5
1003*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#60]
1004*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1005*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r4,r5
1006*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10
1007*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r3
1008*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1009*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1010*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1011*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r4
1012*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#0]
1013*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1014*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r3,r4
1015*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10
1016*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r7
1017*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1018*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1019*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q10,q11,#8
1020*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1021*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r3
1022*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#4]
1023*8fb009dcSAndroid Build Coastguard Worker	veor	q0,q0,q8
1024*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1025*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r7,r3
1026*8fb009dcSAndroid Build Coastguard Worker	veor	q0,q0,q1
1027*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10
1028*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r6
1029*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q11,q14
1030*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1031*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1032*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q0
1033*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1034*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r7
1035*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q0,q12,#30
1036*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#8]
1037*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1038*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
1039*8fb009dcSAndroid Build Coastguard Worker	sub	r12,r12,#64
1040*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r6,r7
1041*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10
1042*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q0,q12,#2
1043*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r5
1044*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1045*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1046*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1047*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r6
1048*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#12]
1049*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1050*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r5,r6
1051*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10
1052*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r4
1053*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1054*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1055*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1056*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r5
1057*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#16]
1058*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1059*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r4,r5
1060*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10
1061*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r3
1062*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1063*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1064*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q11,q0,#8
1065*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1066*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r4
1067*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#20]
1068*8fb009dcSAndroid Build Coastguard Worker	veor	q1,q1,q9
1069*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1070*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r3,r4
1071*8fb009dcSAndroid Build Coastguard Worker	veor	q1,q1,q2
1072*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10
1073*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r7
1074*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q0,q14
1075*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1076*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1077*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q1
1078*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1079*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r3
1080*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q1,q12,#30
1081*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#24]
1082*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1083*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
1084*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r7,r3
1085*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10
1086*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q1,q12,#2
1087*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r6
1088*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1089*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1090*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1091*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r7
1092*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#28]
1093*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1094*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r6,r7
1095*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10
1096*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r5
1097*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1098*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1099*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1100*8fb009dcSAndroid Build Coastguard Worker	and	r10,r5,r6
1101*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#32]
1102*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1103*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r5,r6
1104*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r10
1105*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r4
1106*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1107*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1108*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q0,q1,#8
1109*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1110*8fb009dcSAndroid Build Coastguard Worker	and	r10,r4,r5
1111*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#36]
1112*8fb009dcSAndroid Build Coastguard Worker	veor	q2,q2,q10
1113*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1114*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r4,r5
1115*8fb009dcSAndroid Build Coastguard Worker	veor	q2,q2,q3
1116*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r10
1117*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r3
1118*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q1,q14
1119*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1120*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1121*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q2
1122*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1123*8fb009dcSAndroid Build Coastguard Worker	and	r10,r3,r4
1124*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q2,q12,#30
1125*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#40]
1126*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1127*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
1128*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r3,r4
1129*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r10
1130*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q2,q12,#2
1131*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r7
1132*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1133*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1134*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1135*8fb009dcSAndroid Build Coastguard Worker	and	r10,r7,r3
1136*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#44]
1137*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1138*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r7,r3
1139*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10
1140*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r6
1141*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1142*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1143*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1144*8fb009dcSAndroid Build Coastguard Worker	and	r10,r6,r7
1145*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#48]
1146*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1147*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r6,r7
1148*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r10
1149*8fb009dcSAndroid Build Coastguard Worker	and	r11,r11,r5
1150*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1151*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1152*8fb009dcSAndroid Build Coastguard Worker	vext.8	q12,q1,q2,#8
1153*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
1154*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1155*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#52]
1156*8fb009dcSAndroid Build Coastguard Worker	veor	q3,q3,q11
1157*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
1158*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1159*8fb009dcSAndroid Build Coastguard Worker	veor	q3,q3,q8
1160*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1161*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1162*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q2,q14
1163*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
1164*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1165*8fb009dcSAndroid Build Coastguard Worker	veor	q12,q12,q3
1166*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#56]
1167*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
1168*8fb009dcSAndroid Build Coastguard Worker	vshr.u32	q3,q12,#30
1169*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1170*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1171*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
1172*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1173*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
1174*8fb009dcSAndroid Build Coastguard Worker	vsli.32	q3,q12,#2
1175*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1176*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#60]
1177*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
1178*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1179*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1180*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1181*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
1182*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1183*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#0]
1184*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
1185*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1186*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1187*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1188*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q3,q14
1189*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
1190*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1191*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q13},[r12,:128]!
1192*8fb009dcSAndroid Build Coastguard Worker	sub	r12,r12,#64
1193*8fb009dcSAndroid Build Coastguard Worker	teq	r1,r2
1194*8fb009dcSAndroid Build Coastguard Worker	sub	r8,r8,#16
1195*8fb009dcSAndroid Build Coastguard Worker	it	eq
1196*8fb009dcSAndroid Build Coastguard Worker	subeq	r1,r1,#64
1197*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q0,q1},[r1]!
1198*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#4]
1199*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
1200*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q2,q3},[r1]!
1201*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1202*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1203*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d28[],d29[]},[r8,:32]!
1204*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1205*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
1206*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q0,q0
1207*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1208*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#8]
1209*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
1210*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1211*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1212*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1213*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
1214*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1215*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#12]
1216*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
1217*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1218*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1219*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1220*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
1221*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1222*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#16]
1223*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
1224*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1225*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1226*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1227*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q1,q1
1228*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
1229*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1230*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q8,q0,q14
1231*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#20]
1232*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
1233*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q8},[r12,:128]!
1234*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1235*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1236*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1237*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
1238*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1239*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#24]
1240*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
1241*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1242*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1243*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1244*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
1245*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1246*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#28]
1247*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
1248*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1249*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1250*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1251*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
1252*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1253*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#32]
1254*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
1255*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1256*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1257*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1258*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q2,q2
1259*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
1260*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1261*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q9,q1,q14
1262*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#36]
1263*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
1264*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q9},[r12,:128]!
1265*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1266*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1267*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1268*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
1269*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1270*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#40]
1271*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
1272*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1273*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1274*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1275*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
1276*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1277*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#44]
1278*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
1279*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1280*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1281*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1282*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r4,r6
1283*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1284*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#48]
1285*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r5
1286*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r3,ror#27
1287*8fb009dcSAndroid Build Coastguard Worker	mov	r4,r4,ror#2
1288*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r11
1289*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q3,q3
1290*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r3,r5
1291*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r9
1292*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q10,q2,q14
1293*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#52]
1294*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r4
1295*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q10},[r12,:128]!
1296*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r7,ror#27
1297*8fb009dcSAndroid Build Coastguard Worker	mov	r3,r3,ror#2
1298*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r11
1299*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r7,r4
1300*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r9
1301*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#56]
1302*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r3
1303*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r6,ror#27
1304*8fb009dcSAndroid Build Coastguard Worker	mov	r7,r7,ror#2
1305*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1306*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r6,r3
1307*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r9
1308*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[sp,#60]
1309*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r7
1310*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r5,ror#27
1311*8fb009dcSAndroid Build Coastguard Worker	mov	r6,r6,ror#2
1312*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r11
1313*8fb009dcSAndroid Build Coastguard Worker	eor	r10,r5,r7
1314*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1315*8fb009dcSAndroid Build Coastguard Worker	eor	r11,r10,r6
1316*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r4,ror#27
1317*8fb009dcSAndroid Build Coastguard Worker	mov	r5,r5,ror#2
1318*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r11
1319*8fb009dcSAndroid Build Coastguard Worker	ldmia	r0,{r9,r10,r11,r12}	@ accumulate context
1320*8fb009dcSAndroid Build Coastguard Worker	add	r3,r3,r9
1321*8fb009dcSAndroid Build Coastguard Worker	ldr	r9,[r0,#16]
1322*8fb009dcSAndroid Build Coastguard Worker	add	r4,r4,r10
1323*8fb009dcSAndroid Build Coastguard Worker	add	r5,r5,r11
1324*8fb009dcSAndroid Build Coastguard Worker	add	r6,r6,r12
1325*8fb009dcSAndroid Build Coastguard Worker	it	eq
1326*8fb009dcSAndroid Build Coastguard Worker	moveq	sp,r14
1327*8fb009dcSAndroid Build Coastguard Worker	add	r7,r7,r9
1328*8fb009dcSAndroid Build Coastguard Worker	it	ne
1329*8fb009dcSAndroid Build Coastguard Worker	ldrne	r9,[sp]
1330*8fb009dcSAndroid Build Coastguard Worker	stmia	r0,{r3,r4,r5,r6,r7}
1331*8fb009dcSAndroid Build Coastguard Worker	itt	ne
1332*8fb009dcSAndroid Build Coastguard Worker	addne	r12,sp,#3*16
1333*8fb009dcSAndroid Build Coastguard Worker	bne	.Loop_neon
1334*8fb009dcSAndroid Build Coastguard Worker
1335*8fb009dcSAndroid Build Coastguard Worker	@ vldmia	sp!,{d8-d15}
1336*8fb009dcSAndroid Build Coastguard Worker	ldmia	sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
1337*8fb009dcSAndroid Build Coastguard Worker.size	sha1_block_data_order_neon,.-sha1_block_data_order_neon
1338*8fb009dcSAndroid Build Coastguard Worker#endif
1339*8fb009dcSAndroid Build Coastguard Worker#if __ARM_MAX_ARCH__>=7
1340*8fb009dcSAndroid Build Coastguard Worker
1341*8fb009dcSAndroid Build Coastguard Worker# if defined(__thumb2__)
1342*8fb009dcSAndroid Build Coastguard Worker#  define INST(a,b,c,d)	.byte	c,d|0xf,a,b
1343*8fb009dcSAndroid Build Coastguard Worker# else
1344*8fb009dcSAndroid Build Coastguard Worker#  define INST(a,b,c,d)	.byte	a,b,c,d|0x10
1345*8fb009dcSAndroid Build Coastguard Worker# endif
1346*8fb009dcSAndroid Build Coastguard Worker
1347*8fb009dcSAndroid Build Coastguard Worker.globl	sha1_block_data_order_hw
1348*8fb009dcSAndroid Build Coastguard Worker.hidden	sha1_block_data_order_hw
1349*8fb009dcSAndroid Build Coastguard Worker.type	sha1_block_data_order_hw,%function
1350*8fb009dcSAndroid Build Coastguard Worker.align	5
1351*8fb009dcSAndroid Build Coastguard Workersha1_block_data_order_hw:
1352*8fb009dcSAndroid Build Coastguard Worker	vstmdb	sp!,{d8,d9,d10,d11,d12,d13,d14,d15}		@ ABI specification says so
1353*8fb009dcSAndroid Build Coastguard Worker
1354*8fb009dcSAndroid Build Coastguard Worker	veor	q1,q1,q1
1355*8fb009dcSAndroid Build Coastguard Worker	adr	r3,.LK_00_19
1356*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{q0},[r0]!
1357*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d2[0]},[r0]
1358*8fb009dcSAndroid Build Coastguard Worker	sub	r0,r0,#16
1359*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d16[],d17[]},[r3,:32]!
1360*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d18[],d19[]},[r3,:32]!
1361*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d20[],d21[]},[r3,:32]!
1362*8fb009dcSAndroid Build Coastguard Worker	vld1.32	{d22[],d23[]},[r3,:32]
1363*8fb009dcSAndroid Build Coastguard Worker
1364*8fb009dcSAndroid Build Coastguard Worker.Loop_v8:
1365*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q4,q5},[r1]!
1366*8fb009dcSAndroid Build Coastguard Worker	vld1.8	{q6,q7},[r1]!
1367*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q4,q4
1368*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q5,q5
1369*8fb009dcSAndroid Build Coastguard Worker
1370*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q8,q4
1371*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q6,q6
1372*8fb009dcSAndroid Build Coastguard Worker	vmov	q14,q0	@ offload
1373*8fb009dcSAndroid Build Coastguard Worker	subs	r2,r2,#1
1374*8fb009dcSAndroid Build Coastguard Worker
1375*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q8,q5
1376*8fb009dcSAndroid Build Coastguard Worker	vrev32.8	q7,q7
1377*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 0
1378*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x02,0xe2)	@ sha1c q0,q1,q12
1379*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q8,q6
1380*8fb009dcSAndroid Build Coastguard Worker	INST(0x4c,0x8c,0x3a,0xe2)	@ sha1su0 q4,q5,q6
1381*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 1
1382*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x06,0xe2)	@ sha1c q0,q3,q13
1383*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q8,q7
1384*8fb009dcSAndroid Build Coastguard Worker	INST(0x8e,0x83,0xba,0xf3)	@ sha1su1 q4,q7
1385*8fb009dcSAndroid Build Coastguard Worker	INST(0x4e,0xac,0x3c,0xe2)	@ sha1su0 q5,q6,q7
1386*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 2
1387*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x04,0xe2)	@ sha1c q0,q2,q12
1388*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q8,q4
1389*8fb009dcSAndroid Build Coastguard Worker	INST(0x88,0xa3,0xba,0xf3)	@ sha1su1 q5,q4
1390*8fb009dcSAndroid Build Coastguard Worker	INST(0x48,0xcc,0x3e,0xe2)	@ sha1su0 q6,q7,q4
1391*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 3
1392*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x06,0xe2)	@ sha1c q0,q3,q13
1393*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q9,q5
1394*8fb009dcSAndroid Build Coastguard Worker	INST(0x8a,0xc3,0xba,0xf3)	@ sha1su1 q6,q5
1395*8fb009dcSAndroid Build Coastguard Worker	INST(0x4a,0xec,0x38,0xe2)	@ sha1su0 q7,q4,q5
1396*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 4
1397*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x04,0xe2)	@ sha1c q0,q2,q12
1398*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q9,q6
1399*8fb009dcSAndroid Build Coastguard Worker	INST(0x8c,0xe3,0xba,0xf3)	@ sha1su1 q7,q6
1400*8fb009dcSAndroid Build Coastguard Worker	INST(0x4c,0x8c,0x3a,0xe2)	@ sha1su0 q4,q5,q6
1401*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 5
1402*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1403*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q9,q7
1404*8fb009dcSAndroid Build Coastguard Worker	INST(0x8e,0x83,0xba,0xf3)	@ sha1su1 q4,q7
1405*8fb009dcSAndroid Build Coastguard Worker	INST(0x4e,0xac,0x3c,0xe2)	@ sha1su0 q5,q6,q7
1406*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 6
1407*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x14,0xe2)	@ sha1p q0,q2,q12
1408*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q9,q4
1409*8fb009dcSAndroid Build Coastguard Worker	INST(0x88,0xa3,0xba,0xf3)	@ sha1su1 q5,q4
1410*8fb009dcSAndroid Build Coastguard Worker	INST(0x48,0xcc,0x3e,0xe2)	@ sha1su0 q6,q7,q4
1411*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 7
1412*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1413*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q9,q5
1414*8fb009dcSAndroid Build Coastguard Worker	INST(0x8a,0xc3,0xba,0xf3)	@ sha1su1 q6,q5
1415*8fb009dcSAndroid Build Coastguard Worker	INST(0x4a,0xec,0x38,0xe2)	@ sha1su0 q7,q4,q5
1416*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 8
1417*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x14,0xe2)	@ sha1p q0,q2,q12
1418*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q10,q6
1419*8fb009dcSAndroid Build Coastguard Worker	INST(0x8c,0xe3,0xba,0xf3)	@ sha1su1 q7,q6
1420*8fb009dcSAndroid Build Coastguard Worker	INST(0x4c,0x8c,0x3a,0xe2)	@ sha1su0 q4,q5,q6
1421*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 9
1422*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1423*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q10,q7
1424*8fb009dcSAndroid Build Coastguard Worker	INST(0x8e,0x83,0xba,0xf3)	@ sha1su1 q4,q7
1425*8fb009dcSAndroid Build Coastguard Worker	INST(0x4e,0xac,0x3c,0xe2)	@ sha1su0 q5,q6,q7
1426*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 10
1427*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x24,0xe2)	@ sha1m q0,q2,q12
1428*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q10,q4
1429*8fb009dcSAndroid Build Coastguard Worker	INST(0x88,0xa3,0xba,0xf3)	@ sha1su1 q5,q4
1430*8fb009dcSAndroid Build Coastguard Worker	INST(0x48,0xcc,0x3e,0xe2)	@ sha1su0 q6,q7,q4
1431*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 11
1432*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x26,0xe2)	@ sha1m q0,q3,q13
1433*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q10,q5
1434*8fb009dcSAndroid Build Coastguard Worker	INST(0x8a,0xc3,0xba,0xf3)	@ sha1su1 q6,q5
1435*8fb009dcSAndroid Build Coastguard Worker	INST(0x4a,0xec,0x38,0xe2)	@ sha1su0 q7,q4,q5
1436*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 12
1437*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x24,0xe2)	@ sha1m q0,q2,q12
1438*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q10,q6
1439*8fb009dcSAndroid Build Coastguard Worker	INST(0x8c,0xe3,0xba,0xf3)	@ sha1su1 q7,q6
1440*8fb009dcSAndroid Build Coastguard Worker	INST(0x4c,0x8c,0x3a,0xe2)	@ sha1su0 q4,q5,q6
1441*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 13
1442*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x26,0xe2)	@ sha1m q0,q3,q13
1443*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q11,q7
1444*8fb009dcSAndroid Build Coastguard Worker	INST(0x8e,0x83,0xba,0xf3)	@ sha1su1 q4,q7
1445*8fb009dcSAndroid Build Coastguard Worker	INST(0x4e,0xac,0x3c,0xe2)	@ sha1su0 q5,q6,q7
1446*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 14
1447*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x24,0xe2)	@ sha1m q0,q2,q12
1448*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q11,q4
1449*8fb009dcSAndroid Build Coastguard Worker	INST(0x88,0xa3,0xba,0xf3)	@ sha1su1 q5,q4
1450*8fb009dcSAndroid Build Coastguard Worker	INST(0x48,0xcc,0x3e,0xe2)	@ sha1su0 q6,q7,q4
1451*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 15
1452*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1453*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q11,q5
1454*8fb009dcSAndroid Build Coastguard Worker	INST(0x8a,0xc3,0xba,0xf3)	@ sha1su1 q6,q5
1455*8fb009dcSAndroid Build Coastguard Worker	INST(0x4a,0xec,0x38,0xe2)	@ sha1su0 q7,q4,q5
1456*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 16
1457*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x14,0xe2)	@ sha1p q0,q2,q12
1458*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q12,q11,q6
1459*8fb009dcSAndroid Build Coastguard Worker	INST(0x8c,0xe3,0xba,0xf3)	@ sha1su1 q7,q6
1460*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 17
1461*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1462*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q13,q11,q7
1463*8fb009dcSAndroid Build Coastguard Worker
1464*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x62,0xb9,0xf3)	@ sha1h q3,q0		@ 18
1465*8fb009dcSAndroid Build Coastguard Worker	INST(0x68,0x0c,0x14,0xe2)	@ sha1p q0,q2,q12
1466*8fb009dcSAndroid Build Coastguard Worker
1467*8fb009dcSAndroid Build Coastguard Worker	INST(0xc0,0x42,0xb9,0xf3)	@ sha1h q2,q0		@ 19
1468*8fb009dcSAndroid Build Coastguard Worker	INST(0x6a,0x0c,0x16,0xe2)	@ sha1p q0,q3,q13
1469*8fb009dcSAndroid Build Coastguard Worker
1470*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q1,q1,q2
1471*8fb009dcSAndroid Build Coastguard Worker	vadd.i32	q0,q0,q14
1472*8fb009dcSAndroid Build Coastguard Worker	bne	.Loop_v8
1473*8fb009dcSAndroid Build Coastguard Worker
1474*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{q0},[r0]!
1475*8fb009dcSAndroid Build Coastguard Worker	vst1.32	{d2[0]},[r0]
1476*8fb009dcSAndroid Build Coastguard Worker
1477*8fb009dcSAndroid Build Coastguard Worker	vldmia	sp!,{d8,d9,d10,d11,d12,d13,d14,d15}
1478*8fb009dcSAndroid Build Coastguard Worker	bx	lr					@ bx lr
1479*8fb009dcSAndroid Build Coastguard Worker.size	sha1_block_data_order_hw,.-sha1_block_data_order_hw
1480*8fb009dcSAndroid Build Coastguard Worker#endif
1481*8fb009dcSAndroid Build Coastguard Worker#endif  // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__ELF__)
1482