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