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