1#include "arm_arch.h"
2
3.text
4
5
6.globl	sha512_block_data_order
7.type	sha512_block_data_order,%function
8.align	6
9sha512_block_data_order:
10	stp	x29,x30,[sp,#-128]!
11	add	x29,sp,#0
12
13	stp	x19,x20,[sp,#16]
14	stp	x21,x22,[sp,#32]
15	stp	x23,x24,[sp,#48]
16	stp	x25,x26,[sp,#64]
17	stp	x27,x28,[sp,#80]
18	sub	sp,sp,#4*8
19
20	ldp	x20,x21,[x0]				// load context
21	ldp	x22,x23,[x0,#2*8]
22	ldp	x24,x25,[x0,#4*8]
23	add	x2,x1,x2,lsl#7	// end of input
24	ldp	x26,x27,[x0,#6*8]
25	adr	x30,.LK512
26	stp	x0,x2,[x29,#96]
27
28.Loop:
29	ldp	x3,x4,[x1],#2*8
30	ldr	x19,[x30],#8			// *K++
31	eor	x28,x21,x22				// magic seed
32	str	x1,[x29,#112]
33#ifndef	__ARMEB__
34	rev	x3,x3			// 0
35#endif
36	ror	x16,x24,#14
37	add	x27,x27,x19			// h+=K[i]
38	eor	x6,x24,x24,ror#23
39	and	x17,x25,x24
40	bic	x19,x26,x24
41	add	x27,x27,x3			// h+=X[i]
42	orr	x17,x17,x19			// Ch(e,f,g)
43	eor	x19,x20,x21			// a^b, b^c in next round
44	eor	x16,x16,x6,ror#18	// Sigma1(e)
45	ror	x6,x20,#28
46	add	x27,x27,x17			// h+=Ch(e,f,g)
47	eor	x17,x20,x20,ror#5
48	add	x27,x27,x16			// h+=Sigma1(e)
49	and	x28,x28,x19			// (b^c)&=(a^b)
50	add	x23,x23,x27			// d+=h
51	eor	x28,x28,x21			// Maj(a,b,c)
52	eor	x17,x6,x17,ror#34	// Sigma0(a)
53	add	x27,x27,x28			// h+=Maj(a,b,c)
54	ldr	x28,[x30],#8		// *K++, x19 in next round
55	//add	x27,x27,x17			// h+=Sigma0(a)
56#ifndef	__ARMEB__
57	rev	x4,x4			// 1
58#endif
59	ldp	x5,x6,[x1],#2*8
60	add	x27,x27,x17			// h+=Sigma0(a)
61	ror	x16,x23,#14
62	add	x26,x26,x28			// h+=K[i]
63	eor	x7,x23,x23,ror#23
64	and	x17,x24,x23
65	bic	x28,x25,x23
66	add	x26,x26,x4			// h+=X[i]
67	orr	x17,x17,x28			// Ch(e,f,g)
68	eor	x28,x27,x20			// a^b, b^c in next round
69	eor	x16,x16,x7,ror#18	// Sigma1(e)
70	ror	x7,x27,#28
71	add	x26,x26,x17			// h+=Ch(e,f,g)
72	eor	x17,x27,x27,ror#5
73	add	x26,x26,x16			// h+=Sigma1(e)
74	and	x19,x19,x28			// (b^c)&=(a^b)
75	add	x22,x22,x26			// d+=h
76	eor	x19,x19,x20			// Maj(a,b,c)
77	eor	x17,x7,x17,ror#34	// Sigma0(a)
78	add	x26,x26,x19			// h+=Maj(a,b,c)
79	ldr	x19,[x30],#8		// *K++, x28 in next round
80	//add	x26,x26,x17			// h+=Sigma0(a)
81#ifndef	__ARMEB__
82	rev	x5,x5			// 2
83#endif
84	add	x26,x26,x17			// h+=Sigma0(a)
85	ror	x16,x22,#14
86	add	x25,x25,x19			// h+=K[i]
87	eor	x8,x22,x22,ror#23
88	and	x17,x23,x22
89	bic	x19,x24,x22
90	add	x25,x25,x5			// h+=X[i]
91	orr	x17,x17,x19			// Ch(e,f,g)
92	eor	x19,x26,x27			// a^b, b^c in next round
93	eor	x16,x16,x8,ror#18	// Sigma1(e)
94	ror	x8,x26,#28
95	add	x25,x25,x17			// h+=Ch(e,f,g)
96	eor	x17,x26,x26,ror#5
97	add	x25,x25,x16			// h+=Sigma1(e)
98	and	x28,x28,x19			// (b^c)&=(a^b)
99	add	x21,x21,x25			// d+=h
100	eor	x28,x28,x27			// Maj(a,b,c)
101	eor	x17,x8,x17,ror#34	// Sigma0(a)
102	add	x25,x25,x28			// h+=Maj(a,b,c)
103	ldr	x28,[x30],#8		// *K++, x19 in next round
104	//add	x25,x25,x17			// h+=Sigma0(a)
105#ifndef	__ARMEB__
106	rev	x6,x6			// 3
107#endif
108	ldp	x7,x8,[x1],#2*8
109	add	x25,x25,x17			// h+=Sigma0(a)
110	ror	x16,x21,#14
111	add	x24,x24,x28			// h+=K[i]
112	eor	x9,x21,x21,ror#23
113	and	x17,x22,x21
114	bic	x28,x23,x21
115	add	x24,x24,x6			// h+=X[i]
116	orr	x17,x17,x28			// Ch(e,f,g)
117	eor	x28,x25,x26			// a^b, b^c in next round
118	eor	x16,x16,x9,ror#18	// Sigma1(e)
119	ror	x9,x25,#28
120	add	x24,x24,x17			// h+=Ch(e,f,g)
121	eor	x17,x25,x25,ror#5
122	add	x24,x24,x16			// h+=Sigma1(e)
123	and	x19,x19,x28			// (b^c)&=(a^b)
124	add	x20,x20,x24			// d+=h
125	eor	x19,x19,x26			// Maj(a,b,c)
126	eor	x17,x9,x17,ror#34	// Sigma0(a)
127	add	x24,x24,x19			// h+=Maj(a,b,c)
128	ldr	x19,[x30],#8		// *K++, x28 in next round
129	//add	x24,x24,x17			// h+=Sigma0(a)
130#ifndef	__ARMEB__
131	rev	x7,x7			// 4
132#endif
133	add	x24,x24,x17			// h+=Sigma0(a)
134	ror	x16,x20,#14
135	add	x23,x23,x19			// h+=K[i]
136	eor	x10,x20,x20,ror#23
137	and	x17,x21,x20
138	bic	x19,x22,x20
139	add	x23,x23,x7			// h+=X[i]
140	orr	x17,x17,x19			// Ch(e,f,g)
141	eor	x19,x24,x25			// a^b, b^c in next round
142	eor	x16,x16,x10,ror#18	// Sigma1(e)
143	ror	x10,x24,#28
144	add	x23,x23,x17			// h+=Ch(e,f,g)
145	eor	x17,x24,x24,ror#5
146	add	x23,x23,x16			// h+=Sigma1(e)
147	and	x28,x28,x19			// (b^c)&=(a^b)
148	add	x27,x27,x23			// d+=h
149	eor	x28,x28,x25			// Maj(a,b,c)
150	eor	x17,x10,x17,ror#34	// Sigma0(a)
151	add	x23,x23,x28			// h+=Maj(a,b,c)
152	ldr	x28,[x30],#8		// *K++, x19 in next round
153	//add	x23,x23,x17			// h+=Sigma0(a)
154#ifndef	__ARMEB__
155	rev	x8,x8			// 5
156#endif
157	ldp	x9,x10,[x1],#2*8
158	add	x23,x23,x17			// h+=Sigma0(a)
159	ror	x16,x27,#14
160	add	x22,x22,x28			// h+=K[i]
161	eor	x11,x27,x27,ror#23
162	and	x17,x20,x27
163	bic	x28,x21,x27
164	add	x22,x22,x8			// h+=X[i]
165	orr	x17,x17,x28			// Ch(e,f,g)
166	eor	x28,x23,x24			// a^b, b^c in next round
167	eor	x16,x16,x11,ror#18	// Sigma1(e)
168	ror	x11,x23,#28
169	add	x22,x22,x17			// h+=Ch(e,f,g)
170	eor	x17,x23,x23,ror#5
171	add	x22,x22,x16			// h+=Sigma1(e)
172	and	x19,x19,x28			// (b^c)&=(a^b)
173	add	x26,x26,x22			// d+=h
174	eor	x19,x19,x24			// Maj(a,b,c)
175	eor	x17,x11,x17,ror#34	// Sigma0(a)
176	add	x22,x22,x19			// h+=Maj(a,b,c)
177	ldr	x19,[x30],#8		// *K++, x28 in next round
178	//add	x22,x22,x17			// h+=Sigma0(a)
179#ifndef	__ARMEB__
180	rev	x9,x9			// 6
181#endif
182	add	x22,x22,x17			// h+=Sigma0(a)
183	ror	x16,x26,#14
184	add	x21,x21,x19			// h+=K[i]
185	eor	x12,x26,x26,ror#23
186	and	x17,x27,x26
187	bic	x19,x20,x26
188	add	x21,x21,x9			// h+=X[i]
189	orr	x17,x17,x19			// Ch(e,f,g)
190	eor	x19,x22,x23			// a^b, b^c in next round
191	eor	x16,x16,x12,ror#18	// Sigma1(e)
192	ror	x12,x22,#28
193	add	x21,x21,x17			// h+=Ch(e,f,g)
194	eor	x17,x22,x22,ror#5
195	add	x21,x21,x16			// h+=Sigma1(e)
196	and	x28,x28,x19			// (b^c)&=(a^b)
197	add	x25,x25,x21			// d+=h
198	eor	x28,x28,x23			// Maj(a,b,c)
199	eor	x17,x12,x17,ror#34	// Sigma0(a)
200	add	x21,x21,x28			// h+=Maj(a,b,c)
201	ldr	x28,[x30],#8		// *K++, x19 in next round
202	//add	x21,x21,x17			// h+=Sigma0(a)
203#ifndef	__ARMEB__
204	rev	x10,x10			// 7
205#endif
206	ldp	x11,x12,[x1],#2*8
207	add	x21,x21,x17			// h+=Sigma0(a)
208	ror	x16,x25,#14
209	add	x20,x20,x28			// h+=K[i]
210	eor	x13,x25,x25,ror#23
211	and	x17,x26,x25
212	bic	x28,x27,x25
213	add	x20,x20,x10			// h+=X[i]
214	orr	x17,x17,x28			// Ch(e,f,g)
215	eor	x28,x21,x22			// a^b, b^c in next round
216	eor	x16,x16,x13,ror#18	// Sigma1(e)
217	ror	x13,x21,#28
218	add	x20,x20,x17			// h+=Ch(e,f,g)
219	eor	x17,x21,x21,ror#5
220	add	x20,x20,x16			// h+=Sigma1(e)
221	and	x19,x19,x28			// (b^c)&=(a^b)
222	add	x24,x24,x20			// d+=h
223	eor	x19,x19,x22			// Maj(a,b,c)
224	eor	x17,x13,x17,ror#34	// Sigma0(a)
225	add	x20,x20,x19			// h+=Maj(a,b,c)
226	ldr	x19,[x30],#8		// *K++, x28 in next round
227	//add	x20,x20,x17			// h+=Sigma0(a)
228#ifndef	__ARMEB__
229	rev	x11,x11			// 8
230#endif
231	add	x20,x20,x17			// h+=Sigma0(a)
232	ror	x16,x24,#14
233	add	x27,x27,x19			// h+=K[i]
234	eor	x14,x24,x24,ror#23
235	and	x17,x25,x24
236	bic	x19,x26,x24
237	add	x27,x27,x11			// h+=X[i]
238	orr	x17,x17,x19			// Ch(e,f,g)
239	eor	x19,x20,x21			// a^b, b^c in next round
240	eor	x16,x16,x14,ror#18	// Sigma1(e)
241	ror	x14,x20,#28
242	add	x27,x27,x17			// h+=Ch(e,f,g)
243	eor	x17,x20,x20,ror#5
244	add	x27,x27,x16			// h+=Sigma1(e)
245	and	x28,x28,x19			// (b^c)&=(a^b)
246	add	x23,x23,x27			// d+=h
247	eor	x28,x28,x21			// Maj(a,b,c)
248	eor	x17,x14,x17,ror#34	// Sigma0(a)
249	add	x27,x27,x28			// h+=Maj(a,b,c)
250	ldr	x28,[x30],#8		// *K++, x19 in next round
251	//add	x27,x27,x17			// h+=Sigma0(a)
252#ifndef	__ARMEB__
253	rev	x12,x12			// 9
254#endif
255	ldp	x13,x14,[x1],#2*8
256	add	x27,x27,x17			// h+=Sigma0(a)
257	ror	x16,x23,#14
258	add	x26,x26,x28			// h+=K[i]
259	eor	x15,x23,x23,ror#23
260	and	x17,x24,x23
261	bic	x28,x25,x23
262	add	x26,x26,x12			// h+=X[i]
263	orr	x17,x17,x28			// Ch(e,f,g)
264	eor	x28,x27,x20			// a^b, b^c in next round
265	eor	x16,x16,x15,ror#18	// Sigma1(e)
266	ror	x15,x27,#28
267	add	x26,x26,x17			// h+=Ch(e,f,g)
268	eor	x17,x27,x27,ror#5
269	add	x26,x26,x16			// h+=Sigma1(e)
270	and	x19,x19,x28			// (b^c)&=(a^b)
271	add	x22,x22,x26			// d+=h
272	eor	x19,x19,x20			// Maj(a,b,c)
273	eor	x17,x15,x17,ror#34	// Sigma0(a)
274	add	x26,x26,x19			// h+=Maj(a,b,c)
275	ldr	x19,[x30],#8		// *K++, x28 in next round
276	//add	x26,x26,x17			// h+=Sigma0(a)
277#ifndef	__ARMEB__
278	rev	x13,x13			// 10
279#endif
280	add	x26,x26,x17			// h+=Sigma0(a)
281	ror	x16,x22,#14
282	add	x25,x25,x19			// h+=K[i]
283	eor	x0,x22,x22,ror#23
284	and	x17,x23,x22
285	bic	x19,x24,x22
286	add	x25,x25,x13			// h+=X[i]
287	orr	x17,x17,x19			// Ch(e,f,g)
288	eor	x19,x26,x27			// a^b, b^c in next round
289	eor	x16,x16,x0,ror#18	// Sigma1(e)
290	ror	x0,x26,#28
291	add	x25,x25,x17			// h+=Ch(e,f,g)
292	eor	x17,x26,x26,ror#5
293	add	x25,x25,x16			// h+=Sigma1(e)
294	and	x28,x28,x19			// (b^c)&=(a^b)
295	add	x21,x21,x25			// d+=h
296	eor	x28,x28,x27			// Maj(a,b,c)
297	eor	x17,x0,x17,ror#34	// Sigma0(a)
298	add	x25,x25,x28			// h+=Maj(a,b,c)
299	ldr	x28,[x30],#8		// *K++, x19 in next round
300	//add	x25,x25,x17			// h+=Sigma0(a)
301#ifndef	__ARMEB__
302	rev	x14,x14			// 11
303#endif
304	ldp	x15,x0,[x1],#2*8
305	add	x25,x25,x17			// h+=Sigma0(a)
306	str	x6,[sp,#24]
307	ror	x16,x21,#14
308	add	x24,x24,x28			// h+=K[i]
309	eor	x6,x21,x21,ror#23
310	and	x17,x22,x21
311	bic	x28,x23,x21
312	add	x24,x24,x14			// h+=X[i]
313	orr	x17,x17,x28			// Ch(e,f,g)
314	eor	x28,x25,x26			// a^b, b^c in next round
315	eor	x16,x16,x6,ror#18	// Sigma1(e)
316	ror	x6,x25,#28
317	add	x24,x24,x17			// h+=Ch(e,f,g)
318	eor	x17,x25,x25,ror#5
319	add	x24,x24,x16			// h+=Sigma1(e)
320	and	x19,x19,x28			// (b^c)&=(a^b)
321	add	x20,x20,x24			// d+=h
322	eor	x19,x19,x26			// Maj(a,b,c)
323	eor	x17,x6,x17,ror#34	// Sigma0(a)
324	add	x24,x24,x19			// h+=Maj(a,b,c)
325	ldr	x19,[x30],#8		// *K++, x28 in next round
326	//add	x24,x24,x17			// h+=Sigma0(a)
327#ifndef	__ARMEB__
328	rev	x15,x15			// 12
329#endif
330	add	x24,x24,x17			// h+=Sigma0(a)
331	str	x7,[sp,#0]
332	ror	x16,x20,#14
333	add	x23,x23,x19			// h+=K[i]
334	eor	x7,x20,x20,ror#23
335	and	x17,x21,x20
336	bic	x19,x22,x20
337	add	x23,x23,x15			// h+=X[i]
338	orr	x17,x17,x19			// Ch(e,f,g)
339	eor	x19,x24,x25			// a^b, b^c in next round
340	eor	x16,x16,x7,ror#18	// Sigma1(e)
341	ror	x7,x24,#28
342	add	x23,x23,x17			// h+=Ch(e,f,g)
343	eor	x17,x24,x24,ror#5
344	add	x23,x23,x16			// h+=Sigma1(e)
345	and	x28,x28,x19			// (b^c)&=(a^b)
346	add	x27,x27,x23			// d+=h
347	eor	x28,x28,x25			// Maj(a,b,c)
348	eor	x17,x7,x17,ror#34	// Sigma0(a)
349	add	x23,x23,x28			// h+=Maj(a,b,c)
350	ldr	x28,[x30],#8		// *K++, x19 in next round
351	//add	x23,x23,x17			// h+=Sigma0(a)
352#ifndef	__ARMEB__
353	rev	x0,x0			// 13
354#endif
355	ldp	x1,x2,[x1]
356	add	x23,x23,x17			// h+=Sigma0(a)
357	str	x8,[sp,#8]
358	ror	x16,x27,#14
359	add	x22,x22,x28			// h+=K[i]
360	eor	x8,x27,x27,ror#23
361	and	x17,x20,x27
362	bic	x28,x21,x27
363	add	x22,x22,x0			// h+=X[i]
364	orr	x17,x17,x28			// Ch(e,f,g)
365	eor	x28,x23,x24			// a^b, b^c in next round
366	eor	x16,x16,x8,ror#18	// Sigma1(e)
367	ror	x8,x23,#28
368	add	x22,x22,x17			// h+=Ch(e,f,g)
369	eor	x17,x23,x23,ror#5
370	add	x22,x22,x16			// h+=Sigma1(e)
371	and	x19,x19,x28			// (b^c)&=(a^b)
372	add	x26,x26,x22			// d+=h
373	eor	x19,x19,x24			// Maj(a,b,c)
374	eor	x17,x8,x17,ror#34	// Sigma0(a)
375	add	x22,x22,x19			// h+=Maj(a,b,c)
376	ldr	x19,[x30],#8		// *K++, x28 in next round
377	//add	x22,x22,x17			// h+=Sigma0(a)
378#ifndef	__ARMEB__
379	rev	x1,x1			// 14
380#endif
381	ldr	x6,[sp,#24]
382	add	x22,x22,x17			// h+=Sigma0(a)
383	str	x9,[sp,#16]
384	ror	x16,x26,#14
385	add	x21,x21,x19			// h+=K[i]
386	eor	x9,x26,x26,ror#23
387	and	x17,x27,x26
388	bic	x19,x20,x26
389	add	x21,x21,x1			// h+=X[i]
390	orr	x17,x17,x19			// Ch(e,f,g)
391	eor	x19,x22,x23			// a^b, b^c in next round
392	eor	x16,x16,x9,ror#18	// Sigma1(e)
393	ror	x9,x22,#28
394	add	x21,x21,x17			// h+=Ch(e,f,g)
395	eor	x17,x22,x22,ror#5
396	add	x21,x21,x16			// h+=Sigma1(e)
397	and	x28,x28,x19			// (b^c)&=(a^b)
398	add	x25,x25,x21			// d+=h
399	eor	x28,x28,x23			// Maj(a,b,c)
400	eor	x17,x9,x17,ror#34	// Sigma0(a)
401	add	x21,x21,x28			// h+=Maj(a,b,c)
402	ldr	x28,[x30],#8		// *K++, x19 in next round
403	//add	x21,x21,x17			// h+=Sigma0(a)
404#ifndef	__ARMEB__
405	rev	x2,x2			// 15
406#endif
407	ldr	x7,[sp,#0]
408	add	x21,x21,x17			// h+=Sigma0(a)
409	str	x10,[sp,#24]
410	ror	x16,x25,#14
411	add	x20,x20,x28			// h+=K[i]
412	ror	x9,x4,#1
413	and	x17,x26,x25
414	ror	x8,x1,#19
415	bic	x28,x27,x25
416	ror	x10,x21,#28
417	add	x20,x20,x2			// h+=X[i]
418	eor	x16,x16,x25,ror#18
419	eor	x9,x9,x4,ror#8
420	orr	x17,x17,x28			// Ch(e,f,g)
421	eor	x28,x21,x22			// a^b, b^c in next round
422	eor	x16,x16,x25,ror#41	// Sigma1(e)
423	eor	x10,x10,x21,ror#34
424	add	x20,x20,x17			// h+=Ch(e,f,g)
425	and	x19,x19,x28			// (b^c)&=(a^b)
426	eor	x8,x8,x1,ror#61
427	eor	x9,x9,x4,lsr#7	// sigma0(X[i+1])
428	add	x20,x20,x16			// h+=Sigma1(e)
429	eor	x19,x19,x22			// Maj(a,b,c)
430	eor	x17,x10,x21,ror#39	// Sigma0(a)
431	eor	x8,x8,x1,lsr#6	// sigma1(X[i+14])
432	add	x3,x3,x12
433	add	x24,x24,x20			// d+=h
434	add	x20,x20,x19			// h+=Maj(a,b,c)
435	ldr	x19,[x30],#8		// *K++, x28 in next round
436	add	x3,x3,x9
437	add	x20,x20,x17			// h+=Sigma0(a)
438	add	x3,x3,x8
439.Loop_16_xx:
440	ldr	x8,[sp,#8]
441	str	x11,[sp,#0]
442	ror	x16,x24,#14
443	add	x27,x27,x19			// h+=K[i]
444	ror	x10,x5,#1
445	and	x17,x25,x24
446	ror	x9,x2,#19
447	bic	x19,x26,x24
448	ror	x11,x20,#28
449	add	x27,x27,x3			// h+=X[i]
450	eor	x16,x16,x24,ror#18
451	eor	x10,x10,x5,ror#8
452	orr	x17,x17,x19			// Ch(e,f,g)
453	eor	x19,x20,x21			// a^b, b^c in next round
454	eor	x16,x16,x24,ror#41	// Sigma1(e)
455	eor	x11,x11,x20,ror#34
456	add	x27,x27,x17			// h+=Ch(e,f,g)
457	and	x28,x28,x19			// (b^c)&=(a^b)
458	eor	x9,x9,x2,ror#61
459	eor	x10,x10,x5,lsr#7	// sigma0(X[i+1])
460	add	x27,x27,x16			// h+=Sigma1(e)
461	eor	x28,x28,x21			// Maj(a,b,c)
462	eor	x17,x11,x20,ror#39	// Sigma0(a)
463	eor	x9,x9,x2,lsr#6	// sigma1(X[i+14])
464	add	x4,x4,x13
465	add	x23,x23,x27			// d+=h
466	add	x27,x27,x28			// h+=Maj(a,b,c)
467	ldr	x28,[x30],#8		// *K++, x19 in next round
468	add	x4,x4,x10
469	add	x27,x27,x17			// h+=Sigma0(a)
470	add	x4,x4,x9
471	ldr	x9,[sp,#16]
472	str	x12,[sp,#8]
473	ror	x16,x23,#14
474	add	x26,x26,x28			// h+=K[i]
475	ror	x11,x6,#1
476	and	x17,x24,x23
477	ror	x10,x3,#19
478	bic	x28,x25,x23
479	ror	x12,x27,#28
480	add	x26,x26,x4			// h+=X[i]
481	eor	x16,x16,x23,ror#18
482	eor	x11,x11,x6,ror#8
483	orr	x17,x17,x28			// Ch(e,f,g)
484	eor	x28,x27,x20			// a^b, b^c in next round
485	eor	x16,x16,x23,ror#41	// Sigma1(e)
486	eor	x12,x12,x27,ror#34
487	add	x26,x26,x17			// h+=Ch(e,f,g)
488	and	x19,x19,x28			// (b^c)&=(a^b)
489	eor	x10,x10,x3,ror#61
490	eor	x11,x11,x6,lsr#7	// sigma0(X[i+1])
491	add	x26,x26,x16			// h+=Sigma1(e)
492	eor	x19,x19,x20			// Maj(a,b,c)
493	eor	x17,x12,x27,ror#39	// Sigma0(a)
494	eor	x10,x10,x3,lsr#6	// sigma1(X[i+14])
495	add	x5,x5,x14
496	add	x22,x22,x26			// d+=h
497	add	x26,x26,x19			// h+=Maj(a,b,c)
498	ldr	x19,[x30],#8		// *K++, x28 in next round
499	add	x5,x5,x11
500	add	x26,x26,x17			// h+=Sigma0(a)
501	add	x5,x5,x10
502	ldr	x10,[sp,#24]
503	str	x13,[sp,#16]
504	ror	x16,x22,#14
505	add	x25,x25,x19			// h+=K[i]
506	ror	x12,x7,#1
507	and	x17,x23,x22
508	ror	x11,x4,#19
509	bic	x19,x24,x22
510	ror	x13,x26,#28
511	add	x25,x25,x5			// h+=X[i]
512	eor	x16,x16,x22,ror#18
513	eor	x12,x12,x7,ror#8
514	orr	x17,x17,x19			// Ch(e,f,g)
515	eor	x19,x26,x27			// a^b, b^c in next round
516	eor	x16,x16,x22,ror#41	// Sigma1(e)
517	eor	x13,x13,x26,ror#34
518	add	x25,x25,x17			// h+=Ch(e,f,g)
519	and	x28,x28,x19			// (b^c)&=(a^b)
520	eor	x11,x11,x4,ror#61
521	eor	x12,x12,x7,lsr#7	// sigma0(X[i+1])
522	add	x25,x25,x16			// h+=Sigma1(e)
523	eor	x28,x28,x27			// Maj(a,b,c)
524	eor	x17,x13,x26,ror#39	// Sigma0(a)
525	eor	x11,x11,x4,lsr#6	// sigma1(X[i+14])
526	add	x6,x6,x15
527	add	x21,x21,x25			// d+=h
528	add	x25,x25,x28			// h+=Maj(a,b,c)
529	ldr	x28,[x30],#8		// *K++, x19 in next round
530	add	x6,x6,x12
531	add	x25,x25,x17			// h+=Sigma0(a)
532	add	x6,x6,x11
533	ldr	x11,[sp,#0]
534	str	x14,[sp,#24]
535	ror	x16,x21,#14
536	add	x24,x24,x28			// h+=K[i]
537	ror	x13,x8,#1
538	and	x17,x22,x21
539	ror	x12,x5,#19
540	bic	x28,x23,x21
541	ror	x14,x25,#28
542	add	x24,x24,x6			// h+=X[i]
543	eor	x16,x16,x21,ror#18
544	eor	x13,x13,x8,ror#8
545	orr	x17,x17,x28			// Ch(e,f,g)
546	eor	x28,x25,x26			// a^b, b^c in next round
547	eor	x16,x16,x21,ror#41	// Sigma1(e)
548	eor	x14,x14,x25,ror#34
549	add	x24,x24,x17			// h+=Ch(e,f,g)
550	and	x19,x19,x28			// (b^c)&=(a^b)
551	eor	x12,x12,x5,ror#61
552	eor	x13,x13,x8,lsr#7	// sigma0(X[i+1])
553	add	x24,x24,x16			// h+=Sigma1(e)
554	eor	x19,x19,x26			// Maj(a,b,c)
555	eor	x17,x14,x25,ror#39	// Sigma0(a)
556	eor	x12,x12,x5,lsr#6	// sigma1(X[i+14])
557	add	x7,x7,x0
558	add	x20,x20,x24			// d+=h
559	add	x24,x24,x19			// h+=Maj(a,b,c)
560	ldr	x19,[x30],#8		// *K++, x28 in next round
561	add	x7,x7,x13
562	add	x24,x24,x17			// h+=Sigma0(a)
563	add	x7,x7,x12
564	ldr	x12,[sp,#8]
565	str	x15,[sp,#0]
566	ror	x16,x20,#14
567	add	x23,x23,x19			// h+=K[i]
568	ror	x14,x9,#1
569	and	x17,x21,x20
570	ror	x13,x6,#19
571	bic	x19,x22,x20
572	ror	x15,x24,#28
573	add	x23,x23,x7			// h+=X[i]
574	eor	x16,x16,x20,ror#18
575	eor	x14,x14,x9,ror#8
576	orr	x17,x17,x19			// Ch(e,f,g)
577	eor	x19,x24,x25			// a^b, b^c in next round
578	eor	x16,x16,x20,ror#41	// Sigma1(e)
579	eor	x15,x15,x24,ror#34
580	add	x23,x23,x17			// h+=Ch(e,f,g)
581	and	x28,x28,x19			// (b^c)&=(a^b)
582	eor	x13,x13,x6,ror#61
583	eor	x14,x14,x9,lsr#7	// sigma0(X[i+1])
584	add	x23,x23,x16			// h+=Sigma1(e)
585	eor	x28,x28,x25			// Maj(a,b,c)
586	eor	x17,x15,x24,ror#39	// Sigma0(a)
587	eor	x13,x13,x6,lsr#6	// sigma1(X[i+14])
588	add	x8,x8,x1
589	add	x27,x27,x23			// d+=h
590	add	x23,x23,x28			// h+=Maj(a,b,c)
591	ldr	x28,[x30],#8		// *K++, x19 in next round
592	add	x8,x8,x14
593	add	x23,x23,x17			// h+=Sigma0(a)
594	add	x8,x8,x13
595	ldr	x13,[sp,#16]
596	str	x0,[sp,#8]
597	ror	x16,x27,#14
598	add	x22,x22,x28			// h+=K[i]
599	ror	x15,x10,#1
600	and	x17,x20,x27
601	ror	x14,x7,#19
602	bic	x28,x21,x27
603	ror	x0,x23,#28
604	add	x22,x22,x8			// h+=X[i]
605	eor	x16,x16,x27,ror#18
606	eor	x15,x15,x10,ror#8
607	orr	x17,x17,x28			// Ch(e,f,g)
608	eor	x28,x23,x24			// a^b, b^c in next round
609	eor	x16,x16,x27,ror#41	// Sigma1(e)
610	eor	x0,x0,x23,ror#34
611	add	x22,x22,x17			// h+=Ch(e,f,g)
612	and	x19,x19,x28			// (b^c)&=(a^b)
613	eor	x14,x14,x7,ror#61
614	eor	x15,x15,x10,lsr#7	// sigma0(X[i+1])
615	add	x22,x22,x16			// h+=Sigma1(e)
616	eor	x19,x19,x24			// Maj(a,b,c)
617	eor	x17,x0,x23,ror#39	// Sigma0(a)
618	eor	x14,x14,x7,lsr#6	// sigma1(X[i+14])
619	add	x9,x9,x2
620	add	x26,x26,x22			// d+=h
621	add	x22,x22,x19			// h+=Maj(a,b,c)
622	ldr	x19,[x30],#8		// *K++, x28 in next round
623	add	x9,x9,x15
624	add	x22,x22,x17			// h+=Sigma0(a)
625	add	x9,x9,x14
626	ldr	x14,[sp,#24]
627	str	x1,[sp,#16]
628	ror	x16,x26,#14
629	add	x21,x21,x19			// h+=K[i]
630	ror	x0,x11,#1
631	and	x17,x27,x26
632	ror	x15,x8,#19
633	bic	x19,x20,x26
634	ror	x1,x22,#28
635	add	x21,x21,x9			// h+=X[i]
636	eor	x16,x16,x26,ror#18
637	eor	x0,x0,x11,ror#8
638	orr	x17,x17,x19			// Ch(e,f,g)
639	eor	x19,x22,x23			// a^b, b^c in next round
640	eor	x16,x16,x26,ror#41	// Sigma1(e)
641	eor	x1,x1,x22,ror#34
642	add	x21,x21,x17			// h+=Ch(e,f,g)
643	and	x28,x28,x19			// (b^c)&=(a^b)
644	eor	x15,x15,x8,ror#61
645	eor	x0,x0,x11,lsr#7	// sigma0(X[i+1])
646	add	x21,x21,x16			// h+=Sigma1(e)
647	eor	x28,x28,x23			// Maj(a,b,c)
648	eor	x17,x1,x22,ror#39	// Sigma0(a)
649	eor	x15,x15,x8,lsr#6	// sigma1(X[i+14])
650	add	x10,x10,x3
651	add	x25,x25,x21			// d+=h
652	add	x21,x21,x28			// h+=Maj(a,b,c)
653	ldr	x28,[x30],#8		// *K++, x19 in next round
654	add	x10,x10,x0
655	add	x21,x21,x17			// h+=Sigma0(a)
656	add	x10,x10,x15
657	ldr	x15,[sp,#0]
658	str	x2,[sp,#24]
659	ror	x16,x25,#14
660	add	x20,x20,x28			// h+=K[i]
661	ror	x1,x12,#1
662	and	x17,x26,x25
663	ror	x0,x9,#19
664	bic	x28,x27,x25
665	ror	x2,x21,#28
666	add	x20,x20,x10			// h+=X[i]
667	eor	x16,x16,x25,ror#18
668	eor	x1,x1,x12,ror#8
669	orr	x17,x17,x28			// Ch(e,f,g)
670	eor	x28,x21,x22			// a^b, b^c in next round
671	eor	x16,x16,x25,ror#41	// Sigma1(e)
672	eor	x2,x2,x21,ror#34
673	add	x20,x20,x17			// h+=Ch(e,f,g)
674	and	x19,x19,x28			// (b^c)&=(a^b)
675	eor	x0,x0,x9,ror#61
676	eor	x1,x1,x12,lsr#7	// sigma0(X[i+1])
677	add	x20,x20,x16			// h+=Sigma1(e)
678	eor	x19,x19,x22			// Maj(a,b,c)
679	eor	x17,x2,x21,ror#39	// Sigma0(a)
680	eor	x0,x0,x9,lsr#6	// sigma1(X[i+14])
681	add	x11,x11,x4
682	add	x24,x24,x20			// d+=h
683	add	x20,x20,x19			// h+=Maj(a,b,c)
684	ldr	x19,[x30],#8		// *K++, x28 in next round
685	add	x11,x11,x1
686	add	x20,x20,x17			// h+=Sigma0(a)
687	add	x11,x11,x0
688	ldr	x0,[sp,#8]
689	str	x3,[sp,#0]
690	ror	x16,x24,#14
691	add	x27,x27,x19			// h+=K[i]
692	ror	x2,x13,#1
693	and	x17,x25,x24
694	ror	x1,x10,#19
695	bic	x19,x26,x24
696	ror	x3,x20,#28
697	add	x27,x27,x11			// h+=X[i]
698	eor	x16,x16,x24,ror#18
699	eor	x2,x2,x13,ror#8
700	orr	x17,x17,x19			// Ch(e,f,g)
701	eor	x19,x20,x21			// a^b, b^c in next round
702	eor	x16,x16,x24,ror#41	// Sigma1(e)
703	eor	x3,x3,x20,ror#34
704	add	x27,x27,x17			// h+=Ch(e,f,g)
705	and	x28,x28,x19			// (b^c)&=(a^b)
706	eor	x1,x1,x10,ror#61
707	eor	x2,x2,x13,lsr#7	// sigma0(X[i+1])
708	add	x27,x27,x16			// h+=Sigma1(e)
709	eor	x28,x28,x21			// Maj(a,b,c)
710	eor	x17,x3,x20,ror#39	// Sigma0(a)
711	eor	x1,x1,x10,lsr#6	// sigma1(X[i+14])
712	add	x12,x12,x5
713	add	x23,x23,x27			// d+=h
714	add	x27,x27,x28			// h+=Maj(a,b,c)
715	ldr	x28,[x30],#8		// *K++, x19 in next round
716	add	x12,x12,x2
717	add	x27,x27,x17			// h+=Sigma0(a)
718	add	x12,x12,x1
719	ldr	x1,[sp,#16]
720	str	x4,[sp,#8]
721	ror	x16,x23,#14
722	add	x26,x26,x28			// h+=K[i]
723	ror	x3,x14,#1
724	and	x17,x24,x23
725	ror	x2,x11,#19
726	bic	x28,x25,x23
727	ror	x4,x27,#28
728	add	x26,x26,x12			// h+=X[i]
729	eor	x16,x16,x23,ror#18
730	eor	x3,x3,x14,ror#8
731	orr	x17,x17,x28			// Ch(e,f,g)
732	eor	x28,x27,x20			// a^b, b^c in next round
733	eor	x16,x16,x23,ror#41	// Sigma1(e)
734	eor	x4,x4,x27,ror#34
735	add	x26,x26,x17			// h+=Ch(e,f,g)
736	and	x19,x19,x28			// (b^c)&=(a^b)
737	eor	x2,x2,x11,ror#61
738	eor	x3,x3,x14,lsr#7	// sigma0(X[i+1])
739	add	x26,x26,x16			// h+=Sigma1(e)
740	eor	x19,x19,x20			// Maj(a,b,c)
741	eor	x17,x4,x27,ror#39	// Sigma0(a)
742	eor	x2,x2,x11,lsr#6	// sigma1(X[i+14])
743	add	x13,x13,x6
744	add	x22,x22,x26			// d+=h
745	add	x26,x26,x19			// h+=Maj(a,b,c)
746	ldr	x19,[x30],#8		// *K++, x28 in next round
747	add	x13,x13,x3
748	add	x26,x26,x17			// h+=Sigma0(a)
749	add	x13,x13,x2
750	ldr	x2,[sp,#24]
751	str	x5,[sp,#16]
752	ror	x16,x22,#14
753	add	x25,x25,x19			// h+=K[i]
754	ror	x4,x15,#1
755	and	x17,x23,x22
756	ror	x3,x12,#19
757	bic	x19,x24,x22
758	ror	x5,x26,#28
759	add	x25,x25,x13			// h+=X[i]
760	eor	x16,x16,x22,ror#18
761	eor	x4,x4,x15,ror#8
762	orr	x17,x17,x19			// Ch(e,f,g)
763	eor	x19,x26,x27			// a^b, b^c in next round
764	eor	x16,x16,x22,ror#41	// Sigma1(e)
765	eor	x5,x5,x26,ror#34
766	add	x25,x25,x17			// h+=Ch(e,f,g)
767	and	x28,x28,x19			// (b^c)&=(a^b)
768	eor	x3,x3,x12,ror#61
769	eor	x4,x4,x15,lsr#7	// sigma0(X[i+1])
770	add	x25,x25,x16			// h+=Sigma1(e)
771	eor	x28,x28,x27			// Maj(a,b,c)
772	eor	x17,x5,x26,ror#39	// Sigma0(a)
773	eor	x3,x3,x12,lsr#6	// sigma1(X[i+14])
774	add	x14,x14,x7
775	add	x21,x21,x25			// d+=h
776	add	x25,x25,x28			// h+=Maj(a,b,c)
777	ldr	x28,[x30],#8		// *K++, x19 in next round
778	add	x14,x14,x4
779	add	x25,x25,x17			// h+=Sigma0(a)
780	add	x14,x14,x3
781	ldr	x3,[sp,#0]
782	str	x6,[sp,#24]
783	ror	x16,x21,#14
784	add	x24,x24,x28			// h+=K[i]
785	ror	x5,x0,#1
786	and	x17,x22,x21
787	ror	x4,x13,#19
788	bic	x28,x23,x21
789	ror	x6,x25,#28
790	add	x24,x24,x14			// h+=X[i]
791	eor	x16,x16,x21,ror#18
792	eor	x5,x5,x0,ror#8
793	orr	x17,x17,x28			// Ch(e,f,g)
794	eor	x28,x25,x26			// a^b, b^c in next round
795	eor	x16,x16,x21,ror#41	// Sigma1(e)
796	eor	x6,x6,x25,ror#34
797	add	x24,x24,x17			// h+=Ch(e,f,g)
798	and	x19,x19,x28			// (b^c)&=(a^b)
799	eor	x4,x4,x13,ror#61
800	eor	x5,x5,x0,lsr#7	// sigma0(X[i+1])
801	add	x24,x24,x16			// h+=Sigma1(e)
802	eor	x19,x19,x26			// Maj(a,b,c)
803	eor	x17,x6,x25,ror#39	// Sigma0(a)
804	eor	x4,x4,x13,lsr#6	// sigma1(X[i+14])
805	add	x15,x15,x8
806	add	x20,x20,x24			// d+=h
807	add	x24,x24,x19			// h+=Maj(a,b,c)
808	ldr	x19,[x30],#8		// *K++, x28 in next round
809	add	x15,x15,x5
810	add	x24,x24,x17			// h+=Sigma0(a)
811	add	x15,x15,x4
812	ldr	x4,[sp,#8]
813	str	x7,[sp,#0]
814	ror	x16,x20,#14
815	add	x23,x23,x19			// h+=K[i]
816	ror	x6,x1,#1
817	and	x17,x21,x20
818	ror	x5,x14,#19
819	bic	x19,x22,x20
820	ror	x7,x24,#28
821	add	x23,x23,x15			// h+=X[i]
822	eor	x16,x16,x20,ror#18
823	eor	x6,x6,x1,ror#8
824	orr	x17,x17,x19			// Ch(e,f,g)
825	eor	x19,x24,x25			// a^b, b^c in next round
826	eor	x16,x16,x20,ror#41	// Sigma1(e)
827	eor	x7,x7,x24,ror#34
828	add	x23,x23,x17			// h+=Ch(e,f,g)
829	and	x28,x28,x19			// (b^c)&=(a^b)
830	eor	x5,x5,x14,ror#61
831	eor	x6,x6,x1,lsr#7	// sigma0(X[i+1])
832	add	x23,x23,x16			// h+=Sigma1(e)
833	eor	x28,x28,x25			// Maj(a,b,c)
834	eor	x17,x7,x24,ror#39	// Sigma0(a)
835	eor	x5,x5,x14,lsr#6	// sigma1(X[i+14])
836	add	x0,x0,x9
837	add	x27,x27,x23			// d+=h
838	add	x23,x23,x28			// h+=Maj(a,b,c)
839	ldr	x28,[x30],#8		// *K++, x19 in next round
840	add	x0,x0,x6
841	add	x23,x23,x17			// h+=Sigma0(a)
842	add	x0,x0,x5
843	ldr	x5,[sp,#16]
844	str	x8,[sp,#8]
845	ror	x16,x27,#14
846	add	x22,x22,x28			// h+=K[i]
847	ror	x7,x2,#1
848	and	x17,x20,x27
849	ror	x6,x15,#19
850	bic	x28,x21,x27
851	ror	x8,x23,#28
852	add	x22,x22,x0			// h+=X[i]
853	eor	x16,x16,x27,ror#18
854	eor	x7,x7,x2,ror#8
855	orr	x17,x17,x28			// Ch(e,f,g)
856	eor	x28,x23,x24			// a^b, b^c in next round
857	eor	x16,x16,x27,ror#41	// Sigma1(e)
858	eor	x8,x8,x23,ror#34
859	add	x22,x22,x17			// h+=Ch(e,f,g)
860	and	x19,x19,x28			// (b^c)&=(a^b)
861	eor	x6,x6,x15,ror#61
862	eor	x7,x7,x2,lsr#7	// sigma0(X[i+1])
863	add	x22,x22,x16			// h+=Sigma1(e)
864	eor	x19,x19,x24			// Maj(a,b,c)
865	eor	x17,x8,x23,ror#39	// Sigma0(a)
866	eor	x6,x6,x15,lsr#6	// sigma1(X[i+14])
867	add	x1,x1,x10
868	add	x26,x26,x22			// d+=h
869	add	x22,x22,x19			// h+=Maj(a,b,c)
870	ldr	x19,[x30],#8		// *K++, x28 in next round
871	add	x1,x1,x7
872	add	x22,x22,x17			// h+=Sigma0(a)
873	add	x1,x1,x6
874	ldr	x6,[sp,#24]
875	str	x9,[sp,#16]
876	ror	x16,x26,#14
877	add	x21,x21,x19			// h+=K[i]
878	ror	x8,x3,#1
879	and	x17,x27,x26
880	ror	x7,x0,#19
881	bic	x19,x20,x26
882	ror	x9,x22,#28
883	add	x21,x21,x1			// h+=X[i]
884	eor	x16,x16,x26,ror#18
885	eor	x8,x8,x3,ror#8
886	orr	x17,x17,x19			// Ch(e,f,g)
887	eor	x19,x22,x23			// a^b, b^c in next round
888	eor	x16,x16,x26,ror#41	// Sigma1(e)
889	eor	x9,x9,x22,ror#34
890	add	x21,x21,x17			// h+=Ch(e,f,g)
891	and	x28,x28,x19			// (b^c)&=(a^b)
892	eor	x7,x7,x0,ror#61
893	eor	x8,x8,x3,lsr#7	// sigma0(X[i+1])
894	add	x21,x21,x16			// h+=Sigma1(e)
895	eor	x28,x28,x23			// Maj(a,b,c)
896	eor	x17,x9,x22,ror#39	// Sigma0(a)
897	eor	x7,x7,x0,lsr#6	// sigma1(X[i+14])
898	add	x2,x2,x11
899	add	x25,x25,x21			// d+=h
900	add	x21,x21,x28			// h+=Maj(a,b,c)
901	ldr	x28,[x30],#8		// *K++, x19 in next round
902	add	x2,x2,x8
903	add	x21,x21,x17			// h+=Sigma0(a)
904	add	x2,x2,x7
905	ldr	x7,[sp,#0]
906	str	x10,[sp,#24]
907	ror	x16,x25,#14
908	add	x20,x20,x28			// h+=K[i]
909	ror	x9,x4,#1
910	and	x17,x26,x25
911	ror	x8,x1,#19
912	bic	x28,x27,x25
913	ror	x10,x21,#28
914	add	x20,x20,x2			// h+=X[i]
915	eor	x16,x16,x25,ror#18
916	eor	x9,x9,x4,ror#8
917	orr	x17,x17,x28			// Ch(e,f,g)
918	eor	x28,x21,x22			// a^b, b^c in next round
919	eor	x16,x16,x25,ror#41	// Sigma1(e)
920	eor	x10,x10,x21,ror#34
921	add	x20,x20,x17			// h+=Ch(e,f,g)
922	and	x19,x19,x28			// (b^c)&=(a^b)
923	eor	x8,x8,x1,ror#61
924	eor	x9,x9,x4,lsr#7	// sigma0(X[i+1])
925	add	x20,x20,x16			// h+=Sigma1(e)
926	eor	x19,x19,x22			// Maj(a,b,c)
927	eor	x17,x10,x21,ror#39	// Sigma0(a)
928	eor	x8,x8,x1,lsr#6	// sigma1(X[i+14])
929	add	x3,x3,x12
930	add	x24,x24,x20			// d+=h
931	add	x20,x20,x19			// h+=Maj(a,b,c)
932	ldr	x19,[x30],#8		// *K++, x28 in next round
933	add	x3,x3,x9
934	add	x20,x20,x17			// h+=Sigma0(a)
935	add	x3,x3,x8
936	cbnz	x19,.Loop_16_xx
937
938	ldp	x0,x2,[x29,#96]
939	ldr	x1,[x29,#112]
940	sub	x30,x30,#648		// rewind
941
942	ldp	x3,x4,[x0]
943	ldp	x5,x6,[x0,#2*8]
944	add	x1,x1,#14*8			// advance input pointer
945	ldp	x7,x8,[x0,#4*8]
946	add	x20,x20,x3
947	ldp	x9,x10,[x0,#6*8]
948	add	x21,x21,x4
949	add	x22,x22,x5
950	add	x23,x23,x6
951	stp	x20,x21,[x0]
952	add	x24,x24,x7
953	add	x25,x25,x8
954	stp	x22,x23,[x0,#2*8]
955	add	x26,x26,x9
956	add	x27,x27,x10
957	cmp	x1,x2
958	stp	x24,x25,[x0,#4*8]
959	stp	x26,x27,[x0,#6*8]
960	b.ne	.Loop
961
962	ldp	x19,x20,[x29,#16]
963	add	sp,sp,#4*8
964	ldp	x21,x22,[x29,#32]
965	ldp	x23,x24,[x29,#48]
966	ldp	x25,x26,[x29,#64]
967	ldp	x27,x28,[x29,#80]
968	ldp	x29,x30,[sp],#128
969	ret
970.size	sha512_block_data_order,.-sha512_block_data_order
971
972.align	6
973.type	.LK512,%object
974.LK512:
975.quad	0x428a2f98d728ae22,0x7137449123ef65cd
976.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
977.quad	0x3956c25bf348b538,0x59f111f1b605d019
978.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
979.quad	0xd807aa98a3030242,0x12835b0145706fbe
980.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
981.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
982.quad	0x9bdc06a725c71235,0xc19bf174cf692694
983.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
984.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
985.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
986.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
987.quad	0x983e5152ee66dfab,0xa831c66d2db43210
988.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
989.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
990.quad	0x06ca6351e003826f,0x142929670a0e6e70
991.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
992.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
993.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
994.quad	0x81c2c92e47edaee6,0x92722c851482353b
995.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
996.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
997.quad	0xd192e819d6ef5218,0xd69906245565a910
998.quad	0xf40e35855771202a,0x106aa07032bbd1b8
999.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1000.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1001.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1002.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1003.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1004.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1005.quad	0x90befffa23631e28,0xa4506cebde82bde9
1006.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1007.quad	0xca273eceea26619c,0xd186b8c721c0c207
1008.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1009.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1010.quad	0x113f9804bef90dae,0x1b710b35131c471b
1011.quad	0x28db77f523047d84,0x32caab7b40c72493
1012.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1013.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1014.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1015.quad	0	// terminator
1016.size	.LK512,.-.LK512
1017.align	3
1018.LOPENSSL_armcap_P:
1019.quad	OPENSSL_armcap_P-.
1020.byte	83,72,65,53,49,50,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
1021.align	2
1022.align	2
1023.comm	OPENSSL_armcap_P,4,4
1024