1#include "s390x_arch.h"
2
3.text
4.align	64
5.type	K512,@object
6K512:
7	.quad	0x428a2f98d728ae22,0x7137449123ef65cd
8	.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
9	.quad	0x3956c25bf348b538,0x59f111f1b605d019
10	.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
11	.quad	0xd807aa98a3030242,0x12835b0145706fbe
12	.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
13	.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
14	.quad	0x9bdc06a725c71235,0xc19bf174cf692694
15	.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
16	.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
17	.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
18	.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
19	.quad	0x983e5152ee66dfab,0xa831c66d2db43210
20	.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
21	.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
22	.quad	0x06ca6351e003826f,0x142929670a0e6e70
23	.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
24	.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
25	.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
26	.quad	0x81c2c92e47edaee6,0x92722c851482353b
27	.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
28	.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
29	.quad	0xd192e819d6ef5218,0xd69906245565a910
30	.quad	0xf40e35855771202a,0x106aa07032bbd1b8
31	.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
32	.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
33	.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
34	.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
35	.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
36	.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
37	.quad	0x90befffa23631e28,0xa4506cebde82bde9
38	.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
39	.quad	0xca273eceea26619c,0xd186b8c721c0c207
40	.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
41	.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
42	.quad	0x113f9804bef90dae,0x1b710b35131c471b
43	.quad	0x28db77f523047d84,0x32caab7b40c72493
44	.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
45	.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
46	.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
47.size	K512,.-K512
48.globl	sha512_block_data_order
49.type	sha512_block_data_order,@function
50sha512_block_data_order:
51	sllg	%r4,%r4,7
52	larl	%r1,OPENSSL_s390xcap_P
53	lg	%r0,S390X_KIMD(%r1)	# check kimd capabilities
54	tmhh	%r0,4096
55	jz	.Lsoftware
56	lghi	%r0,3
57	lgr	%r1,%r2
58	lgr	%r2,%r3
59	lgr	%r3,%r4
60	.long	0xb93e0002	# kimd %r0,%r2
61	brc	1,.-4		# pay attention to "partial completion"
62	br	%r14
63.align	16
64.Lsoftware:
65	lghi	%r1,-288
66	la	%r4,0(%r4,%r3)
67	stmg	%r2,%r15,16(%r15)
68	lgr	%r0,%r15
69	la	%r15,0(%r1,%r15)
70	stg	%r0,0(%r15)
71
72	larl	%r13,K512
73	lg	%r5,0(%r2)
74	lg	%r6,8(%r2)
75	lg	%r7,16(%r2)
76	lg	%r8,24(%r2)
77	lg	%r9,32(%r2)
78	lg	%r10,40(%r2)
79	lg	%r11,48(%r2)
80	lg	%r12,56(%r2)
81
82.Lloop:
83	lghi	%r4,0
84	lg	%r14,0(%r3)	### 0
85	rllg	%r0,%r9,23
86	rllg	%r1,%r9,46
87	 lgr	%r2,%r10
88	xgr	%r0,%r1
89	rllg	%r1,%r1,4
90	 xgr	%r2,%r11
91	stg	%r14,160(%r15)
92	xgr	%r0,%r1			# Sigma1(e)
93	algr	%r14,%r12			# T1+=h
94	 ngr	%r2,%r9
95	 lgr	%r1,%r5
96	algr	%r14,%r0			# T1+=Sigma1(e)
97	rllg	%r12,%r5,25
98	 xgr	%r2,%r11			# Ch(e,f,g)
99	alg	%r14,0(%r4,%r13)	# T1+=K[i]
100	rllg	%r0,%r5,30
101	algr	%r14,%r2			# T1+=Ch(e,f,g)
102	 ogr	%r1,%r6
103	xgr	%r12,%r0
104	 lgr	%r2,%r5
105	 ngr	%r1,%r7
106	rllg	%r0,%r0,6
107	xgr	%r12,%r0			# h=Sigma0(a)
108	 ngr	%r2,%r6
109	algr	%r12,%r14			# h+=T1
110	 ogr	%r2,%r1			# Maj(a,b,c)
111	algr	%r8,%r14			# d+=T1
112	algr	%r12,%r2			# h+=Maj(a,b,c)
113	lg	%r14,8(%r3)	### 1
114	rllg	%r0,%r8,23
115	rllg	%r1,%r8,46
116	 lgr	%r2,%r9
117	xgr	%r0,%r1
118	rllg	%r1,%r1,4
119	 xgr	%r2,%r10
120	stg	%r14,168(%r15)
121	xgr	%r0,%r1			# Sigma1(e)
122	algr	%r14,%r11			# T1+=h
123	 ngr	%r2,%r8
124	 lgr	%r1,%r12
125	algr	%r14,%r0			# T1+=Sigma1(e)
126	rllg	%r11,%r12,25
127	 xgr	%r2,%r10			# Ch(e,f,g)
128	alg	%r14,8(%r4,%r13)	# T1+=K[i]
129	rllg	%r0,%r12,30
130	algr	%r14,%r2			# T1+=Ch(e,f,g)
131	 ogr	%r1,%r5
132	xgr	%r11,%r0
133	 lgr	%r2,%r12
134	 ngr	%r1,%r6
135	rllg	%r0,%r0,6
136	xgr	%r11,%r0			# h=Sigma0(a)
137	 ngr	%r2,%r5
138	algr	%r11,%r14			# h+=T1
139	 ogr	%r2,%r1			# Maj(a,b,c)
140	algr	%r7,%r14			# d+=T1
141	algr	%r11,%r2			# h+=Maj(a,b,c)
142	lg	%r14,16(%r3)	### 2
143	rllg	%r0,%r7,23
144	rllg	%r1,%r7,46
145	 lgr	%r2,%r8
146	xgr	%r0,%r1
147	rllg	%r1,%r1,4
148	 xgr	%r2,%r9
149	stg	%r14,176(%r15)
150	xgr	%r0,%r1			# Sigma1(e)
151	algr	%r14,%r10			# T1+=h
152	 ngr	%r2,%r7
153	 lgr	%r1,%r11
154	algr	%r14,%r0			# T1+=Sigma1(e)
155	rllg	%r10,%r11,25
156	 xgr	%r2,%r9			# Ch(e,f,g)
157	alg	%r14,16(%r4,%r13)	# T1+=K[i]
158	rllg	%r0,%r11,30
159	algr	%r14,%r2			# T1+=Ch(e,f,g)
160	 ogr	%r1,%r12
161	xgr	%r10,%r0
162	 lgr	%r2,%r11
163	 ngr	%r1,%r5
164	rllg	%r0,%r0,6
165	xgr	%r10,%r0			# h=Sigma0(a)
166	 ngr	%r2,%r12
167	algr	%r10,%r14			# h+=T1
168	 ogr	%r2,%r1			# Maj(a,b,c)
169	algr	%r6,%r14			# d+=T1
170	algr	%r10,%r2			# h+=Maj(a,b,c)
171	lg	%r14,24(%r3)	### 3
172	rllg	%r0,%r6,23
173	rllg	%r1,%r6,46
174	 lgr	%r2,%r7
175	xgr	%r0,%r1
176	rllg	%r1,%r1,4
177	 xgr	%r2,%r8
178	stg	%r14,184(%r15)
179	xgr	%r0,%r1			# Sigma1(e)
180	algr	%r14,%r9			# T1+=h
181	 ngr	%r2,%r6
182	 lgr	%r1,%r10
183	algr	%r14,%r0			# T1+=Sigma1(e)
184	rllg	%r9,%r10,25
185	 xgr	%r2,%r8			# Ch(e,f,g)
186	alg	%r14,24(%r4,%r13)	# T1+=K[i]
187	rllg	%r0,%r10,30
188	algr	%r14,%r2			# T1+=Ch(e,f,g)
189	 ogr	%r1,%r11
190	xgr	%r9,%r0
191	 lgr	%r2,%r10
192	 ngr	%r1,%r12
193	rllg	%r0,%r0,6
194	xgr	%r9,%r0			# h=Sigma0(a)
195	 ngr	%r2,%r11
196	algr	%r9,%r14			# h+=T1
197	 ogr	%r2,%r1			# Maj(a,b,c)
198	algr	%r5,%r14			# d+=T1
199	algr	%r9,%r2			# h+=Maj(a,b,c)
200	lg	%r14,32(%r3)	### 4
201	rllg	%r0,%r5,23
202	rllg	%r1,%r5,46
203	 lgr	%r2,%r6
204	xgr	%r0,%r1
205	rllg	%r1,%r1,4
206	 xgr	%r2,%r7
207	stg	%r14,192(%r15)
208	xgr	%r0,%r1			# Sigma1(e)
209	algr	%r14,%r8			# T1+=h
210	 ngr	%r2,%r5
211	 lgr	%r1,%r9
212	algr	%r14,%r0			# T1+=Sigma1(e)
213	rllg	%r8,%r9,25
214	 xgr	%r2,%r7			# Ch(e,f,g)
215	alg	%r14,32(%r4,%r13)	# T1+=K[i]
216	rllg	%r0,%r9,30
217	algr	%r14,%r2			# T1+=Ch(e,f,g)
218	 ogr	%r1,%r10
219	xgr	%r8,%r0
220	 lgr	%r2,%r9
221	 ngr	%r1,%r11
222	rllg	%r0,%r0,6
223	xgr	%r8,%r0			# h=Sigma0(a)
224	 ngr	%r2,%r10
225	algr	%r8,%r14			# h+=T1
226	 ogr	%r2,%r1			# Maj(a,b,c)
227	algr	%r12,%r14			# d+=T1
228	algr	%r8,%r2			# h+=Maj(a,b,c)
229	lg	%r14,40(%r3)	### 5
230	rllg	%r0,%r12,23
231	rllg	%r1,%r12,46
232	 lgr	%r2,%r5
233	xgr	%r0,%r1
234	rllg	%r1,%r1,4
235	 xgr	%r2,%r6
236	stg	%r14,200(%r15)
237	xgr	%r0,%r1			# Sigma1(e)
238	algr	%r14,%r7			# T1+=h
239	 ngr	%r2,%r12
240	 lgr	%r1,%r8
241	algr	%r14,%r0			# T1+=Sigma1(e)
242	rllg	%r7,%r8,25
243	 xgr	%r2,%r6			# Ch(e,f,g)
244	alg	%r14,40(%r4,%r13)	# T1+=K[i]
245	rllg	%r0,%r8,30
246	algr	%r14,%r2			# T1+=Ch(e,f,g)
247	 ogr	%r1,%r9
248	xgr	%r7,%r0
249	 lgr	%r2,%r8
250	 ngr	%r1,%r10
251	rllg	%r0,%r0,6
252	xgr	%r7,%r0			# h=Sigma0(a)
253	 ngr	%r2,%r9
254	algr	%r7,%r14			# h+=T1
255	 ogr	%r2,%r1			# Maj(a,b,c)
256	algr	%r11,%r14			# d+=T1
257	algr	%r7,%r2			# h+=Maj(a,b,c)
258	lg	%r14,48(%r3)	### 6
259	rllg	%r0,%r11,23
260	rllg	%r1,%r11,46
261	 lgr	%r2,%r12
262	xgr	%r0,%r1
263	rllg	%r1,%r1,4
264	 xgr	%r2,%r5
265	stg	%r14,208(%r15)
266	xgr	%r0,%r1			# Sigma1(e)
267	algr	%r14,%r6			# T1+=h
268	 ngr	%r2,%r11
269	 lgr	%r1,%r7
270	algr	%r14,%r0			# T1+=Sigma1(e)
271	rllg	%r6,%r7,25
272	 xgr	%r2,%r5			# Ch(e,f,g)
273	alg	%r14,48(%r4,%r13)	# T1+=K[i]
274	rllg	%r0,%r7,30
275	algr	%r14,%r2			# T1+=Ch(e,f,g)
276	 ogr	%r1,%r8
277	xgr	%r6,%r0
278	 lgr	%r2,%r7
279	 ngr	%r1,%r9
280	rllg	%r0,%r0,6
281	xgr	%r6,%r0			# h=Sigma0(a)
282	 ngr	%r2,%r8
283	algr	%r6,%r14			# h+=T1
284	 ogr	%r2,%r1			# Maj(a,b,c)
285	algr	%r10,%r14			# d+=T1
286	algr	%r6,%r2			# h+=Maj(a,b,c)
287	lg	%r14,56(%r3)	### 7
288	rllg	%r0,%r10,23
289	rllg	%r1,%r10,46
290	 lgr	%r2,%r11
291	xgr	%r0,%r1
292	rllg	%r1,%r1,4
293	 xgr	%r2,%r12
294	stg	%r14,216(%r15)
295	xgr	%r0,%r1			# Sigma1(e)
296	algr	%r14,%r5			# T1+=h
297	 ngr	%r2,%r10
298	 lgr	%r1,%r6
299	algr	%r14,%r0			# T1+=Sigma1(e)
300	rllg	%r5,%r6,25
301	 xgr	%r2,%r12			# Ch(e,f,g)
302	alg	%r14,56(%r4,%r13)	# T1+=K[i]
303	rllg	%r0,%r6,30
304	algr	%r14,%r2			# T1+=Ch(e,f,g)
305	 ogr	%r1,%r7
306	xgr	%r5,%r0
307	 lgr	%r2,%r6
308	 ngr	%r1,%r8
309	rllg	%r0,%r0,6
310	xgr	%r5,%r0			# h=Sigma0(a)
311	 ngr	%r2,%r7
312	algr	%r5,%r14			# h+=T1
313	 ogr	%r2,%r1			# Maj(a,b,c)
314	algr	%r9,%r14			# d+=T1
315	algr	%r5,%r2			# h+=Maj(a,b,c)
316	lg	%r14,64(%r3)	### 8
317	rllg	%r0,%r9,23
318	rllg	%r1,%r9,46
319	 lgr	%r2,%r10
320	xgr	%r0,%r1
321	rllg	%r1,%r1,4
322	 xgr	%r2,%r11
323	stg	%r14,224(%r15)
324	xgr	%r0,%r1			# Sigma1(e)
325	algr	%r14,%r12			# T1+=h
326	 ngr	%r2,%r9
327	 lgr	%r1,%r5
328	algr	%r14,%r0			# T1+=Sigma1(e)
329	rllg	%r12,%r5,25
330	 xgr	%r2,%r11			# Ch(e,f,g)
331	alg	%r14,64(%r4,%r13)	# T1+=K[i]
332	rllg	%r0,%r5,30
333	algr	%r14,%r2			# T1+=Ch(e,f,g)
334	 ogr	%r1,%r6
335	xgr	%r12,%r0
336	 lgr	%r2,%r5
337	 ngr	%r1,%r7
338	rllg	%r0,%r0,6
339	xgr	%r12,%r0			# h=Sigma0(a)
340	 ngr	%r2,%r6
341	algr	%r12,%r14			# h+=T1
342	 ogr	%r2,%r1			# Maj(a,b,c)
343	algr	%r8,%r14			# d+=T1
344	algr	%r12,%r2			# h+=Maj(a,b,c)
345	lg	%r14,72(%r3)	### 9
346	rllg	%r0,%r8,23
347	rllg	%r1,%r8,46
348	 lgr	%r2,%r9
349	xgr	%r0,%r1
350	rllg	%r1,%r1,4
351	 xgr	%r2,%r10
352	stg	%r14,232(%r15)
353	xgr	%r0,%r1			# Sigma1(e)
354	algr	%r14,%r11			# T1+=h
355	 ngr	%r2,%r8
356	 lgr	%r1,%r12
357	algr	%r14,%r0			# T1+=Sigma1(e)
358	rllg	%r11,%r12,25
359	 xgr	%r2,%r10			# Ch(e,f,g)
360	alg	%r14,72(%r4,%r13)	# T1+=K[i]
361	rllg	%r0,%r12,30
362	algr	%r14,%r2			# T1+=Ch(e,f,g)
363	 ogr	%r1,%r5
364	xgr	%r11,%r0
365	 lgr	%r2,%r12
366	 ngr	%r1,%r6
367	rllg	%r0,%r0,6
368	xgr	%r11,%r0			# h=Sigma0(a)
369	 ngr	%r2,%r5
370	algr	%r11,%r14			# h+=T1
371	 ogr	%r2,%r1			# Maj(a,b,c)
372	algr	%r7,%r14			# d+=T1
373	algr	%r11,%r2			# h+=Maj(a,b,c)
374	lg	%r14,80(%r3)	### 10
375	rllg	%r0,%r7,23
376	rllg	%r1,%r7,46
377	 lgr	%r2,%r8
378	xgr	%r0,%r1
379	rllg	%r1,%r1,4
380	 xgr	%r2,%r9
381	stg	%r14,240(%r15)
382	xgr	%r0,%r1			# Sigma1(e)
383	algr	%r14,%r10			# T1+=h
384	 ngr	%r2,%r7
385	 lgr	%r1,%r11
386	algr	%r14,%r0			# T1+=Sigma1(e)
387	rllg	%r10,%r11,25
388	 xgr	%r2,%r9			# Ch(e,f,g)
389	alg	%r14,80(%r4,%r13)	# T1+=K[i]
390	rllg	%r0,%r11,30
391	algr	%r14,%r2			# T1+=Ch(e,f,g)
392	 ogr	%r1,%r12
393	xgr	%r10,%r0
394	 lgr	%r2,%r11
395	 ngr	%r1,%r5
396	rllg	%r0,%r0,6
397	xgr	%r10,%r0			# h=Sigma0(a)
398	 ngr	%r2,%r12
399	algr	%r10,%r14			# h+=T1
400	 ogr	%r2,%r1			# Maj(a,b,c)
401	algr	%r6,%r14			# d+=T1
402	algr	%r10,%r2			# h+=Maj(a,b,c)
403	lg	%r14,88(%r3)	### 11
404	rllg	%r0,%r6,23
405	rllg	%r1,%r6,46
406	 lgr	%r2,%r7
407	xgr	%r0,%r1
408	rllg	%r1,%r1,4
409	 xgr	%r2,%r8
410	stg	%r14,248(%r15)
411	xgr	%r0,%r1			# Sigma1(e)
412	algr	%r14,%r9			# T1+=h
413	 ngr	%r2,%r6
414	 lgr	%r1,%r10
415	algr	%r14,%r0			# T1+=Sigma1(e)
416	rllg	%r9,%r10,25
417	 xgr	%r2,%r8			# Ch(e,f,g)
418	alg	%r14,88(%r4,%r13)	# T1+=K[i]
419	rllg	%r0,%r10,30
420	algr	%r14,%r2			# T1+=Ch(e,f,g)
421	 ogr	%r1,%r11
422	xgr	%r9,%r0
423	 lgr	%r2,%r10
424	 ngr	%r1,%r12
425	rllg	%r0,%r0,6
426	xgr	%r9,%r0			# h=Sigma0(a)
427	 ngr	%r2,%r11
428	algr	%r9,%r14			# h+=T1
429	 ogr	%r2,%r1			# Maj(a,b,c)
430	algr	%r5,%r14			# d+=T1
431	algr	%r9,%r2			# h+=Maj(a,b,c)
432	lg	%r14,96(%r3)	### 12
433	rllg	%r0,%r5,23
434	rllg	%r1,%r5,46
435	 lgr	%r2,%r6
436	xgr	%r0,%r1
437	rllg	%r1,%r1,4
438	 xgr	%r2,%r7
439	stg	%r14,256(%r15)
440	xgr	%r0,%r1			# Sigma1(e)
441	algr	%r14,%r8			# T1+=h
442	 ngr	%r2,%r5
443	 lgr	%r1,%r9
444	algr	%r14,%r0			# T1+=Sigma1(e)
445	rllg	%r8,%r9,25
446	 xgr	%r2,%r7			# Ch(e,f,g)
447	alg	%r14,96(%r4,%r13)	# T1+=K[i]
448	rllg	%r0,%r9,30
449	algr	%r14,%r2			# T1+=Ch(e,f,g)
450	 ogr	%r1,%r10
451	xgr	%r8,%r0
452	 lgr	%r2,%r9
453	 ngr	%r1,%r11
454	rllg	%r0,%r0,6
455	xgr	%r8,%r0			# h=Sigma0(a)
456	 ngr	%r2,%r10
457	algr	%r8,%r14			# h+=T1
458	 ogr	%r2,%r1			# Maj(a,b,c)
459	algr	%r12,%r14			# d+=T1
460	algr	%r8,%r2			# h+=Maj(a,b,c)
461	lg	%r14,104(%r3)	### 13
462	rllg	%r0,%r12,23
463	rllg	%r1,%r12,46
464	 lgr	%r2,%r5
465	xgr	%r0,%r1
466	rllg	%r1,%r1,4
467	 xgr	%r2,%r6
468	stg	%r14,264(%r15)
469	xgr	%r0,%r1			# Sigma1(e)
470	algr	%r14,%r7			# T1+=h
471	 ngr	%r2,%r12
472	 lgr	%r1,%r8
473	algr	%r14,%r0			# T1+=Sigma1(e)
474	rllg	%r7,%r8,25
475	 xgr	%r2,%r6			# Ch(e,f,g)
476	alg	%r14,104(%r4,%r13)	# T1+=K[i]
477	rllg	%r0,%r8,30
478	algr	%r14,%r2			# T1+=Ch(e,f,g)
479	 ogr	%r1,%r9
480	xgr	%r7,%r0
481	 lgr	%r2,%r8
482	 ngr	%r1,%r10
483	rllg	%r0,%r0,6
484	xgr	%r7,%r0			# h=Sigma0(a)
485	 ngr	%r2,%r9
486	algr	%r7,%r14			# h+=T1
487	 ogr	%r2,%r1			# Maj(a,b,c)
488	algr	%r11,%r14			# d+=T1
489	algr	%r7,%r2			# h+=Maj(a,b,c)
490	lg	%r14,112(%r3)	### 14
491	rllg	%r0,%r11,23
492	rllg	%r1,%r11,46
493	 lgr	%r2,%r12
494	xgr	%r0,%r1
495	rllg	%r1,%r1,4
496	 xgr	%r2,%r5
497	stg	%r14,272(%r15)
498	xgr	%r0,%r1			# Sigma1(e)
499	algr	%r14,%r6			# T1+=h
500	 ngr	%r2,%r11
501	 lgr	%r1,%r7
502	algr	%r14,%r0			# T1+=Sigma1(e)
503	rllg	%r6,%r7,25
504	 xgr	%r2,%r5			# Ch(e,f,g)
505	alg	%r14,112(%r4,%r13)	# T1+=K[i]
506	rllg	%r0,%r7,30
507	algr	%r14,%r2			# T1+=Ch(e,f,g)
508	 ogr	%r1,%r8
509	xgr	%r6,%r0
510	 lgr	%r2,%r7
511	 ngr	%r1,%r9
512	rllg	%r0,%r0,6
513	xgr	%r6,%r0			# h=Sigma0(a)
514	 ngr	%r2,%r8
515	algr	%r6,%r14			# h+=T1
516	 ogr	%r2,%r1			# Maj(a,b,c)
517	algr	%r10,%r14			# d+=T1
518	algr	%r6,%r2			# h+=Maj(a,b,c)
519	lg	%r14,120(%r3)	### 15
520	rllg	%r0,%r10,23
521	rllg	%r1,%r10,46
522	 lgr	%r2,%r11
523	xgr	%r0,%r1
524	rllg	%r1,%r1,4
525	 xgr	%r2,%r12
526	stg	%r14,280(%r15)
527	xgr	%r0,%r1			# Sigma1(e)
528	algr	%r14,%r5			# T1+=h
529	 ngr	%r2,%r10
530	 lgr	%r1,%r6
531	algr	%r14,%r0			# T1+=Sigma1(e)
532	rllg	%r5,%r6,25
533	 xgr	%r2,%r12			# Ch(e,f,g)
534	alg	%r14,120(%r4,%r13)	# T1+=K[i]
535	rllg	%r0,%r6,30
536	algr	%r14,%r2			# T1+=Ch(e,f,g)
537	 ogr	%r1,%r7
538	xgr	%r5,%r0
539	 lgr	%r2,%r6
540	 ngr	%r1,%r8
541	rllg	%r0,%r0,6
542	xgr	%r5,%r0			# h=Sigma0(a)
543	 ngr	%r2,%r7
544	algr	%r5,%r14			# h+=T1
545	 ogr	%r2,%r1			# Maj(a,b,c)
546	algr	%r9,%r14			# d+=T1
547	algr	%r5,%r2			# h+=Maj(a,b,c)
548.Lrounds_16_xx:
549	lg	%r14,168(%r15)	### 16
550	lg	%r1,272(%r15)
551	rllg	%r0,%r14,56
552	srlg	%r14,%r14,7
553	rllg	%r2,%r0,7
554	xgr	%r14,%r0
555	rllg	%r0,%r1,3
556	xgr	%r14,%r2					# sigma0(X[i+1])
557	srlg	%r1,%r1,6
558	alg	%r14,160(%r15)	# +=X[i]
559	xgr	%r1,%r0
560	rllg	%r0,%r0,42
561	alg	%r14,232(%r15)	# +=X[i+9]
562	xgr	%r1,%r0				# sigma1(X[i+14])
563	algr	%r14,%r1				# +=sigma1(X[i+14])
564	rllg	%r0,%r9,23
565	rllg	%r1,%r9,46
566	 lgr	%r2,%r10
567	xgr	%r0,%r1
568	rllg	%r1,%r1,4
569	 xgr	%r2,%r11
570	stg	%r14,160(%r15)
571	xgr	%r0,%r1			# Sigma1(e)
572	algr	%r14,%r12			# T1+=h
573	 ngr	%r2,%r9
574	 lgr	%r1,%r5
575	algr	%r14,%r0			# T1+=Sigma1(e)
576	rllg	%r12,%r5,25
577	 xgr	%r2,%r11			# Ch(e,f,g)
578	alg	%r14,128(%r4,%r13)	# T1+=K[i]
579	rllg	%r0,%r5,30
580	algr	%r14,%r2			# T1+=Ch(e,f,g)
581	 ogr	%r1,%r6
582	xgr	%r12,%r0
583	 lgr	%r2,%r5
584	 ngr	%r1,%r7
585	rllg	%r0,%r0,6
586	xgr	%r12,%r0			# h=Sigma0(a)
587	 ngr	%r2,%r6
588	algr	%r12,%r14			# h+=T1
589	 ogr	%r2,%r1			# Maj(a,b,c)
590	algr	%r8,%r14			# d+=T1
591	algr	%r12,%r2			# h+=Maj(a,b,c)
592	lg	%r14,176(%r15)	### 17
593	lg	%r1,280(%r15)
594	rllg	%r0,%r14,56
595	srlg	%r14,%r14,7
596	rllg	%r2,%r0,7
597	xgr	%r14,%r0
598	rllg	%r0,%r1,3
599	xgr	%r14,%r2					# sigma0(X[i+1])
600	srlg	%r1,%r1,6
601	alg	%r14,168(%r15)	# +=X[i]
602	xgr	%r1,%r0
603	rllg	%r0,%r0,42
604	alg	%r14,240(%r15)	# +=X[i+9]
605	xgr	%r1,%r0				# sigma1(X[i+14])
606	algr	%r14,%r1				# +=sigma1(X[i+14])
607	rllg	%r0,%r8,23
608	rllg	%r1,%r8,46
609	 lgr	%r2,%r9
610	xgr	%r0,%r1
611	rllg	%r1,%r1,4
612	 xgr	%r2,%r10
613	stg	%r14,168(%r15)
614	xgr	%r0,%r1			# Sigma1(e)
615	algr	%r14,%r11			# T1+=h
616	 ngr	%r2,%r8
617	 lgr	%r1,%r12
618	algr	%r14,%r0			# T1+=Sigma1(e)
619	rllg	%r11,%r12,25
620	 xgr	%r2,%r10			# Ch(e,f,g)
621	alg	%r14,136(%r4,%r13)	# T1+=K[i]
622	rllg	%r0,%r12,30
623	algr	%r14,%r2			# T1+=Ch(e,f,g)
624	 ogr	%r1,%r5
625	xgr	%r11,%r0
626	 lgr	%r2,%r12
627	 ngr	%r1,%r6
628	rllg	%r0,%r0,6
629	xgr	%r11,%r0			# h=Sigma0(a)
630	 ngr	%r2,%r5
631	algr	%r11,%r14			# h+=T1
632	 ogr	%r2,%r1			# Maj(a,b,c)
633	algr	%r7,%r14			# d+=T1
634	algr	%r11,%r2			# h+=Maj(a,b,c)
635	lg	%r14,184(%r15)	### 18
636	lg	%r1,160(%r15)
637	rllg	%r0,%r14,56
638	srlg	%r14,%r14,7
639	rllg	%r2,%r0,7
640	xgr	%r14,%r0
641	rllg	%r0,%r1,3
642	xgr	%r14,%r2					# sigma0(X[i+1])
643	srlg	%r1,%r1,6
644	alg	%r14,176(%r15)	# +=X[i]
645	xgr	%r1,%r0
646	rllg	%r0,%r0,42
647	alg	%r14,248(%r15)	# +=X[i+9]
648	xgr	%r1,%r0				# sigma1(X[i+14])
649	algr	%r14,%r1				# +=sigma1(X[i+14])
650	rllg	%r0,%r7,23
651	rllg	%r1,%r7,46
652	 lgr	%r2,%r8
653	xgr	%r0,%r1
654	rllg	%r1,%r1,4
655	 xgr	%r2,%r9
656	stg	%r14,176(%r15)
657	xgr	%r0,%r1			# Sigma1(e)
658	algr	%r14,%r10			# T1+=h
659	 ngr	%r2,%r7
660	 lgr	%r1,%r11
661	algr	%r14,%r0			# T1+=Sigma1(e)
662	rllg	%r10,%r11,25
663	 xgr	%r2,%r9			# Ch(e,f,g)
664	alg	%r14,144(%r4,%r13)	# T1+=K[i]
665	rllg	%r0,%r11,30
666	algr	%r14,%r2			# T1+=Ch(e,f,g)
667	 ogr	%r1,%r12
668	xgr	%r10,%r0
669	 lgr	%r2,%r11
670	 ngr	%r1,%r5
671	rllg	%r0,%r0,6
672	xgr	%r10,%r0			# h=Sigma0(a)
673	 ngr	%r2,%r12
674	algr	%r10,%r14			# h+=T1
675	 ogr	%r2,%r1			# Maj(a,b,c)
676	algr	%r6,%r14			# d+=T1
677	algr	%r10,%r2			# h+=Maj(a,b,c)
678	lg	%r14,192(%r15)	### 19
679	lg	%r1,168(%r15)
680	rllg	%r0,%r14,56
681	srlg	%r14,%r14,7
682	rllg	%r2,%r0,7
683	xgr	%r14,%r0
684	rllg	%r0,%r1,3
685	xgr	%r14,%r2					# sigma0(X[i+1])
686	srlg	%r1,%r1,6
687	alg	%r14,184(%r15)	# +=X[i]
688	xgr	%r1,%r0
689	rllg	%r0,%r0,42
690	alg	%r14,256(%r15)	# +=X[i+9]
691	xgr	%r1,%r0				# sigma1(X[i+14])
692	algr	%r14,%r1				# +=sigma1(X[i+14])
693	rllg	%r0,%r6,23
694	rllg	%r1,%r6,46
695	 lgr	%r2,%r7
696	xgr	%r0,%r1
697	rllg	%r1,%r1,4
698	 xgr	%r2,%r8
699	stg	%r14,184(%r15)
700	xgr	%r0,%r1			# Sigma1(e)
701	algr	%r14,%r9			# T1+=h
702	 ngr	%r2,%r6
703	 lgr	%r1,%r10
704	algr	%r14,%r0			# T1+=Sigma1(e)
705	rllg	%r9,%r10,25
706	 xgr	%r2,%r8			# Ch(e,f,g)
707	alg	%r14,152(%r4,%r13)	# T1+=K[i]
708	rllg	%r0,%r10,30
709	algr	%r14,%r2			# T1+=Ch(e,f,g)
710	 ogr	%r1,%r11
711	xgr	%r9,%r0
712	 lgr	%r2,%r10
713	 ngr	%r1,%r12
714	rllg	%r0,%r0,6
715	xgr	%r9,%r0			# h=Sigma0(a)
716	 ngr	%r2,%r11
717	algr	%r9,%r14			# h+=T1
718	 ogr	%r2,%r1			# Maj(a,b,c)
719	algr	%r5,%r14			# d+=T1
720	algr	%r9,%r2			# h+=Maj(a,b,c)
721	lg	%r14,200(%r15)	### 20
722	lg	%r1,176(%r15)
723	rllg	%r0,%r14,56
724	srlg	%r14,%r14,7
725	rllg	%r2,%r0,7
726	xgr	%r14,%r0
727	rllg	%r0,%r1,3
728	xgr	%r14,%r2					# sigma0(X[i+1])
729	srlg	%r1,%r1,6
730	alg	%r14,192(%r15)	# +=X[i]
731	xgr	%r1,%r0
732	rllg	%r0,%r0,42
733	alg	%r14,264(%r15)	# +=X[i+9]
734	xgr	%r1,%r0				# sigma1(X[i+14])
735	algr	%r14,%r1				# +=sigma1(X[i+14])
736	rllg	%r0,%r5,23
737	rllg	%r1,%r5,46
738	 lgr	%r2,%r6
739	xgr	%r0,%r1
740	rllg	%r1,%r1,4
741	 xgr	%r2,%r7
742	stg	%r14,192(%r15)
743	xgr	%r0,%r1			# Sigma1(e)
744	algr	%r14,%r8			# T1+=h
745	 ngr	%r2,%r5
746	 lgr	%r1,%r9
747	algr	%r14,%r0			# T1+=Sigma1(e)
748	rllg	%r8,%r9,25
749	 xgr	%r2,%r7			# Ch(e,f,g)
750	alg	%r14,160(%r4,%r13)	# T1+=K[i]
751	rllg	%r0,%r9,30
752	algr	%r14,%r2			# T1+=Ch(e,f,g)
753	 ogr	%r1,%r10
754	xgr	%r8,%r0
755	 lgr	%r2,%r9
756	 ngr	%r1,%r11
757	rllg	%r0,%r0,6
758	xgr	%r8,%r0			# h=Sigma0(a)
759	 ngr	%r2,%r10
760	algr	%r8,%r14			# h+=T1
761	 ogr	%r2,%r1			# Maj(a,b,c)
762	algr	%r12,%r14			# d+=T1
763	algr	%r8,%r2			# h+=Maj(a,b,c)
764	lg	%r14,208(%r15)	### 21
765	lg	%r1,184(%r15)
766	rllg	%r0,%r14,56
767	srlg	%r14,%r14,7
768	rllg	%r2,%r0,7
769	xgr	%r14,%r0
770	rllg	%r0,%r1,3
771	xgr	%r14,%r2					# sigma0(X[i+1])
772	srlg	%r1,%r1,6
773	alg	%r14,200(%r15)	# +=X[i]
774	xgr	%r1,%r0
775	rllg	%r0,%r0,42
776	alg	%r14,272(%r15)	# +=X[i+9]
777	xgr	%r1,%r0				# sigma1(X[i+14])
778	algr	%r14,%r1				# +=sigma1(X[i+14])
779	rllg	%r0,%r12,23
780	rllg	%r1,%r12,46
781	 lgr	%r2,%r5
782	xgr	%r0,%r1
783	rllg	%r1,%r1,4
784	 xgr	%r2,%r6
785	stg	%r14,200(%r15)
786	xgr	%r0,%r1			# Sigma1(e)
787	algr	%r14,%r7			# T1+=h
788	 ngr	%r2,%r12
789	 lgr	%r1,%r8
790	algr	%r14,%r0			# T1+=Sigma1(e)
791	rllg	%r7,%r8,25
792	 xgr	%r2,%r6			# Ch(e,f,g)
793	alg	%r14,168(%r4,%r13)	# T1+=K[i]
794	rllg	%r0,%r8,30
795	algr	%r14,%r2			# T1+=Ch(e,f,g)
796	 ogr	%r1,%r9
797	xgr	%r7,%r0
798	 lgr	%r2,%r8
799	 ngr	%r1,%r10
800	rllg	%r0,%r0,6
801	xgr	%r7,%r0			# h=Sigma0(a)
802	 ngr	%r2,%r9
803	algr	%r7,%r14			# h+=T1
804	 ogr	%r2,%r1			# Maj(a,b,c)
805	algr	%r11,%r14			# d+=T1
806	algr	%r7,%r2			# h+=Maj(a,b,c)
807	lg	%r14,216(%r15)	### 22
808	lg	%r1,192(%r15)
809	rllg	%r0,%r14,56
810	srlg	%r14,%r14,7
811	rllg	%r2,%r0,7
812	xgr	%r14,%r0
813	rllg	%r0,%r1,3
814	xgr	%r14,%r2					# sigma0(X[i+1])
815	srlg	%r1,%r1,6
816	alg	%r14,208(%r15)	# +=X[i]
817	xgr	%r1,%r0
818	rllg	%r0,%r0,42
819	alg	%r14,280(%r15)	# +=X[i+9]
820	xgr	%r1,%r0				# sigma1(X[i+14])
821	algr	%r14,%r1				# +=sigma1(X[i+14])
822	rllg	%r0,%r11,23
823	rllg	%r1,%r11,46
824	 lgr	%r2,%r12
825	xgr	%r0,%r1
826	rllg	%r1,%r1,4
827	 xgr	%r2,%r5
828	stg	%r14,208(%r15)
829	xgr	%r0,%r1			# Sigma1(e)
830	algr	%r14,%r6			# T1+=h
831	 ngr	%r2,%r11
832	 lgr	%r1,%r7
833	algr	%r14,%r0			# T1+=Sigma1(e)
834	rllg	%r6,%r7,25
835	 xgr	%r2,%r5			# Ch(e,f,g)
836	alg	%r14,176(%r4,%r13)	# T1+=K[i]
837	rllg	%r0,%r7,30
838	algr	%r14,%r2			# T1+=Ch(e,f,g)
839	 ogr	%r1,%r8
840	xgr	%r6,%r0
841	 lgr	%r2,%r7
842	 ngr	%r1,%r9
843	rllg	%r0,%r0,6
844	xgr	%r6,%r0			# h=Sigma0(a)
845	 ngr	%r2,%r8
846	algr	%r6,%r14			# h+=T1
847	 ogr	%r2,%r1			# Maj(a,b,c)
848	algr	%r10,%r14			# d+=T1
849	algr	%r6,%r2			# h+=Maj(a,b,c)
850	lg	%r14,224(%r15)	### 23
851	lg	%r1,200(%r15)
852	rllg	%r0,%r14,56
853	srlg	%r14,%r14,7
854	rllg	%r2,%r0,7
855	xgr	%r14,%r0
856	rllg	%r0,%r1,3
857	xgr	%r14,%r2					# sigma0(X[i+1])
858	srlg	%r1,%r1,6
859	alg	%r14,216(%r15)	# +=X[i]
860	xgr	%r1,%r0
861	rllg	%r0,%r0,42
862	alg	%r14,160(%r15)	# +=X[i+9]
863	xgr	%r1,%r0				# sigma1(X[i+14])
864	algr	%r14,%r1				# +=sigma1(X[i+14])
865	rllg	%r0,%r10,23
866	rllg	%r1,%r10,46
867	 lgr	%r2,%r11
868	xgr	%r0,%r1
869	rllg	%r1,%r1,4
870	 xgr	%r2,%r12
871	stg	%r14,216(%r15)
872	xgr	%r0,%r1			# Sigma1(e)
873	algr	%r14,%r5			# T1+=h
874	 ngr	%r2,%r10
875	 lgr	%r1,%r6
876	algr	%r14,%r0			# T1+=Sigma1(e)
877	rllg	%r5,%r6,25
878	 xgr	%r2,%r12			# Ch(e,f,g)
879	alg	%r14,184(%r4,%r13)	# T1+=K[i]
880	rllg	%r0,%r6,30
881	algr	%r14,%r2			# T1+=Ch(e,f,g)
882	 ogr	%r1,%r7
883	xgr	%r5,%r0
884	 lgr	%r2,%r6
885	 ngr	%r1,%r8
886	rllg	%r0,%r0,6
887	xgr	%r5,%r0			# h=Sigma0(a)
888	 ngr	%r2,%r7
889	algr	%r5,%r14			# h+=T1
890	 ogr	%r2,%r1			# Maj(a,b,c)
891	algr	%r9,%r14			# d+=T1
892	algr	%r5,%r2			# h+=Maj(a,b,c)
893	lg	%r14,232(%r15)	### 24
894	lg	%r1,208(%r15)
895	rllg	%r0,%r14,56
896	srlg	%r14,%r14,7
897	rllg	%r2,%r0,7
898	xgr	%r14,%r0
899	rllg	%r0,%r1,3
900	xgr	%r14,%r2					# sigma0(X[i+1])
901	srlg	%r1,%r1,6
902	alg	%r14,224(%r15)	# +=X[i]
903	xgr	%r1,%r0
904	rllg	%r0,%r0,42
905	alg	%r14,168(%r15)	# +=X[i+9]
906	xgr	%r1,%r0				# sigma1(X[i+14])
907	algr	%r14,%r1				# +=sigma1(X[i+14])
908	rllg	%r0,%r9,23
909	rllg	%r1,%r9,46
910	 lgr	%r2,%r10
911	xgr	%r0,%r1
912	rllg	%r1,%r1,4
913	 xgr	%r2,%r11
914	stg	%r14,224(%r15)
915	xgr	%r0,%r1			# Sigma1(e)
916	algr	%r14,%r12			# T1+=h
917	 ngr	%r2,%r9
918	 lgr	%r1,%r5
919	algr	%r14,%r0			# T1+=Sigma1(e)
920	rllg	%r12,%r5,25
921	 xgr	%r2,%r11			# Ch(e,f,g)
922	alg	%r14,192(%r4,%r13)	# T1+=K[i]
923	rllg	%r0,%r5,30
924	algr	%r14,%r2			# T1+=Ch(e,f,g)
925	 ogr	%r1,%r6
926	xgr	%r12,%r0
927	 lgr	%r2,%r5
928	 ngr	%r1,%r7
929	rllg	%r0,%r0,6
930	xgr	%r12,%r0			# h=Sigma0(a)
931	 ngr	%r2,%r6
932	algr	%r12,%r14			# h+=T1
933	 ogr	%r2,%r1			# Maj(a,b,c)
934	algr	%r8,%r14			# d+=T1
935	algr	%r12,%r2			# h+=Maj(a,b,c)
936	lg	%r14,240(%r15)	### 25
937	lg	%r1,216(%r15)
938	rllg	%r0,%r14,56
939	srlg	%r14,%r14,7
940	rllg	%r2,%r0,7
941	xgr	%r14,%r0
942	rllg	%r0,%r1,3
943	xgr	%r14,%r2					# sigma0(X[i+1])
944	srlg	%r1,%r1,6
945	alg	%r14,232(%r15)	# +=X[i]
946	xgr	%r1,%r0
947	rllg	%r0,%r0,42
948	alg	%r14,176(%r15)	# +=X[i+9]
949	xgr	%r1,%r0				# sigma1(X[i+14])
950	algr	%r14,%r1				# +=sigma1(X[i+14])
951	rllg	%r0,%r8,23
952	rllg	%r1,%r8,46
953	 lgr	%r2,%r9
954	xgr	%r0,%r1
955	rllg	%r1,%r1,4
956	 xgr	%r2,%r10
957	stg	%r14,232(%r15)
958	xgr	%r0,%r1			# Sigma1(e)
959	algr	%r14,%r11			# T1+=h
960	 ngr	%r2,%r8
961	 lgr	%r1,%r12
962	algr	%r14,%r0			# T1+=Sigma1(e)
963	rllg	%r11,%r12,25
964	 xgr	%r2,%r10			# Ch(e,f,g)
965	alg	%r14,200(%r4,%r13)	# T1+=K[i]
966	rllg	%r0,%r12,30
967	algr	%r14,%r2			# T1+=Ch(e,f,g)
968	 ogr	%r1,%r5
969	xgr	%r11,%r0
970	 lgr	%r2,%r12
971	 ngr	%r1,%r6
972	rllg	%r0,%r0,6
973	xgr	%r11,%r0			# h=Sigma0(a)
974	 ngr	%r2,%r5
975	algr	%r11,%r14			# h+=T1
976	 ogr	%r2,%r1			# Maj(a,b,c)
977	algr	%r7,%r14			# d+=T1
978	algr	%r11,%r2			# h+=Maj(a,b,c)
979	lg	%r14,248(%r15)	### 26
980	lg	%r1,224(%r15)
981	rllg	%r0,%r14,56
982	srlg	%r14,%r14,7
983	rllg	%r2,%r0,7
984	xgr	%r14,%r0
985	rllg	%r0,%r1,3
986	xgr	%r14,%r2					# sigma0(X[i+1])
987	srlg	%r1,%r1,6
988	alg	%r14,240(%r15)	# +=X[i]
989	xgr	%r1,%r0
990	rllg	%r0,%r0,42
991	alg	%r14,184(%r15)	# +=X[i+9]
992	xgr	%r1,%r0				# sigma1(X[i+14])
993	algr	%r14,%r1				# +=sigma1(X[i+14])
994	rllg	%r0,%r7,23
995	rllg	%r1,%r7,46
996	 lgr	%r2,%r8
997	xgr	%r0,%r1
998	rllg	%r1,%r1,4
999	 xgr	%r2,%r9
1000	stg	%r14,240(%r15)
1001	xgr	%r0,%r1			# Sigma1(e)
1002	algr	%r14,%r10			# T1+=h
1003	 ngr	%r2,%r7
1004	 lgr	%r1,%r11
1005	algr	%r14,%r0			# T1+=Sigma1(e)
1006	rllg	%r10,%r11,25
1007	 xgr	%r2,%r9			# Ch(e,f,g)
1008	alg	%r14,208(%r4,%r13)	# T1+=K[i]
1009	rllg	%r0,%r11,30
1010	algr	%r14,%r2			# T1+=Ch(e,f,g)
1011	 ogr	%r1,%r12
1012	xgr	%r10,%r0
1013	 lgr	%r2,%r11
1014	 ngr	%r1,%r5
1015	rllg	%r0,%r0,6
1016	xgr	%r10,%r0			# h=Sigma0(a)
1017	 ngr	%r2,%r12
1018	algr	%r10,%r14			# h+=T1
1019	 ogr	%r2,%r1			# Maj(a,b,c)
1020	algr	%r6,%r14			# d+=T1
1021	algr	%r10,%r2			# h+=Maj(a,b,c)
1022	lg	%r14,256(%r15)	### 27
1023	lg	%r1,232(%r15)
1024	rllg	%r0,%r14,56
1025	srlg	%r14,%r14,7
1026	rllg	%r2,%r0,7
1027	xgr	%r14,%r0
1028	rllg	%r0,%r1,3
1029	xgr	%r14,%r2					# sigma0(X[i+1])
1030	srlg	%r1,%r1,6
1031	alg	%r14,248(%r15)	# +=X[i]
1032	xgr	%r1,%r0
1033	rllg	%r0,%r0,42
1034	alg	%r14,192(%r15)	# +=X[i+9]
1035	xgr	%r1,%r0				# sigma1(X[i+14])
1036	algr	%r14,%r1				# +=sigma1(X[i+14])
1037	rllg	%r0,%r6,23
1038	rllg	%r1,%r6,46
1039	 lgr	%r2,%r7
1040	xgr	%r0,%r1
1041	rllg	%r1,%r1,4
1042	 xgr	%r2,%r8
1043	stg	%r14,248(%r15)
1044	xgr	%r0,%r1			# Sigma1(e)
1045	algr	%r14,%r9			# T1+=h
1046	 ngr	%r2,%r6
1047	 lgr	%r1,%r10
1048	algr	%r14,%r0			# T1+=Sigma1(e)
1049	rllg	%r9,%r10,25
1050	 xgr	%r2,%r8			# Ch(e,f,g)
1051	alg	%r14,216(%r4,%r13)	# T1+=K[i]
1052	rllg	%r0,%r10,30
1053	algr	%r14,%r2			# T1+=Ch(e,f,g)
1054	 ogr	%r1,%r11
1055	xgr	%r9,%r0
1056	 lgr	%r2,%r10
1057	 ngr	%r1,%r12
1058	rllg	%r0,%r0,6
1059	xgr	%r9,%r0			# h=Sigma0(a)
1060	 ngr	%r2,%r11
1061	algr	%r9,%r14			# h+=T1
1062	 ogr	%r2,%r1			# Maj(a,b,c)
1063	algr	%r5,%r14			# d+=T1
1064	algr	%r9,%r2			# h+=Maj(a,b,c)
1065	lg	%r14,264(%r15)	### 28
1066	lg	%r1,240(%r15)
1067	rllg	%r0,%r14,56
1068	srlg	%r14,%r14,7
1069	rllg	%r2,%r0,7
1070	xgr	%r14,%r0
1071	rllg	%r0,%r1,3
1072	xgr	%r14,%r2					# sigma0(X[i+1])
1073	srlg	%r1,%r1,6
1074	alg	%r14,256(%r15)	# +=X[i]
1075	xgr	%r1,%r0
1076	rllg	%r0,%r0,42
1077	alg	%r14,200(%r15)	# +=X[i+9]
1078	xgr	%r1,%r0				# sigma1(X[i+14])
1079	algr	%r14,%r1				# +=sigma1(X[i+14])
1080	rllg	%r0,%r5,23
1081	rllg	%r1,%r5,46
1082	 lgr	%r2,%r6
1083	xgr	%r0,%r1
1084	rllg	%r1,%r1,4
1085	 xgr	%r2,%r7
1086	stg	%r14,256(%r15)
1087	xgr	%r0,%r1			# Sigma1(e)
1088	algr	%r14,%r8			# T1+=h
1089	 ngr	%r2,%r5
1090	 lgr	%r1,%r9
1091	algr	%r14,%r0			# T1+=Sigma1(e)
1092	rllg	%r8,%r9,25
1093	 xgr	%r2,%r7			# Ch(e,f,g)
1094	alg	%r14,224(%r4,%r13)	# T1+=K[i]
1095	rllg	%r0,%r9,30
1096	algr	%r14,%r2			# T1+=Ch(e,f,g)
1097	 ogr	%r1,%r10
1098	xgr	%r8,%r0
1099	 lgr	%r2,%r9
1100	 ngr	%r1,%r11
1101	rllg	%r0,%r0,6
1102	xgr	%r8,%r0			# h=Sigma0(a)
1103	 ngr	%r2,%r10
1104	algr	%r8,%r14			# h+=T1
1105	 ogr	%r2,%r1			# Maj(a,b,c)
1106	algr	%r12,%r14			# d+=T1
1107	algr	%r8,%r2			# h+=Maj(a,b,c)
1108	lg	%r14,272(%r15)	### 29
1109	lg	%r1,248(%r15)
1110	rllg	%r0,%r14,56
1111	srlg	%r14,%r14,7
1112	rllg	%r2,%r0,7
1113	xgr	%r14,%r0
1114	rllg	%r0,%r1,3
1115	xgr	%r14,%r2					# sigma0(X[i+1])
1116	srlg	%r1,%r1,6
1117	alg	%r14,264(%r15)	# +=X[i]
1118	xgr	%r1,%r0
1119	rllg	%r0,%r0,42
1120	alg	%r14,208(%r15)	# +=X[i+9]
1121	xgr	%r1,%r0				# sigma1(X[i+14])
1122	algr	%r14,%r1				# +=sigma1(X[i+14])
1123	rllg	%r0,%r12,23
1124	rllg	%r1,%r12,46
1125	 lgr	%r2,%r5
1126	xgr	%r0,%r1
1127	rllg	%r1,%r1,4
1128	 xgr	%r2,%r6
1129	stg	%r14,264(%r15)
1130	xgr	%r0,%r1			# Sigma1(e)
1131	algr	%r14,%r7			# T1+=h
1132	 ngr	%r2,%r12
1133	 lgr	%r1,%r8
1134	algr	%r14,%r0			# T1+=Sigma1(e)
1135	rllg	%r7,%r8,25
1136	 xgr	%r2,%r6			# Ch(e,f,g)
1137	alg	%r14,232(%r4,%r13)	# T1+=K[i]
1138	rllg	%r0,%r8,30
1139	algr	%r14,%r2			# T1+=Ch(e,f,g)
1140	 ogr	%r1,%r9
1141	xgr	%r7,%r0
1142	 lgr	%r2,%r8
1143	 ngr	%r1,%r10
1144	rllg	%r0,%r0,6
1145	xgr	%r7,%r0			# h=Sigma0(a)
1146	 ngr	%r2,%r9
1147	algr	%r7,%r14			# h+=T1
1148	 ogr	%r2,%r1			# Maj(a,b,c)
1149	algr	%r11,%r14			# d+=T1
1150	algr	%r7,%r2			# h+=Maj(a,b,c)
1151	lg	%r14,280(%r15)	### 30
1152	lg	%r1,256(%r15)
1153	rllg	%r0,%r14,56
1154	srlg	%r14,%r14,7
1155	rllg	%r2,%r0,7
1156	xgr	%r14,%r0
1157	rllg	%r0,%r1,3
1158	xgr	%r14,%r2					# sigma0(X[i+1])
1159	srlg	%r1,%r1,6
1160	alg	%r14,272(%r15)	# +=X[i]
1161	xgr	%r1,%r0
1162	rllg	%r0,%r0,42
1163	alg	%r14,216(%r15)	# +=X[i+9]
1164	xgr	%r1,%r0				# sigma1(X[i+14])
1165	algr	%r14,%r1				# +=sigma1(X[i+14])
1166	rllg	%r0,%r11,23
1167	rllg	%r1,%r11,46
1168	 lgr	%r2,%r12
1169	xgr	%r0,%r1
1170	rllg	%r1,%r1,4
1171	 xgr	%r2,%r5
1172	stg	%r14,272(%r15)
1173	xgr	%r0,%r1			# Sigma1(e)
1174	algr	%r14,%r6			# T1+=h
1175	 ngr	%r2,%r11
1176	 lgr	%r1,%r7
1177	algr	%r14,%r0			# T1+=Sigma1(e)
1178	rllg	%r6,%r7,25
1179	 xgr	%r2,%r5			# Ch(e,f,g)
1180	alg	%r14,240(%r4,%r13)	# T1+=K[i]
1181	rllg	%r0,%r7,30
1182	algr	%r14,%r2			# T1+=Ch(e,f,g)
1183	 ogr	%r1,%r8
1184	xgr	%r6,%r0
1185	 lgr	%r2,%r7
1186	 ngr	%r1,%r9
1187	rllg	%r0,%r0,6
1188	xgr	%r6,%r0			# h=Sigma0(a)
1189	 ngr	%r2,%r8
1190	algr	%r6,%r14			# h+=T1
1191	 ogr	%r2,%r1			# Maj(a,b,c)
1192	algr	%r10,%r14			# d+=T1
1193	algr	%r6,%r2			# h+=Maj(a,b,c)
1194	lg	%r14,160(%r15)	### 31
1195	lg	%r1,264(%r15)
1196	rllg	%r0,%r14,56
1197	srlg	%r14,%r14,7
1198	rllg	%r2,%r0,7
1199	xgr	%r14,%r0
1200	rllg	%r0,%r1,3
1201	xgr	%r14,%r2					# sigma0(X[i+1])
1202	srlg	%r1,%r1,6
1203	alg	%r14,280(%r15)	# +=X[i]
1204	xgr	%r1,%r0
1205	rllg	%r0,%r0,42
1206	alg	%r14,224(%r15)	# +=X[i+9]
1207	xgr	%r1,%r0				# sigma1(X[i+14])
1208	algr	%r14,%r1				# +=sigma1(X[i+14])
1209	rllg	%r0,%r10,23
1210	rllg	%r1,%r10,46
1211	 lgr	%r2,%r11
1212	xgr	%r0,%r1
1213	rllg	%r1,%r1,4
1214	 xgr	%r2,%r12
1215	stg	%r14,280(%r15)
1216	xgr	%r0,%r1			# Sigma1(e)
1217	algr	%r14,%r5			# T1+=h
1218	 ngr	%r2,%r10
1219	 lgr	%r1,%r6
1220	algr	%r14,%r0			# T1+=Sigma1(e)
1221	rllg	%r5,%r6,25
1222	 xgr	%r2,%r12			# Ch(e,f,g)
1223	alg	%r14,248(%r4,%r13)	# T1+=K[i]
1224	rllg	%r0,%r6,30
1225	algr	%r14,%r2			# T1+=Ch(e,f,g)
1226	 ogr	%r1,%r7
1227	xgr	%r5,%r0
1228	 lgr	%r2,%r6
1229	 ngr	%r1,%r8
1230	rllg	%r0,%r0,6
1231	xgr	%r5,%r0			# h=Sigma0(a)
1232	 ngr	%r2,%r7
1233	algr	%r5,%r14			# h+=T1
1234	 ogr	%r2,%r1			# Maj(a,b,c)
1235	algr	%r9,%r14			# d+=T1
1236	algr	%r5,%r2			# h+=Maj(a,b,c)
1237	aghi	%r4,128
1238	lghi	%r0,512
1239	clgr	%r4,%r0
1240	jne	.Lrounds_16_xx
1241
1242	lg	%r2,304(%r15)
1243	la	%r3,128(%r3)
1244	alg	%r5,0(%r2)
1245	alg	%r6,8(%r2)
1246	alg	%r7,16(%r2)
1247	alg	%r8,24(%r2)
1248	alg	%r9,32(%r2)
1249	alg	%r10,40(%r2)
1250	alg	%r11,48(%r2)
1251	alg	%r12,56(%r2)
1252	stg	%r5,0(%r2)
1253	stg	%r6,8(%r2)
1254	stg	%r7,16(%r2)
1255	stg	%r8,24(%r2)
1256	stg	%r9,32(%r2)
1257	stg	%r10,40(%r2)
1258	stg	%r11,48(%r2)
1259	stg	%r12,56(%r2)
1260	clg	%r3,320(%r15)
1261	jne	.Lloop
1262
1263	lmg	%r6,%r15,336(%r15)
1264	br	%r14
1265.size	sha512_block_data_order,.-sha512_block_data_order
1266.string	"SHA512 block transform for s390x, CRYPTOGAMS by <appro@openssl.org>"
1267