xref: /aosp_15_r20/external/boringssl/src/gen/bcm/sha1-armv8-win.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_AARCH64) && defined(_WIN32)
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
11*8fb009dcSAndroid Build Coastguard Worker.globl	sha1_block_data_order_nohw
12*8fb009dcSAndroid Build Coastguard Worker
13*8fb009dcSAndroid Build Coastguard Worker.def sha1_block_data_order_nohw
14*8fb009dcSAndroid Build Coastguard Worker   .type 32
15*8fb009dcSAndroid Build Coastguard Worker.endef
16*8fb009dcSAndroid Build Coastguard Worker.align	6
17*8fb009dcSAndroid Build Coastguard Workersha1_block_data_order_nohw:
18*8fb009dcSAndroid Build Coastguard Worker	// Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
19*8fb009dcSAndroid Build Coastguard Worker	AARCH64_VALID_CALL_TARGET
20*8fb009dcSAndroid Build Coastguard Worker
21*8fb009dcSAndroid Build Coastguard Worker	stp	x29,x30,[sp,#-96]!
22*8fb009dcSAndroid Build Coastguard Worker	add	x29,sp,#0
23*8fb009dcSAndroid Build Coastguard Worker	stp	x19,x20,[sp,#16]
24*8fb009dcSAndroid Build Coastguard Worker	stp	x21,x22,[sp,#32]
25*8fb009dcSAndroid Build Coastguard Worker	stp	x23,x24,[sp,#48]
26*8fb009dcSAndroid Build Coastguard Worker	stp	x25,x26,[sp,#64]
27*8fb009dcSAndroid Build Coastguard Worker	stp	x27,x28,[sp,#80]
28*8fb009dcSAndroid Build Coastguard Worker
29*8fb009dcSAndroid Build Coastguard Worker	ldp	w20,w21,[x0]
30*8fb009dcSAndroid Build Coastguard Worker	ldp	w22,w23,[x0,#8]
31*8fb009dcSAndroid Build Coastguard Worker	ldr	w24,[x0,#16]
32*8fb009dcSAndroid Build Coastguard Worker
33*8fb009dcSAndroid Build Coastguard WorkerLoop:
34*8fb009dcSAndroid Build Coastguard Worker	ldr	x3,[x1],#64
35*8fb009dcSAndroid Build Coastguard Worker	movz	w28,#0x7999
36*8fb009dcSAndroid Build Coastguard Worker	sub	x2,x2,#1
37*8fb009dcSAndroid Build Coastguard Worker	movk	w28,#0x5a82,lsl#16
38*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
39*8fb009dcSAndroid Build Coastguard Worker	ror	x3,x3,#32
40*8fb009dcSAndroid Build Coastguard Worker#else
41*8fb009dcSAndroid Build Coastguard Worker	rev32	x3,x3
42*8fb009dcSAndroid Build Coastguard Worker#endif
43*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// warm it up
44*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w3
45*8fb009dcSAndroid Build Coastguard Worker	lsr	x4,x3,#32
46*8fb009dcSAndroid Build Coastguard Worker	ldr	x5,[x1,#-56]
47*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w23,w21
48*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w21
49*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
50*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
51*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
52*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
53*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
54*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w4	// future e+=X[i]
55*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
56*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
57*8fb009dcSAndroid Build Coastguard Worker	ror	x5,x5,#32
58*8fb009dcSAndroid Build Coastguard Worker#else
59*8fb009dcSAndroid Build Coastguard Worker	rev32	x5,x5
60*8fb009dcSAndroid Build Coastguard Worker#endif
61*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w22,w20
62*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w20
63*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
64*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
65*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
66*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
67*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
68*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w5	// future e+=X[i]
69*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
70*8fb009dcSAndroid Build Coastguard Worker	lsr	x6,x5,#32
71*8fb009dcSAndroid Build Coastguard Worker	ldr	x7,[x1,#-48]
72*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w21,w24
73*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w24
74*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
75*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
76*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
77*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
78*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
79*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w6	// future e+=X[i]
80*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
81*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
82*8fb009dcSAndroid Build Coastguard Worker	ror	x7,x7,#32
83*8fb009dcSAndroid Build Coastguard Worker#else
84*8fb009dcSAndroid Build Coastguard Worker	rev32	x7,x7
85*8fb009dcSAndroid Build Coastguard Worker#endif
86*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w20,w23
87*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w23
88*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
89*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
90*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
91*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
92*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
93*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w7	// future e+=X[i]
94*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
95*8fb009dcSAndroid Build Coastguard Worker	lsr	x8,x7,#32
96*8fb009dcSAndroid Build Coastguard Worker	ldr	x9,[x1,#-40]
97*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w24,w22
98*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w22
99*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
100*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
101*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
102*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
103*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
104*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w8	// future e+=X[i]
105*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
106*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
107*8fb009dcSAndroid Build Coastguard Worker	ror	x9,x9,#32
108*8fb009dcSAndroid Build Coastguard Worker#else
109*8fb009dcSAndroid Build Coastguard Worker	rev32	x9,x9
110*8fb009dcSAndroid Build Coastguard Worker#endif
111*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w23,w21
112*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w21
113*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
114*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
115*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
116*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
117*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
118*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w9	// future e+=X[i]
119*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
120*8fb009dcSAndroid Build Coastguard Worker	lsr	x10,x9,#32
121*8fb009dcSAndroid Build Coastguard Worker	ldr	x11,[x1,#-32]
122*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w22,w20
123*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w20
124*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
125*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
126*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
127*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
128*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
129*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w10	// future e+=X[i]
130*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
131*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
132*8fb009dcSAndroid Build Coastguard Worker	ror	x11,x11,#32
133*8fb009dcSAndroid Build Coastguard Worker#else
134*8fb009dcSAndroid Build Coastguard Worker	rev32	x11,x11
135*8fb009dcSAndroid Build Coastguard Worker#endif
136*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w21,w24
137*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w24
138*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
139*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
140*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
141*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
142*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
143*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w11	// future e+=X[i]
144*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
145*8fb009dcSAndroid Build Coastguard Worker	lsr	x12,x11,#32
146*8fb009dcSAndroid Build Coastguard Worker	ldr	x13,[x1,#-24]
147*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w20,w23
148*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w23
149*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
150*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
151*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
152*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
153*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
154*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w12	// future e+=X[i]
155*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
156*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
157*8fb009dcSAndroid Build Coastguard Worker	ror	x13,x13,#32
158*8fb009dcSAndroid Build Coastguard Worker#else
159*8fb009dcSAndroid Build Coastguard Worker	rev32	x13,x13
160*8fb009dcSAndroid Build Coastguard Worker#endif
161*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w24,w22
162*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w22
163*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
164*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
165*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
166*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
167*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
168*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w13	// future e+=X[i]
169*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
170*8fb009dcSAndroid Build Coastguard Worker	lsr	x14,x13,#32
171*8fb009dcSAndroid Build Coastguard Worker	ldr	x15,[x1,#-16]
172*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w23,w21
173*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w21
174*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
175*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
176*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
177*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
178*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
179*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w14	// future e+=X[i]
180*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
181*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
182*8fb009dcSAndroid Build Coastguard Worker	ror	x15,x15,#32
183*8fb009dcSAndroid Build Coastguard Worker#else
184*8fb009dcSAndroid Build Coastguard Worker	rev32	x15,x15
185*8fb009dcSAndroid Build Coastguard Worker#endif
186*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w22,w20
187*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w20
188*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
189*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
190*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
191*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
192*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
193*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w15	// future e+=X[i]
194*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
195*8fb009dcSAndroid Build Coastguard Worker	lsr	x16,x15,#32
196*8fb009dcSAndroid Build Coastguard Worker	ldr	x17,[x1,#-8]
197*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w21,w24
198*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w24
199*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
200*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
201*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
202*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
203*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
204*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w16	// future e+=X[i]
205*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
206*8fb009dcSAndroid Build Coastguard Worker#ifdef	__AARCH64EB__
207*8fb009dcSAndroid Build Coastguard Worker	ror	x17,x17,#32
208*8fb009dcSAndroid Build Coastguard Worker#else
209*8fb009dcSAndroid Build Coastguard Worker	rev32	x17,x17
210*8fb009dcSAndroid Build Coastguard Worker#endif
211*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w20,w23
212*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w23
213*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
214*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
215*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
216*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
217*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
218*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w17	// future e+=X[i]
219*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
220*8fb009dcSAndroid Build Coastguard Worker	lsr	x19,x17,#32
221*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w5
222*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w24,w22
223*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w22
224*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
225*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w11
226*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
227*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
228*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
229*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w16
230*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
231*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w19	// future e+=X[i]
232*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
233*8fb009dcSAndroid Build Coastguard Worker	ror	w3,w3,#31
234*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w6
235*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w23,w21
236*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w21
237*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
238*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w12
239*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
240*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
241*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
242*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w17
243*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
244*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w3	// future e+=X[i]
245*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
246*8fb009dcSAndroid Build Coastguard Worker	ror	w4,w4,#31
247*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w7
248*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w22,w20
249*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w20
250*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
251*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w13
252*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
253*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
254*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
255*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w19
256*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
257*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w4	// future e+=X[i]
258*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
259*8fb009dcSAndroid Build Coastguard Worker	ror	w5,w5,#31
260*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w8
261*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w21,w24
262*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w24
263*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
264*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w14
265*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
266*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
267*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
268*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w3
269*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
270*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w5	// future e+=X[i]
271*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
272*8fb009dcSAndroid Build Coastguard Worker	ror	w6,w6,#31
273*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w9
274*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w20,w23
275*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w23
276*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
277*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w15
278*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
279*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
280*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
281*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w4
282*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
283*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w6	// future e+=X[i]
284*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
285*8fb009dcSAndroid Build Coastguard Worker	ror	w7,w7,#31
286*8fb009dcSAndroid Build Coastguard Worker	movz	w28,#0xeba1
287*8fb009dcSAndroid Build Coastguard Worker	movk	w28,#0x6ed9,lsl#16
288*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w10
289*8fb009dcSAndroid Build Coastguard Worker	bic	w25,w24,w22
290*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w22
291*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
292*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w16
293*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
294*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
295*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
296*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w5
297*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
298*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w7	// future e+=X[i]
299*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
300*8fb009dcSAndroid Build Coastguard Worker	ror	w8,w8,#31
301*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w11
302*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
303*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
304*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
305*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w17
306*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
307*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
308*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
309*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w6
310*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w8	// future e+=X[i]
311*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
312*8fb009dcSAndroid Build Coastguard Worker	ror	w9,w9,#31
313*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w12
314*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
315*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
316*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
317*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w19
318*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
319*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
320*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
321*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w7
322*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w9	// future e+=X[i]
323*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
324*8fb009dcSAndroid Build Coastguard Worker	ror	w10,w10,#31
325*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w13
326*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
327*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
328*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
329*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w3
330*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
331*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
332*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
333*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w8
334*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w10	// future e+=X[i]
335*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
336*8fb009dcSAndroid Build Coastguard Worker	ror	w11,w11,#31
337*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w14
338*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
339*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
340*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
341*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w4
342*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
343*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
344*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
345*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w9
346*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w11	// future e+=X[i]
347*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
348*8fb009dcSAndroid Build Coastguard Worker	ror	w12,w12,#31
349*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w15
350*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
351*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
352*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
353*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w5
354*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
355*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
356*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
357*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w10
358*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w12	// future e+=X[i]
359*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
360*8fb009dcSAndroid Build Coastguard Worker	ror	w13,w13,#31
361*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w16
362*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
363*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
364*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
365*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w6
366*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
367*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
368*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
369*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w11
370*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w13	// future e+=X[i]
371*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
372*8fb009dcSAndroid Build Coastguard Worker	ror	w14,w14,#31
373*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w17
374*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
375*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
376*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
377*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w7
378*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
379*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
380*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
381*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w12
382*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w14	// future e+=X[i]
383*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
384*8fb009dcSAndroid Build Coastguard Worker	ror	w15,w15,#31
385*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w19
386*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
387*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
388*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
389*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w8
390*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
391*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
392*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
393*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w13
394*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w15	// future e+=X[i]
395*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
396*8fb009dcSAndroid Build Coastguard Worker	ror	w16,w16,#31
397*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w3
398*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
399*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
400*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
401*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w9
402*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
403*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
404*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
405*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w14
406*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w16	// future e+=X[i]
407*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
408*8fb009dcSAndroid Build Coastguard Worker	ror	w17,w17,#31
409*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w4
410*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
411*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
412*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
413*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w10
414*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
415*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
416*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
417*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w15
418*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w17	// future e+=X[i]
419*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
420*8fb009dcSAndroid Build Coastguard Worker	ror	w19,w19,#31
421*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w5
422*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
423*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
424*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
425*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w11
426*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
427*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
428*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
429*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w16
430*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w19	// future e+=X[i]
431*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
432*8fb009dcSAndroid Build Coastguard Worker	ror	w3,w3,#31
433*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w6
434*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
435*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
436*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
437*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w12
438*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
439*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
440*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
441*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w17
442*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w3	// future e+=X[i]
443*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
444*8fb009dcSAndroid Build Coastguard Worker	ror	w4,w4,#31
445*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w7
446*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
447*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
448*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
449*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w13
450*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
451*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
452*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
453*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w19
454*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w4	// future e+=X[i]
455*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
456*8fb009dcSAndroid Build Coastguard Worker	ror	w5,w5,#31
457*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w8
458*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
459*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
460*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
461*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w14
462*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
463*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
464*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
465*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w3
466*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w5	// future e+=X[i]
467*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
468*8fb009dcSAndroid Build Coastguard Worker	ror	w6,w6,#31
469*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w9
470*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
471*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
472*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
473*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w15
474*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
475*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
476*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
477*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w4
478*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w6	// future e+=X[i]
479*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
480*8fb009dcSAndroid Build Coastguard Worker	ror	w7,w7,#31
481*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w10
482*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
483*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
484*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
485*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w16
486*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
487*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
488*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
489*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w5
490*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w7	// future e+=X[i]
491*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
492*8fb009dcSAndroid Build Coastguard Worker	ror	w8,w8,#31
493*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w11
494*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
495*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
496*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
497*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w17
498*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
499*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
500*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
501*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w6
502*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w8	// future e+=X[i]
503*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
504*8fb009dcSAndroid Build Coastguard Worker	ror	w9,w9,#31
505*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w12
506*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
507*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
508*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
509*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w19
510*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
511*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
512*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
513*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w7
514*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w9	// future e+=X[i]
515*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
516*8fb009dcSAndroid Build Coastguard Worker	ror	w10,w10,#31
517*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w13
518*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
519*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
520*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
521*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w3
522*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
523*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
524*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
525*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w8
526*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w10	// future e+=X[i]
527*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
528*8fb009dcSAndroid Build Coastguard Worker	ror	w11,w11,#31
529*8fb009dcSAndroid Build Coastguard Worker	movz	w28,#0xbcdc
530*8fb009dcSAndroid Build Coastguard Worker	movk	w28,#0x8f1b,lsl#16
531*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w14
532*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
533*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
534*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
535*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w4
536*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
537*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
538*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
539*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w9
540*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w11	// future e+=X[i]
541*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
542*8fb009dcSAndroid Build Coastguard Worker	ror	w12,w12,#31
543*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w21,w22
544*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w22
545*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w15
546*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
547*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w23
548*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
549*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w5
550*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
551*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
552*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
553*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w10
554*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w12	// future e+=X[i]
555*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
556*8fb009dcSAndroid Build Coastguard Worker	ror	w13,w13,#31
557*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w20,w21
558*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w21
559*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w16
560*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
561*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w22
562*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
563*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w6
564*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
565*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
566*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
567*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w11
568*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w13	// future e+=X[i]
569*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
570*8fb009dcSAndroid Build Coastguard Worker	ror	w14,w14,#31
571*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w24,w20
572*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w20
573*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w17
574*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
575*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w21
576*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
577*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w7
578*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
579*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
580*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
581*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w12
582*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w14	// future e+=X[i]
583*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
584*8fb009dcSAndroid Build Coastguard Worker	ror	w15,w15,#31
585*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w23,w24
586*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w24
587*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w19
588*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
589*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w20
590*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
591*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w8
592*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
593*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
594*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
595*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w13
596*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w15	// future e+=X[i]
597*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
598*8fb009dcSAndroid Build Coastguard Worker	ror	w16,w16,#31
599*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w22,w23
600*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w23
601*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w3
602*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
603*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w24
604*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
605*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w9
606*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
607*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
608*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
609*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w14
610*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w16	// future e+=X[i]
611*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
612*8fb009dcSAndroid Build Coastguard Worker	ror	w17,w17,#31
613*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w21,w22
614*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w22
615*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w4
616*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
617*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w23
618*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
619*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w10
620*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
621*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
622*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
623*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w15
624*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w17	// future e+=X[i]
625*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
626*8fb009dcSAndroid Build Coastguard Worker	ror	w19,w19,#31
627*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w20,w21
628*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w21
629*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w5
630*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
631*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w22
632*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
633*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w11
634*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
635*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
636*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
637*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w16
638*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w19	// future e+=X[i]
639*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
640*8fb009dcSAndroid Build Coastguard Worker	ror	w3,w3,#31
641*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w24,w20
642*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w20
643*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w6
644*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
645*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w21
646*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
647*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w12
648*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
649*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
650*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
651*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w17
652*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w3	// future e+=X[i]
653*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
654*8fb009dcSAndroid Build Coastguard Worker	ror	w4,w4,#31
655*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w23,w24
656*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w24
657*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w7
658*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
659*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w20
660*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
661*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w13
662*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
663*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
664*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
665*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w19
666*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w4	// future e+=X[i]
667*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
668*8fb009dcSAndroid Build Coastguard Worker	ror	w5,w5,#31
669*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w22,w23
670*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w23
671*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w8
672*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
673*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w24
674*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
675*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w14
676*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
677*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
678*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
679*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w3
680*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w5	// future e+=X[i]
681*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
682*8fb009dcSAndroid Build Coastguard Worker	ror	w6,w6,#31
683*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w21,w22
684*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w22
685*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w9
686*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
687*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w23
688*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
689*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w15
690*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
691*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
692*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
693*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w4
694*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w6	// future e+=X[i]
695*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
696*8fb009dcSAndroid Build Coastguard Worker	ror	w7,w7,#31
697*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w20,w21
698*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w21
699*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w10
700*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
701*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w22
702*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
703*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w16
704*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
705*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
706*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
707*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w5
708*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w7	// future e+=X[i]
709*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
710*8fb009dcSAndroid Build Coastguard Worker	ror	w8,w8,#31
711*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w24,w20
712*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w20
713*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w11
714*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
715*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w21
716*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
717*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w17
718*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
719*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
720*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
721*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w6
722*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w8	// future e+=X[i]
723*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
724*8fb009dcSAndroid Build Coastguard Worker	ror	w9,w9,#31
725*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w23,w24
726*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w24
727*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w12
728*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
729*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w20
730*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
731*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w19
732*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
733*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
734*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
735*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w7
736*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w9	// future e+=X[i]
737*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
738*8fb009dcSAndroid Build Coastguard Worker	ror	w10,w10,#31
739*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w22,w23
740*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w23
741*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w13
742*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
743*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w24
744*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
745*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w3
746*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
747*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
748*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
749*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w8
750*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w10	// future e+=X[i]
751*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
752*8fb009dcSAndroid Build Coastguard Worker	ror	w11,w11,#31
753*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w21,w22
754*8fb009dcSAndroid Build Coastguard Worker	and	w26,w21,w22
755*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w14
756*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
757*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w23
758*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
759*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w4
760*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
761*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
762*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
763*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w9
764*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w11	// future e+=X[i]
765*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
766*8fb009dcSAndroid Build Coastguard Worker	ror	w12,w12,#31
767*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w20,w21
768*8fb009dcSAndroid Build Coastguard Worker	and	w26,w20,w21
769*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w15
770*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
771*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w22
772*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
773*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w5
774*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
775*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
776*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
777*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w10
778*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w12	// future e+=X[i]
779*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
780*8fb009dcSAndroid Build Coastguard Worker	ror	w13,w13,#31
781*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w24,w20
782*8fb009dcSAndroid Build Coastguard Worker	and	w26,w24,w20
783*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w16
784*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
785*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w21
786*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
787*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w6
788*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
789*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
790*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
791*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w11
792*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w13	// future e+=X[i]
793*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
794*8fb009dcSAndroid Build Coastguard Worker	ror	w14,w14,#31
795*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w23,w24
796*8fb009dcSAndroid Build Coastguard Worker	and	w26,w23,w24
797*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w17
798*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
799*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w20
800*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
801*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w7
802*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
803*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
804*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
805*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w12
806*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w14	// future e+=X[i]
807*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
808*8fb009dcSAndroid Build Coastguard Worker	ror	w15,w15,#31
809*8fb009dcSAndroid Build Coastguard Worker	movz	w28,#0xc1d6
810*8fb009dcSAndroid Build Coastguard Worker	movk	w28,#0xca62,lsl#16
811*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w22,w23
812*8fb009dcSAndroid Build Coastguard Worker	and	w26,w22,w23
813*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w19
814*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
815*8fb009dcSAndroid Build Coastguard Worker	and	w25,w25,w24
816*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
817*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w8
818*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
819*8fb009dcSAndroid Build Coastguard Worker	orr	w25,w25,w26
820*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
821*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w13
822*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w15	// future e+=X[i]
823*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
824*8fb009dcSAndroid Build Coastguard Worker	ror	w16,w16,#31
825*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w3
826*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
827*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
828*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
829*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w9
830*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
831*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
832*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
833*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w14
834*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w16	// future e+=X[i]
835*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
836*8fb009dcSAndroid Build Coastguard Worker	ror	w17,w17,#31
837*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w4
838*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
839*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
840*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
841*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w10
842*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
843*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
844*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
845*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w15
846*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w17	// future e+=X[i]
847*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
848*8fb009dcSAndroid Build Coastguard Worker	ror	w19,w19,#31
849*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w5
850*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
851*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
852*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
853*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w11
854*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
855*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
856*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
857*8fb009dcSAndroid Build Coastguard Worker	eor	w3,w3,w16
858*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w19	// future e+=X[i]
859*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
860*8fb009dcSAndroid Build Coastguard Worker	ror	w3,w3,#31
861*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w6
862*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
863*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
864*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
865*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w12
866*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
867*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
868*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
869*8fb009dcSAndroid Build Coastguard Worker	eor	w4,w4,w17
870*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w3	// future e+=X[i]
871*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
872*8fb009dcSAndroid Build Coastguard Worker	ror	w4,w4,#31
873*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w7
874*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
875*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
876*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
877*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w13
878*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
879*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
880*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
881*8fb009dcSAndroid Build Coastguard Worker	eor	w5,w5,w19
882*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w4	// future e+=X[i]
883*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
884*8fb009dcSAndroid Build Coastguard Worker	ror	w5,w5,#31
885*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w8
886*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
887*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
888*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
889*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w14
890*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
891*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
892*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
893*8fb009dcSAndroid Build Coastguard Worker	eor	w6,w6,w3
894*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w5	// future e+=X[i]
895*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
896*8fb009dcSAndroid Build Coastguard Worker	ror	w6,w6,#31
897*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w9
898*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
899*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
900*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
901*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w15
902*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
903*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
904*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
905*8fb009dcSAndroid Build Coastguard Worker	eor	w7,w7,w4
906*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w6	// future e+=X[i]
907*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
908*8fb009dcSAndroid Build Coastguard Worker	ror	w7,w7,#31
909*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w10
910*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
911*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
912*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
913*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w16
914*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
915*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
916*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
917*8fb009dcSAndroid Build Coastguard Worker	eor	w8,w8,w5
918*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w7	// future e+=X[i]
919*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
920*8fb009dcSAndroid Build Coastguard Worker	ror	w8,w8,#31
921*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w11
922*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
923*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
924*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
925*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w17
926*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
927*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
928*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
929*8fb009dcSAndroid Build Coastguard Worker	eor	w9,w9,w6
930*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w8	// future e+=X[i]
931*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
932*8fb009dcSAndroid Build Coastguard Worker	ror	w9,w9,#31
933*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w12
934*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
935*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
936*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
937*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w19
938*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
939*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
940*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
941*8fb009dcSAndroid Build Coastguard Worker	eor	w10,w10,w7
942*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w9	// future e+=X[i]
943*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
944*8fb009dcSAndroid Build Coastguard Worker	ror	w10,w10,#31
945*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w13
946*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
947*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
948*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
949*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w3
950*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
951*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
952*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
953*8fb009dcSAndroid Build Coastguard Worker	eor	w11,w11,w8
954*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w10	// future e+=X[i]
955*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
956*8fb009dcSAndroid Build Coastguard Worker	ror	w11,w11,#31
957*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w14
958*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
959*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
960*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
961*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w4
962*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
963*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
964*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
965*8fb009dcSAndroid Build Coastguard Worker	eor	w12,w12,w9
966*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w11	// future e+=X[i]
967*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
968*8fb009dcSAndroid Build Coastguard Worker	ror	w12,w12,#31
969*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w15
970*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
971*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
972*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
973*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w5
974*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
975*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
976*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
977*8fb009dcSAndroid Build Coastguard Worker	eor	w13,w13,w10
978*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w12	// future e+=X[i]
979*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
980*8fb009dcSAndroid Build Coastguard Worker	ror	w13,w13,#31
981*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w16
982*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
983*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
984*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
985*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w6
986*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
987*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
988*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
989*8fb009dcSAndroid Build Coastguard Worker	eor	w14,w14,w11
990*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w13	// future e+=X[i]
991*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
992*8fb009dcSAndroid Build Coastguard Worker	ror	w14,w14,#31
993*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w17
994*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
995*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
996*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w28		// future e+=K
997*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w7
998*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
999*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
1000*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
1001*8fb009dcSAndroid Build Coastguard Worker	eor	w15,w15,w12
1002*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w14	// future e+=X[i]
1003*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
1004*8fb009dcSAndroid Build Coastguard Worker	ror	w15,w15,#31
1005*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w19
1006*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w23,w21
1007*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w20,#27
1008*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w28		// future e+=K
1009*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w8
1010*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w22
1011*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w27		// e+=rot(a,5)
1012*8fb009dcSAndroid Build Coastguard Worker	ror	w21,w21,#2
1013*8fb009dcSAndroid Build Coastguard Worker	eor	w16,w16,w13
1014*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w15	// future e+=X[i]
1015*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w25		// e+=F(b,c,d)
1016*8fb009dcSAndroid Build Coastguard Worker	ror	w16,w16,#31
1017*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w3
1018*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w22,w20
1019*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w24,#27
1020*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w28		// future e+=K
1021*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w9
1022*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w21
1023*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w27		// e+=rot(a,5)
1024*8fb009dcSAndroid Build Coastguard Worker	ror	w20,w20,#2
1025*8fb009dcSAndroid Build Coastguard Worker	eor	w17,w17,w14
1026*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w16	// future e+=X[i]
1027*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w25		// e+=F(b,c,d)
1028*8fb009dcSAndroid Build Coastguard Worker	ror	w17,w17,#31
1029*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w4
1030*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w21,w24
1031*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w23,#27
1032*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w28		// future e+=K
1033*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w10
1034*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w20
1035*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w27		// e+=rot(a,5)
1036*8fb009dcSAndroid Build Coastguard Worker	ror	w24,w24,#2
1037*8fb009dcSAndroid Build Coastguard Worker	eor	w19,w19,w15
1038*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w17	// future e+=X[i]
1039*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w25		// e+=F(b,c,d)
1040*8fb009dcSAndroid Build Coastguard Worker	ror	w19,w19,#31
1041*8fb009dcSAndroid Build Coastguard Worker	ldp	w4,w5,[x0]
1042*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w20,w23
1043*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w22,#27
1044*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w28		// future e+=K
1045*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w24
1046*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w27		// e+=rot(a,5)
1047*8fb009dcSAndroid Build Coastguard Worker	ror	w23,w23,#2
1048*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w19	// future e+=X[i]
1049*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w25		// e+=F(b,c,d)
1050*8fb009dcSAndroid Build Coastguard Worker	ldp	w6,w7,[x0,#8]
1051*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w24,w22
1052*8fb009dcSAndroid Build Coastguard Worker	ror	w27,w21,#27
1053*8fb009dcSAndroid Build Coastguard Worker	eor	w25,w25,w23
1054*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w27		// e+=rot(a,5)
1055*8fb009dcSAndroid Build Coastguard Worker	ror	w22,w22,#2
1056*8fb009dcSAndroid Build Coastguard Worker	ldr	w8,[x0,#16]
1057*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w25		// e+=F(b,c,d)
1058*8fb009dcSAndroid Build Coastguard Worker	add	w21,w21,w5
1059*8fb009dcSAndroid Build Coastguard Worker	add	w22,w22,w6
1060*8fb009dcSAndroid Build Coastguard Worker	add	w20,w20,w4
1061*8fb009dcSAndroid Build Coastguard Worker	add	w23,w23,w7
1062*8fb009dcSAndroid Build Coastguard Worker	add	w24,w24,w8
1063*8fb009dcSAndroid Build Coastguard Worker	stp	w20,w21,[x0]
1064*8fb009dcSAndroid Build Coastguard Worker	stp	w22,w23,[x0,#8]
1065*8fb009dcSAndroid Build Coastguard Worker	str	w24,[x0,#16]
1066*8fb009dcSAndroid Build Coastguard Worker	cbnz	x2,Loop
1067*8fb009dcSAndroid Build Coastguard Worker
1068*8fb009dcSAndroid Build Coastguard Worker	ldp	x19,x20,[sp,#16]
1069*8fb009dcSAndroid Build Coastguard Worker	ldp	x21,x22,[sp,#32]
1070*8fb009dcSAndroid Build Coastguard Worker	ldp	x23,x24,[sp,#48]
1071*8fb009dcSAndroid Build Coastguard Worker	ldp	x25,x26,[sp,#64]
1072*8fb009dcSAndroid Build Coastguard Worker	ldp	x27,x28,[sp,#80]
1073*8fb009dcSAndroid Build Coastguard Worker	ldr	x29,[sp],#96
1074*8fb009dcSAndroid Build Coastguard Worker	ret
1075*8fb009dcSAndroid Build Coastguard Worker
1076*8fb009dcSAndroid Build Coastguard Worker.globl	sha1_block_data_order_hw
1077*8fb009dcSAndroid Build Coastguard Worker
1078*8fb009dcSAndroid Build Coastguard Worker.def sha1_block_data_order_hw
1079*8fb009dcSAndroid Build Coastguard Worker   .type 32
1080*8fb009dcSAndroid Build Coastguard Worker.endef
1081*8fb009dcSAndroid Build Coastguard Worker.align	6
1082*8fb009dcSAndroid Build Coastguard Workersha1_block_data_order_hw:
1083*8fb009dcSAndroid Build Coastguard Worker	// Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1084*8fb009dcSAndroid Build Coastguard Worker	AARCH64_VALID_CALL_TARGET
1085*8fb009dcSAndroid Build Coastguard Worker	stp	x29,x30,[sp,#-16]!
1086*8fb009dcSAndroid Build Coastguard Worker	add	x29,sp,#0
1087*8fb009dcSAndroid Build Coastguard Worker
1088*8fb009dcSAndroid Build Coastguard Worker	adrp	x4,Lconst
1089*8fb009dcSAndroid Build Coastguard Worker	add	x4,x4,:lo12:Lconst
1090*8fb009dcSAndroid Build Coastguard Worker	eor	v1.16b,v1.16b,v1.16b
1091*8fb009dcSAndroid Build Coastguard Worker	ld1	{v0.4s},[x0],#16
1092*8fb009dcSAndroid Build Coastguard Worker	ld1	{v1.s}[0],[x0]
1093*8fb009dcSAndroid Build Coastguard Worker	sub	x0,x0,#16
1094*8fb009dcSAndroid Build Coastguard Worker	ld1	{v16.4s,v17.4s,v18.4s,v19.4s},[x4]
1095*8fb009dcSAndroid Build Coastguard Worker
1096*8fb009dcSAndroid Build Coastguard WorkerLoop_hw:
1097*8fb009dcSAndroid Build Coastguard Worker	ld1	{v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
1098*8fb009dcSAndroid Build Coastguard Worker	sub	x2,x2,#1
1099*8fb009dcSAndroid Build Coastguard Worker	rev32	v4.16b,v4.16b
1100*8fb009dcSAndroid Build Coastguard Worker	rev32	v5.16b,v5.16b
1101*8fb009dcSAndroid Build Coastguard Worker
1102*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v16.4s,v4.4s
1103*8fb009dcSAndroid Build Coastguard Worker	rev32	v6.16b,v6.16b
1104*8fb009dcSAndroid Build Coastguard Worker	orr	v22.16b,v0.16b,v0.16b	// offload
1105*8fb009dcSAndroid Build Coastguard Worker
1106*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v16.4s,v5.4s
1107*8fb009dcSAndroid Build Coastguard Worker	rev32	v7.16b,v7.16b
1108*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b
1109*8fb009dcSAndroid Build Coastguard Worker.long	0x5e140020	//sha1c v0.16b,v1.16b,v20.4s		// 0
1110*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v16.4s,v6.4s
1111*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0630a4	//sha1su0 v4.16b,v5.16b,v6.16b
1112*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 1
1113*8fb009dcSAndroid Build Coastguard Worker.long	0x5e150060	//sha1c v0.16b,v3.16b,v21.4s
1114*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v16.4s,v7.4s
1115*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818e4	//sha1su1 v4.16b,v7.16b
1116*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0730c5	//sha1su0 v5.16b,v6.16b,v7.16b
1117*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 2
1118*8fb009dcSAndroid Build Coastguard Worker.long	0x5e140040	//sha1c v0.16b,v2.16b,v20.4s
1119*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v16.4s,v4.4s
1120*8fb009dcSAndroid Build Coastguard Worker.long	0x5e281885	//sha1su1 v5.16b,v4.16b
1121*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0430e6	//sha1su0 v6.16b,v7.16b,v4.16b
1122*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 3
1123*8fb009dcSAndroid Build Coastguard Worker.long	0x5e150060	//sha1c v0.16b,v3.16b,v21.4s
1124*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v17.4s,v5.4s
1125*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818a6	//sha1su1 v6.16b,v5.16b
1126*8fb009dcSAndroid Build Coastguard Worker.long	0x5e053087	//sha1su0 v7.16b,v4.16b,v5.16b
1127*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 4
1128*8fb009dcSAndroid Build Coastguard Worker.long	0x5e140040	//sha1c v0.16b,v2.16b,v20.4s
1129*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v17.4s,v6.4s
1130*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818c7	//sha1su1 v7.16b,v6.16b
1131*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0630a4	//sha1su0 v4.16b,v5.16b,v6.16b
1132*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 5
1133*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1134*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v17.4s,v7.4s
1135*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818e4	//sha1su1 v4.16b,v7.16b
1136*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0730c5	//sha1su0 v5.16b,v6.16b,v7.16b
1137*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 6
1138*8fb009dcSAndroid Build Coastguard Worker.long	0x5e141040	//sha1p v0.16b,v2.16b,v20.4s
1139*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v17.4s,v4.4s
1140*8fb009dcSAndroid Build Coastguard Worker.long	0x5e281885	//sha1su1 v5.16b,v4.16b
1141*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0430e6	//sha1su0 v6.16b,v7.16b,v4.16b
1142*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 7
1143*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1144*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v17.4s,v5.4s
1145*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818a6	//sha1su1 v6.16b,v5.16b
1146*8fb009dcSAndroid Build Coastguard Worker.long	0x5e053087	//sha1su0 v7.16b,v4.16b,v5.16b
1147*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 8
1148*8fb009dcSAndroid Build Coastguard Worker.long	0x5e141040	//sha1p v0.16b,v2.16b,v20.4s
1149*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v18.4s,v6.4s
1150*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818c7	//sha1su1 v7.16b,v6.16b
1151*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0630a4	//sha1su0 v4.16b,v5.16b,v6.16b
1152*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 9
1153*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1154*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v18.4s,v7.4s
1155*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818e4	//sha1su1 v4.16b,v7.16b
1156*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0730c5	//sha1su0 v5.16b,v6.16b,v7.16b
1157*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 10
1158*8fb009dcSAndroid Build Coastguard Worker.long	0x5e142040	//sha1m v0.16b,v2.16b,v20.4s
1159*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v18.4s,v4.4s
1160*8fb009dcSAndroid Build Coastguard Worker.long	0x5e281885	//sha1su1 v5.16b,v4.16b
1161*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0430e6	//sha1su0 v6.16b,v7.16b,v4.16b
1162*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 11
1163*8fb009dcSAndroid Build Coastguard Worker.long	0x5e152060	//sha1m v0.16b,v3.16b,v21.4s
1164*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v18.4s,v5.4s
1165*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818a6	//sha1su1 v6.16b,v5.16b
1166*8fb009dcSAndroid Build Coastguard Worker.long	0x5e053087	//sha1su0 v7.16b,v4.16b,v5.16b
1167*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 12
1168*8fb009dcSAndroid Build Coastguard Worker.long	0x5e142040	//sha1m v0.16b,v2.16b,v20.4s
1169*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v18.4s,v6.4s
1170*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818c7	//sha1su1 v7.16b,v6.16b
1171*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0630a4	//sha1su0 v4.16b,v5.16b,v6.16b
1172*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 13
1173*8fb009dcSAndroid Build Coastguard Worker.long	0x5e152060	//sha1m v0.16b,v3.16b,v21.4s
1174*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v19.4s,v7.4s
1175*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818e4	//sha1su1 v4.16b,v7.16b
1176*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0730c5	//sha1su0 v5.16b,v6.16b,v7.16b
1177*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 14
1178*8fb009dcSAndroid Build Coastguard Worker.long	0x5e142040	//sha1m v0.16b,v2.16b,v20.4s
1179*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v19.4s,v4.4s
1180*8fb009dcSAndroid Build Coastguard Worker.long	0x5e281885	//sha1su1 v5.16b,v4.16b
1181*8fb009dcSAndroid Build Coastguard Worker.long	0x5e0430e6	//sha1su0 v6.16b,v7.16b,v4.16b
1182*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 15
1183*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1184*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v19.4s,v5.4s
1185*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818a6	//sha1su1 v6.16b,v5.16b
1186*8fb009dcSAndroid Build Coastguard Worker.long	0x5e053087	//sha1su0 v7.16b,v4.16b,v5.16b
1187*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 16
1188*8fb009dcSAndroid Build Coastguard Worker.long	0x5e141040	//sha1p v0.16b,v2.16b,v20.4s
1189*8fb009dcSAndroid Build Coastguard Worker	add	v20.4s,v19.4s,v6.4s
1190*8fb009dcSAndroid Build Coastguard Worker.long	0x5e2818c7	//sha1su1 v7.16b,v6.16b
1191*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 17
1192*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1193*8fb009dcSAndroid Build Coastguard Worker	add	v21.4s,v19.4s,v7.4s
1194*8fb009dcSAndroid Build Coastguard Worker
1195*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280803	//sha1h v3.16b,v0.16b		// 18
1196*8fb009dcSAndroid Build Coastguard Worker.long	0x5e141040	//sha1p v0.16b,v2.16b,v20.4s
1197*8fb009dcSAndroid Build Coastguard Worker
1198*8fb009dcSAndroid Build Coastguard Worker.long	0x5e280802	//sha1h v2.16b,v0.16b		// 19
1199*8fb009dcSAndroid Build Coastguard Worker.long	0x5e151060	//sha1p v0.16b,v3.16b,v21.4s
1200*8fb009dcSAndroid Build Coastguard Worker
1201*8fb009dcSAndroid Build Coastguard Worker	add	v1.4s,v1.4s,v2.4s
1202*8fb009dcSAndroid Build Coastguard Worker	add	v0.4s,v0.4s,v22.4s
1203*8fb009dcSAndroid Build Coastguard Worker
1204*8fb009dcSAndroid Build Coastguard Worker	cbnz	x2,Loop_hw
1205*8fb009dcSAndroid Build Coastguard Worker
1206*8fb009dcSAndroid Build Coastguard Worker	st1	{v0.4s},[x0],#16
1207*8fb009dcSAndroid Build Coastguard Worker	st1	{v1.s}[0],[x0]
1208*8fb009dcSAndroid Build Coastguard Worker
1209*8fb009dcSAndroid Build Coastguard Worker	ldr	x29,[sp],#16
1210*8fb009dcSAndroid Build Coastguard Worker	ret
1211*8fb009dcSAndroid Build Coastguard Worker
1212*8fb009dcSAndroid Build Coastguard Worker.section	.rodata
1213*8fb009dcSAndroid Build Coastguard Worker.align	6
1214*8fb009dcSAndroid Build Coastguard WorkerLconst:
1215*8fb009dcSAndroid Build Coastguard Worker.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	//K_00_19
1216*8fb009dcSAndroid Build Coastguard Worker.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	//K_20_39
1217*8fb009dcSAndroid Build Coastguard Worker.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	//K_40_59
1218*8fb009dcSAndroid Build Coastguard Worker.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	//K_60_79
1219*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,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
1220*8fb009dcSAndroid Build Coastguard Worker.align	2
1221*8fb009dcSAndroid Build Coastguard Worker.align	2
1222*8fb009dcSAndroid Build Coastguard Worker#endif  // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(_WIN32)
1223