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