• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#include "s390x_arch.h"
2.text
3.globl	poly1305_init
4.type	poly1305_init,@function
5.align	16
6poly1305_init:
7	lghi	%r0,0
8	lghi	%r1,-1
9	stg	%r0,0(%r2)
10	stg	%r0,8(%r2)
11	stg	%r0,16(%r2)
12	st	%r0,24(%r2)
13	lgr	%r5,%r2
14	lghi	%r2,0
15	clgr	%r3,%r0
16	je	.Lno_key
17	lrvg	%r2,0(%r3)
18	lrvg	%r3,8(%r3)
19	nihl	%r1,65472
20	srlg	%r0,%r1,4
21	srlg	%r1,%r1,4
22	nill	%r1,65532
23	ngr	%r2,%r0
24	ngr	%r3,%r1
25	stmg	%r2,%r3,32(%r5)
26	larl	%r1,OPENSSL_s390xcap_P
27	lg	%r0,16(%r1)
28	srlg	%r0,%r0,62
29	nill	%r0,1
30	lcgr	%r0,%r0
31	larl	%r1,.Lpoly1305_blocks
32	larl	%r2,.Lpoly1305_blocks_vx
33	larl	%r3,.Lpoly1305_emit
34	xgr	%r2,%r1
35	ngr	%r2,%r0
36	xgr	%r2,%r1
37	stmg	%r2,%r3,0(%r4)
38	lghi	%r2,1
39.Lno_key:
40	br	%r14
41.size	poly1305_init,.-poly1305_init
42.globl	poly1305_blocks
43.type	poly1305_blocks,@function
44.align	16
45poly1305_blocks:
46.Lpoly1305_blocks:
47	ltgr	%r0,%r4
48	jz	.Lno_data
49	stmg	%r6,%r14,6*8(%r15)
50	lg	%r11,0(%r2)
51	lg	%r13,8(%r2)
52	lg	%r14,16(%r2)
53.Lpoly1305_blocks_entry:
54	srlg	%r4,%r4,4
55	llgfr	%r5,%r5
56	lg	%r0,32(%r2)
57	lg	%r1,40(%r2)
58	stg	%r2,2*8(%r15)
59	srlg	%r2,%r1,2
60	algr	%r2,%r1
61	j	.Loop
62.align	16
63.Loop:
64	lrvg	%r7,0(%r3)
65	lrvg	%r9,8(%r3)
66	la	%r3,16(%r3)
67	algr	%r7,%r11
68	alcgr	%r9,%r13
69	alcgr	%r14,%r5
70	lgr	%r11,%r7
71	mlgr	%r6,%r0
72	lgr	%r13,%r9
73	mlgr	%r8,%r2
74	mlgr	%r10,%r1
75	mlgr	%r12,%r0
76	algr	%r7,%r9
77	lgr	%r9,%r14
78	alcgr	%r6,%r8
79	lghi	%r8,0
80	algr	%r13,%r11
81	alcgr	%r12,%r10
82	msgr	%r9,%r2
83	msgr	%r14,%r0
84	algr	%r13,%r9
85	alcgr	%r12,%r8
86	algr	%r13,%r6
87	alcgr	%r14,%r12
88	lghi	%r11,-4
89	ngr	%r11,%r14
90	srlg	%r10,%r14,2
91	algr	%r11,%r10
92	lghi	%r12,3
93	ngr	%r14,%r12
94	algr	%r11,%r7
95	alcgr	%r13,%r8
96	alcgr	%r14,%r8
97	brctg	%r4,.Loop
98	lg	%r2,2*8(%r15)
99	stg	%r11,0(%r2)
100	stg	%r13,8(%r2)
101	stg	%r14,16(%r2)
102	lmg	%r6,%r14,6*8(%r15)
103.Lno_data:
104	br	%r14
105.size	poly1305_blocks,.-poly1305_blocks
106.type	poly1305_blocks_vx,@function
107.align	16
108poly1305_blocks_vx:
109.Lpoly1305_blocks_vx:
110	.word	0xc24e,000000,0x0080	# clgfi	%r4,128
111	jhe	__poly1305_blocks_vx
112	stmg	%r6,%r14,6*8(%r15)
113	lg	%r10,0(%r2)
114	lg	%r12,8(%r2)
115	lg	%r9,16(%r2)
116	llgfr	%r0,%r10
117	srlg	%r11,%r10,32
118	llgfr	%r1,%r12
119	srlg	%r13,%r12,32
120	srlg	%r14,%r9,32
121	sllg	%r0,%r0,26
122	algr	%r11,%r0
123	sllg	%r0,%r13,52
124	srlg	%r13,%r13,12
125	sllg	%r1,%r1,14
126	algr	%r11,%r0
127	alcgr	%r13,%r1
128	sllg	%r0,%r14,40
129	srlg	%r14,%r14,24
130	lghi	%r1,0
131	algr	%r13,%r0
132	alcgr	%r14,%r1
133	llgf	%r0,24(%r2)
134	lcgr	%r0,%r0
135	xgr	%r11,%r10
136	xgr	%r13,%r12
137	xgr	%r14,%r9
138	ngr	%r11,%r0
139	ngr	%r13,%r0
140	ngr	%r14,%r0
141	xgr	%r11,%r10
142	xgr	%r13,%r12
143	xgr	%r14,%r9
144	lhi	%r0,0
145	st	%r0,24(%r2)
146	j	.Lpoly1305_blocks_entry
147.size	poly1305_blocks_vx,.-poly1305_blocks_vx
148.type	__poly1305_mul,@function
149.align	16
150__poly1305_mul:
151	.word	0xe730,0xa000,0x28a5	# vmlo	%v19,%v0,%v10,2
152	.word	0xe740,0xb000,0x28a5	# vmlo	%v20,%v0,%v11,2
153	.word	0xe750,0xd000,0x28a5	# vmlo	%v21,%v0,%v13,2
154	.word	0xe760,0xf000,0x28a5	# vmlo	%v22,%v0,%v15,2
155	.word	0xe770,0x1000,0x2aa5	# vmlo	%v23,%v0,%v17,2
156	.word	0xe731,0x2200,0x3bad	# vmalo	%v19,%v1,%v18,%v19,2
157	.word	0xe741,0xa200,0x49ad	# vmalo	%v20,%v1,%v10,%v20,2
158	.word	0xe751,0xb200,0x59ad	# vmalo	%v21,%v1,%v11,%v21,2
159	.word	0xe761,0xd200,0x69ad	# vmalo	%v22,%v1,%v13,%v22,2
160	.word	0xe771,0xf200,0x79ad	# vmalo	%v23,%v1,%v15,%v23,2
161	.word	0xe732,0x0200,0x3bad	# vmalo	%v19,%v2,%v16,%v19,2
162	.word	0xe742,0x2200,0x4bad	# vmalo	%v20,%v2,%v18,%v20,2
163	.word	0xe752,0xa200,0x59ad	# vmalo	%v21,%v2,%v10,%v21,2
164	.word	0xe762,0xb200,0x69ad	# vmalo	%v22,%v2,%v11,%v22,2
165	.word	0xe772,0xd200,0x79ad	# vmalo	%v23,%v2,%v13,%v23,2
166	.word	0xe733,0xe200,0x39ad	# vmalo	%v19,%v3,%v14,%v19,2
167	.word	0xe743,0x0200,0x4bad	# vmalo	%v20,%v3,%v16,%v20,2
168	.word	0xe753,0x2200,0x5bad	# vmalo	%v21,%v3,%v18,%v21,2
169	.word	0xe763,0xa200,0x69ad	# vmalo	%v22,%v3,%v10,%v22,2
170	.word	0xe773,0xb200,0x79ad	# vmalo	%v23,%v3,%v11,%v23,2
171	.word	0xe734,0xc200,0x39ad	# vmalo	%v19,%v4,%v12,%v19,2
172	.word	0xe744,0xe200,0x49ad	# vmalo	%v20,%v4,%v14,%v20,2
173	.word	0xe754,0x0200,0x5bad	# vmalo	%v21,%v4,%v16,%v21,2
174	.word	0xe764,0x2200,0x6bad	# vmalo	%v22,%v4,%v18,%v22,2
175	.word	0xe774,0xa200,0x79ad	# vmalo	%v23,%v4,%v10,%v23,2
176	.word	0xe746,0x001a,0x3438	# vesrl	%v4,%v22,26,3
177	.word	0xe713,0x001a,0x3438	# vesrl	%v1,%v19,26,3
178	.word	0xe736,0xc000,0x0668	# vn	%v3,%v22,%v28
179	.word	0xe703,0xc000,0x0668	# vn	%v0,%v19,%v28
180	.word	0xe744,0x7000,0x32f3	# va	%v4,%v4,%v23,3
181	.word	0xe711,0x4000,0x32f3	# va	%v1,%v1,%v20,3
182	.word	0xe774,0x001a,0x3838	# vesrl	%v23,%v4,26,3
183	.word	0xe741,0x001a,0x3838	# vesrl	%v20,%v1,26,3
184	.word	0xe744,0xc000,0x0268	# vn	%v4,%v4,%v28
185	.word	0xe711,0xc000,0x0268	# vn	%v1,%v1,%v28
186	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
187	.word	0xe725,0x4000,0x36f3	# va	%v2,%v21,%v20,3
188	.word	0xe777,0x0002,0x3c30	# vesl	%v23,%v23,2,3
189	.word	0xe752,0x001a,0x3838	# vesrl	%v21,%v2,26,3
190	.word	0xe722,0xc000,0x0268	# vn	%v2,%v2,%v28
191	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
192	.word	0xe733,0x5000,0x32f3	# va	%v3,%v3,%v21,3
193	.word	0xe730,0x001a,0x3838	# vesrl	%v19,%v0,26,3
194	.word	0xe763,0x001a,0x3838	# vesrl	%v22,%v3,26,3
195	.word	0xe700,0xc000,0x0268	# vn	%v0,%v0,%v28
196	.word	0xe733,0xc000,0x0268	# vn	%v3,%v3,%v28
197	.word	0xe711,0x3000,0x32f3	# va	%v1,%v1,%v19,3
198	.word	0xe744,0x6000,0x32f3	# va	%v4,%v4,%v22,3
199	br	%r14
200.size	__poly1305_mul,.-__poly1305_mul
201.type	__poly1305_blocks_vx,@function
202.align	16
203__poly1305_blocks_vx:
204	lgr	%r0,%r15
205	stmg	%r10,%r15,10*8(%r15)
206	aghi	%r15,-(160+8*8)
207	stg	%r0,0(%r15)
208	std	%f8,160+0*8(%r15)
209	std	%f9,160+1*8(%r15)
210	std	%f10,160+2*8(%r15)
211	std	%f11,160+3*8(%r15)
212	std	%f12,160+4*8(%r15)
213	std	%f13,160+5*8(%r15)
214	std	%f14,160+6*8(%r15)
215	std	%f15,160+7*8(%r15)
216	larl	%r1,.Lconst
217	.word	0xe7c0,0x263f,0x3846	# vgm	%v28,38,63,3
218	.word	0xe7df,0x1010,0x0c36	# vlm	%v29,%v31,16(%r1)
219	.word	0xe300,0x2018,0x0012	# lt	%r0,24(%r2)
220	jnz	.Lskip_init
221	lg	%r11,32(%r2)
222	lg	%r13,40(%r2)
223	.word	0xecab,0x26bf,0x2655	# risbg	%r10,%r11,38,191,38
224	srlg	%r12,%r11,52
225	.word	0xecbb,0x26bf,0x0055	# risbg	%r11,%r11,38,191,0
226	.word	0xe7ab,000000,0x3022	# vlvg	%v10,%r11,0,3
227	.word	0xeccd,0x2633,0x0c55	# risbg	%r12,%r13,38,51,12
228	.word	0xe7ba,000000,0x3022	# vlvg	%v11,%r10,0,3
229	.word	0xecad,0x263f,0x3255	# risbg	%r10,%r13,38,63,50
230	.word	0xe7dc,000000,0x3022	# vlvg	%v13,%r12,0,3
231	srlg	%r12,%r13,40
232	.word	0xe7fa,000000,0x3022	# vlvg	%v15,%r10,0,3
233	.word	0xe71c,000000,0x3822	# vlvg	%v17,%r12,0,3
234	.word	0xe7cb,0x0002,0x3030	# vesl	%v12,%v11,2,3
235	.word	0xe7ed,0x0002,0x3030	# vesl	%v14,%v13,2,3
236	.word	0xe70f,0x0002,0x3830	# vesl	%v16,%v15,2,3
237	.word	0xe721,0x0002,0x3c30	# vesl	%v18,%v17,2,3
238	.word	0xe70a,000000,0x0056	# vlr	%v0,%v10
239	.word	0xe71b,000000,0x0056	# vlr	%v1,%v11
240	.word	0xe72d,000000,0x0056	# vlr	%v2,%v13
241	.word	0xe73f,000000,0x0056	# vlr	%v3,%v15
242	.word	0xe741,000000,0x0456	# vlr	%v4,%v17
243	.word	0xe7cc,0xb000,0x30f3	# va	%v12,%v12,%v11,3
244	.word	0xe7ee,0xd000,0x30f3	# va	%v14,%v14,%v13,3
245	.word	0xe700,0xf000,0x3cf3	# va	%v16,%v16,%v15,3
246	.word	0xe722,0x1000,0x3ef3	# va	%v18,%v18,%v17,3
247	brasl	%r14,__poly1305_mul
248	.word	0xe7a0,0xa000,0x0084	# vpdi	%v10,%v0,%v10,0
249	.word	0xe7b1,0xb000,0x0084	# vpdi	%v11,%v1,%v11,0
250	.word	0xe7d2,0xd000,0x0084	# vpdi	%v13,%v2,%v13,0
251	.word	0xe7f3,0xf000,0x0084	# vpdi	%v15,%v3,%v15,0
252	.word	0xe714,0x1000,0x0a84	# vpdi	%v17,%v4,%v17,0
253	.word	0xe700,000000,0x0084	# vpdi	%v0,%v0,%v0,0
254	.word	0xe711,0x1000,0x0084	# vpdi	%v1,%v1,%v1,0
255	.word	0xe722,0x2000,0x0084	# vpdi	%v2,%v2,%v2,0
256	.word	0xe733,0x3000,0x0084	# vpdi	%v3,%v3,%v3,0
257	.word	0xe744,0x4000,0x0084	# vpdi	%v4,%v4,%v4,0
258	.word	0xe7cb,0x0002,0x3030	# vesl	%v12,%v11,2,3
259	.word	0xe7ed,0x0002,0x3030	# vesl	%v14,%v13,2,3
260	.word	0xe70f,0x0002,0x3830	# vesl	%v16,%v15,2,3
261	.word	0xe721,0x0002,0x3c30	# vesl	%v18,%v17,2,3
262	.word	0xe7cc,0xb000,0x30f3	# va	%v12,%v12,%v11,3
263	.word	0xe7ee,0xd000,0x30f3	# va	%v14,%v14,%v13,3
264	.word	0xe700,0xf000,0x3cf3	# va	%v16,%v16,%v15,3
265	.word	0xe722,0x1000,0x3ef3	# va	%v18,%v18,%v17,3
266	brasl	%r14,__poly1305_mul
267	.word	0xe750,0x1000,0x0006	# vl	%v5,0(%r1)
268	.word	0xe7aa,000000,0x508c	# vperm	%v10,%v10,%v0,%v5
269	.word	0xe7bb,0x1000,0x508c	# vperm	%v11,%v11,%v1,%v5
270	.word	0xe7dd,0x2000,0x508c	# vperm	%v13,%v13,%v2,%v5
271	.word	0xe7ff,0x3000,0x508c	# vperm	%v15,%v15,%v3,%v5
272	.word	0xe711,0x4000,0x5c8c	# vperm	%v17,%v17,%v4,%v5
273	.word	0xe7cb,0x0002,0x2030	# vesl	%v12,%v11,2,2
274	.word	0xe7ed,0x0002,0x2030	# vesl	%v14,%v13,2,2
275	.word	0xe70f,0x0002,0x2830	# vesl	%v16,%v15,2,2
276	.word	0xe721,0x0002,0x2c30	# vesl	%v18,%v17,2,2
277	.word	0xe7cc,0xb000,0x20f3	# va	%v12,%v12,%v11,2
278	.word	0xe7ee,0xd000,0x20f3	# va	%v14,%v14,%v13,2
279	.word	0xe700,0xf000,0x2cf3	# va	%v16,%v16,%v15,2
280	.word	0xe722,0x1000,0x2ef3	# va	%v18,%v18,%v17,2
281	lg	%r11,0(%r2)
282	lg	%r13,8(%r2)
283	lg	%r14,16(%r2)
284	.word	0xe700,000000,0x0044	# vgbm	%v0,0
285	.word	0xe710,000000,0x0044	# vgbm	%v1,0
286	.word	0xe720,000000,0x0044	# vgbm	%v2,0
287	.word	0xe730,000000,0x0044	# vgbm	%v3,0
288	.word	0xe740,000000,0x0044	# vgbm	%v4,0
289	.word	0xecab,0x26bf,0x2655	# risbg	%r10,%r11,38,191,38
290	srlg	%r12,%r11,52
291	.word	0xecbb,0x26bf,0x0055	# risbg	%r11,%r11,38,191,0
292	.word	0xe70b,000000,0x3022	# vlvg	%v0,%r11,0,3
293	.word	0xeccd,0x2633,0x0c55	# risbg	%r12,%r13,38,51,12
294	.word	0xe71a,000000,0x3022	# vlvg	%v1,%r10,0,3
295	.word	0xecad,0x263f,0x3255	# risbg	%r10,%r13,38,63,50
296	.word	0xe72c,000000,0x3022	# vlvg	%v2,%r12,0,3
297	srlg	%r12,%r13,40
298	.word	0xe73a,000000,0x3022	# vlvg	%v3,%r10,0,3
299	.word	0xecce,0x2527,0x1855	# risbg	%r12,%r14,37,39,24
300	.word	0xe74c,000000,0x3022	# vlvg	%v4,%r12,0,3
301	lhi	%r0,1
302	st	%r0,24(%r2)
303	.word	0xe7a2,0x2030,0x043e	# vstm	%v10,%v18,48(%r2)
304	.word	0xe7aa,0xa000,0x0084	# vpdi	%v10,%v10,%v10,0
305	.word	0xe7bb,0xb000,0x0084	# vpdi	%v11,%v11,%v11,0
306	.word	0xe7cc,0xc000,0x0084	# vpdi	%v12,%v12,%v12,0
307	.word	0xe7dd,0xd000,0x0084	# vpdi	%v13,%v13,%v13,0
308	.word	0xe7ee,0xe000,0x0084	# vpdi	%v14,%v14,%v14,0
309	.word	0xe7ff,0xf000,0x0084	# vpdi	%v15,%v15,%v15,0
310	.word	0xe700,000000,0x0e84	# vpdi	%v16,%v16,%v16,0
311	.word	0xe711,0x1000,0x0e84	# vpdi	%v17,%v17,%v17,0
312	.word	0xe722,0x2000,0x0e84	# vpdi	%v18,%v18,%v18,0
313	j	.Loaded_hash
314.align	16
315.Lskip_init:
316	.word	0xe700,0x2000,0x2004	# vllez	%v0,0(%r2),2
317	.word	0xe710,0x2004,0x2004	# vllez	%v1,4(%r2),2
318	.word	0xe720,0x2008,0x2004	# vllez	%v2,8(%r2),2
319	.word	0xe730,0x200c,0x2004	# vllez	%v3,12(%r2),2
320	.word	0xe740,0x2010,0x2004	# vllez	%v4,16(%r2),2
321	.word	0xe7a0,0x2030,0x3005	# vlrep	%v10,0x30(%r2),3
322	.word	0xe7b0,0x2040,0x3005	# vlrep	%v11,0x40(%r2),3
323	.word	0xe7c0,0x2050,0x3005	# vlrep	%v12,0x50(%r2),3
324	.word	0xe7d0,0x2060,0x3005	# vlrep	%v13,0x60(%r2),3
325	.word	0xe7e0,0x2070,0x3005	# vlrep	%v14,0x70(%r2),3
326	.word	0xe7f0,0x2080,0x3005	# vlrep	%v15,0x80(%r2),3
327	.word	0xe700,0x2090,0x3805	# vlrep	%v16,0x90(%r2),3
328	.word	0xe710,0x20a0,0x3805	# vlrep	%v17,0xa0(%r2),3
329	.word	0xe720,0x20b0,0x3805	# vlrep	%v18,0xb0(%r2),3
330.Loaded_hash:
331	.word	0xe760,000000,0x0044	# vgbm	%v6,0
332	.word	0xe780,000000,0x0044	# vgbm	%v8,0
333	.word	0xe78b,0x3000,0x0c36	# vlm	%v24,%v27,0x00(%r3)
334	la	%r3,0x40(%r3)
335	.word	0xe7c0,0x061f,0x3846	# vgm	%v28,6,31,3
336	.word	0xe790,0x0505,0x2046	# vgm	%v9,5,5,2
337	.word	0xe75a,0xb000,0xd78c	# vperm	%v5,%v26,%v27,%v29
338	.word	0xe77a,0xb000,0xf78c	# vperm	%v7,%v26,%v27,%v31
339	.word	0xe7aa,0xb000,0xef8c	# vperm	%v26,%v26,%v27,%v30
340	.word	0xe765,0xc006,0x3272	# verim	%v6,%v5,%v28,6,3
341	.word	0xe755,0x0020,0x3030	# vesl	%v5,%v5,32,3
342	.word	0xe777,0x001c,0x3030	# vesl	%v7,%v7,28,3
343	.word	0xe78a,0xc012,0x3672	# verim	%v8,%v26,%v28,18,3
344	.word	0xe79a,0xc03a,0x3672	# verim	%v9,%v26,%v28,58,3
345	.word	0xe755,0xc000,0x0268	# vn	%v5,%v5,%v28
346	.word	0xe777,0xc000,0x0268	# vn	%v7,%v7,%v28
347	.word	0xe799,0x0002,0x2038	# vesrl	%v9,%v9,2,2
348	.word	0xe7c0,0x263f,0x3846	# vgm	%v28,38,63,3
349	.word	0xe7a8,0x9000,0xdf8c	# vperm	%v26,%v24,%v25,%v29
350	.word	0xe7b8,0x9000,0xef8c	# vperm	%v27,%v24,%v25,%v30
351	.word	0xe798,0x9000,0xff8c	# vperm	%v25,%v24,%v25,%v31
352	.word	0xe75a,0xc000,0x3672	# verim	%v5,%v26,%v28,0,3
353	.word	0xe76a,0xc026,0x3672	# verim	%v6,%v26,%v28,38,3
354	.word	0xe779,0xc03c,0x3672	# verim	%v7,%v25,%v28,60,3
355	.word	0xe78b,0xc032,0x3672	# verim	%v8,%v27,%v28,50,3
356	.word	0xe7bb,0x0028,0x3c38	# vesrl	%v27,%v27,40,3
357	.word	0xe799,0xb000,0x026a	# vo	%v9,%v9,%v27
358	srlg	%r0,%r4,6
359	aghi	%r0,-1
360.align	16
361.Loop_vx:
362	.word	0xe735,0xa000,0x28a4	# vmle	%v19,%v5,%v10,2
363	.word	0xe745,0xb000,0x28a4	# vmle	%v20,%v5,%v11,2
364	.word	0xe755,0xd000,0x28a4	# vmle	%v21,%v5,%v13,2
365	.word	0xe765,0xf000,0x28a4	# vmle	%v22,%v5,%v15,2
366	.word	0xe775,0x1000,0x2aa4	# vmle	%v23,%v5,%v17,2
367	.word	0xe736,0x2200,0x3bac	# vmale	%v19,%v6,%v18,%v19,2
368	.word	0xe746,0xa200,0x49ac	# vmale	%v20,%v6,%v10,%v20,2
369	.word	0xe756,0xb200,0x59ac	# vmale	%v21,%v6,%v11,%v21,2
370	.word	0xe766,0xd200,0x69ac	# vmale	%v22,%v6,%v13,%v22,2
371	.word	0xe776,0xf200,0x79ac	# vmale	%v23,%v6,%v15,%v23,2
372	.word	0xe722,0x7000,0x20f3	# va	%v2,%v2,%v7,2
373	.word	0xe700,0x5000,0x20f3	# va	%v0,%v0,%v5,2
374	.word	0xe733,0x8000,0x20f3	# va	%v3,%v3,%v8,2
375	.word	0xe711,0x6000,0x20f3	# va	%v1,%v1,%v6,2
376	.word	0xe744,0x9000,0x20f3	# va	%v4,%v4,%v9,2
377	.word	0xe737,0x0200,0x3bac	# vmale	%v19,%v7,%v16,%v19,2
378	.word	0xe747,0x2200,0x4bac	# vmale	%v20,%v7,%v18,%v20,2
379	.word	0xe757,0xa200,0x59ac	# vmale	%v21,%v7,%v10,%v21,2
380	.word	0xe767,0xb200,0x69ac	# vmale	%v22,%v7,%v11,%v22,2
381	.word	0xe777,0xd200,0x79ac	# vmale	%v23,%v7,%v13,%v23,2
382	.word	0xe78b,0x3000,0x0c36	# vlm	%v24,%v27,0x00(%r3)
383	la	%r3,0x40(%r3)
384	.word	0xe7c0,0x061f,0x3846	# vgm	%v28,6,31,3
385	.word	0xe738,0xe200,0x39ac	# vmale	%v19,%v8,%v14,%v19,2
386	.word	0xe748,0x0200,0x4bac	# vmale	%v20,%v8,%v16,%v20,2
387	.word	0xe758,0x2200,0x5bac	# vmale	%v21,%v8,%v18,%v21,2
388	.word	0xe768,0xa200,0x69ac	# vmale	%v22,%v8,%v10,%v22,2
389	.word	0xe778,0xb200,0x79ac	# vmale	%v23,%v8,%v11,%v23,2
390	.word	0xe75a,0xb000,0xd78c	# vperm	%v5,%v26,%v27,%v29
391	.word	0xe77a,0xb000,0xf78c	# vperm	%v7,%v26,%v27,%v31
392	.word	0xe7aa,0xb000,0xef8c	# vperm	%v26,%v26,%v27,%v30
393	.word	0xe739,0xc200,0x39ac	# vmale	%v19,%v9,%v12,%v19,2
394	.word	0xe749,0xe200,0x49ac	# vmale	%v20,%v9,%v14,%v20,2
395	.word	0xe759,0x0200,0x5bac	# vmale	%v21,%v9,%v16,%v21,2
396	.word	0xe769,0x2200,0x6bac	# vmale	%v22,%v9,%v18,%v22,2
397	.word	0xe779,0xa200,0x79ac	# vmale	%v23,%v9,%v10,%v23,2
398	.word	0xe765,0xc006,0x3272	# verim	%v6,%v5,%v28,6,3
399	.word	0xe755,0x0020,0x3030	# vesl	%v5,%v5,32,3
400	.word	0xe777,0x001c,0x3030	# vesl	%v7,%v7,28,3
401	.word	0xe78a,0xc012,0x3672	# verim	%v8,%v26,%v28,18,3
402	.word	0xe730,0xa200,0x39ad	# vmalo	%v19,%v0,%v10,%v19,2
403	.word	0xe740,0xb200,0x49ad	# vmalo	%v20,%v0,%v11,%v20,2
404	.word	0xe750,0xd200,0x59ad	# vmalo	%v21,%v0,%v13,%v21,2
405	.word	0xe760,0xf200,0x69ad	# vmalo	%v22,%v0,%v15,%v22,2
406	.word	0xe770,0x1200,0x7bad	# vmalo	%v23,%v0,%v17,%v23,2
407	.word	0xe790,0x0505,0x2046	# vgm	%v9,5,5,2
408	.word	0xe79a,0xc03a,0x3672	# verim	%v9,%v26,%v28,58,3
409	.word	0xe755,0xc000,0x0268	# vn	%v5,%v5,%v28
410	.word	0xe777,0xc000,0x0268	# vn	%v7,%v7,%v28
411	.word	0xe799,0x0002,0x2038	# vesrl	%v9,%v9,2,2
412	.word	0xe731,0x2200,0x3bad	# vmalo	%v19,%v1,%v18,%v19,2
413	.word	0xe741,0xa200,0x49ad	# vmalo	%v20,%v1,%v10,%v20,2
414	.word	0xe751,0xb200,0x59ad	# vmalo	%v21,%v1,%v11,%v21,2
415	.word	0xe761,0xd200,0x69ad	# vmalo	%v22,%v1,%v13,%v22,2
416	.word	0xe771,0xf200,0x79ad	# vmalo	%v23,%v1,%v15,%v23,2
417	.word	0xe7c0,0x263f,0x3846	# vgm	%v28,38,63,3
418	.word	0xe7a8,0x9000,0xdf8c	# vperm	%v26,%v24,%v25,%v29
419	.word	0xe7b8,0x9000,0xef8c	# vperm	%v27,%v24,%v25,%v30
420	.word	0xe798,0x9000,0xff8c	# vperm	%v25,%v24,%v25,%v31
421	.word	0xe732,0x0200,0x3bad	# vmalo	%v19,%v2,%v16,%v19,2
422	.word	0xe742,0x2200,0x4bad	# vmalo	%v20,%v2,%v18,%v20,2
423	.word	0xe752,0xa200,0x59ad	# vmalo	%v21,%v2,%v10,%v21,2
424	.word	0xe762,0xb200,0x69ad	# vmalo	%v22,%v2,%v11,%v22,2
425	.word	0xe772,0xd200,0x79ad	# vmalo	%v23,%v2,%v13,%v23,2
426	.word	0xe75a,0xc000,0x3672	# verim	%v5,%v26,%v28,0,3
427	.word	0xe76a,0xc026,0x3672	# verim	%v6,%v26,%v28,38,3
428	.word	0xe779,0xc03c,0x3672	# verim	%v7,%v25,%v28,60,3
429	.word	0xe733,0xe200,0x39ad	# vmalo	%v19,%v3,%v14,%v19,2
430	.word	0xe743,0x0200,0x4bad	# vmalo	%v20,%v3,%v16,%v20,2
431	.word	0xe753,0x2200,0x5bad	# vmalo	%v21,%v3,%v18,%v21,2
432	.word	0xe763,0xa200,0x69ad	# vmalo	%v22,%v3,%v10,%v22,2
433	.word	0xe773,0xb200,0x79ad	# vmalo	%v23,%v3,%v11,%v23,2
434	.word	0xe78b,0xc032,0x3672	# verim	%v8,%v27,%v28,50,3
435	.word	0xe7bb,0x0028,0x3c38	# vesrl	%v27,%v27,40,3
436	.word	0xe799,0xb000,0x026a	# vo	%v9,%v9,%v27
437	.word	0xe734,0xc200,0x39ad	# vmalo	%v19,%v4,%v12,%v19,2
438	.word	0xe744,0xe200,0x49ad	# vmalo	%v20,%v4,%v14,%v20,2
439	.word	0xe754,0x0200,0x5bad	# vmalo	%v21,%v4,%v16,%v21,2
440	.word	0xe764,0x2200,0x6bad	# vmalo	%v22,%v4,%v18,%v22,2
441	.word	0xe774,0xa200,0x79ad	# vmalo	%v23,%v4,%v10,%v23,2
442	.word	0xe746,0x001a,0x3438	# vesrl	%v4,%v22,26,3
443	.word	0xe713,0x001a,0x3438	# vesrl	%v1,%v19,26,3
444	.word	0xe736,0xc000,0x0668	# vn	%v3,%v22,%v28
445	.word	0xe703,0xc000,0x0668	# vn	%v0,%v19,%v28
446	.word	0xe744,0x7000,0x32f3	# va	%v4,%v4,%v23,3
447	.word	0xe711,0x4000,0x32f3	# va	%v1,%v1,%v20,3
448	.word	0xe774,0x001a,0x3838	# vesrl	%v23,%v4,26,3
449	.word	0xe741,0x001a,0x3838	# vesrl	%v20,%v1,26,3
450	.word	0xe744,0xc000,0x0268	# vn	%v4,%v4,%v28
451	.word	0xe711,0xc000,0x0268	# vn	%v1,%v1,%v28
452	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
453	.word	0xe725,0x4000,0x36f3	# va	%v2,%v21,%v20,3
454	.word	0xe777,0x0002,0x3c30	# vesl	%v23,%v23,2,3
455	.word	0xe752,0x001a,0x3838	# vesrl	%v21,%v2,26,3
456	.word	0xe722,0xc000,0x0268	# vn	%v2,%v2,%v28
457	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
458	.word	0xe733,0x5000,0x32f3	# va	%v3,%v3,%v21,3
459	.word	0xe730,0x001a,0x3838	# vesrl	%v19,%v0,26,3
460	.word	0xe763,0x001a,0x3838	# vesrl	%v22,%v3,26,3
461	.word	0xe700,0xc000,0x0268	# vn	%v0,%v0,%v28
462	.word	0xe733,0xc000,0x0268	# vn	%v3,%v3,%v28
463	.word	0xe711,0x3000,0x32f3	# va	%v1,%v1,%v19,3
464	.word	0xe744,0x6000,0x32f3	# va	%v4,%v4,%v22,3
465	brctg	%r0,.Loop_vx
466	.word	0xe7a2,0x2030,0x0436	# vlm	%v10,%v18,48(%r2)
467	lghi	%r0,48
468	lcgr	%r4,%r4
469	ngr	%r4,%r0
470	slgr	%r3,%r4
471.Last:
472	.word	0xe735,0xa000,0x28a4	# vmle	%v19,%v5,%v10,2
473	.word	0xe745,0xb000,0x28a4	# vmle	%v20,%v5,%v11,2
474	.word	0xe755,0xd000,0x28a4	# vmle	%v21,%v5,%v13,2
475	.word	0xe765,0xf000,0x28a4	# vmle	%v22,%v5,%v15,2
476	.word	0xe775,0x1000,0x2aa4	# vmle	%v23,%v5,%v17,2
477	.word	0xe736,0x2200,0x3bac	# vmale	%v19,%v6,%v18,%v19,2
478	.word	0xe746,0xa200,0x49ac	# vmale	%v20,%v6,%v10,%v20,2
479	.word	0xe756,0xb200,0x59ac	# vmale	%v21,%v6,%v11,%v21,2
480	.word	0xe766,0xd200,0x69ac	# vmale	%v22,%v6,%v13,%v22,2
481	.word	0xe776,0xf200,0x79ac	# vmale	%v23,%v6,%v15,%v23,2
482	.word	0xe700,0x5000,0x20f3	# va	%v0,%v0,%v5,2
483	.word	0xe711,0x6000,0x20f3	# va	%v1,%v1,%v6,2
484	.word	0xe722,0x7000,0x20f3	# va	%v2,%v2,%v7,2
485	.word	0xe733,0x8000,0x20f3	# va	%v3,%v3,%v8,2
486	.word	0xe744,0x9000,0x20f3	# va	%v4,%v4,%v9,2
487	.word	0xe737,0x0200,0x3bac	# vmale	%v19,%v7,%v16,%v19,2
488	.word	0xe747,0x2200,0x4bac	# vmale	%v20,%v7,%v18,%v20,2
489	.word	0xe757,0xa200,0x59ac	# vmale	%v21,%v7,%v10,%v21,2
490	.word	0xe767,0xb200,0x69ac	# vmale	%v22,%v7,%v11,%v22,2
491	.word	0xe777,0xd200,0x79ac	# vmale	%v23,%v7,%v13,%v23,2
492	.word	0xe738,0xe200,0x39ac	# vmale	%v19,%v8,%v14,%v19,2
493	.word	0xe748,0x0200,0x4bac	# vmale	%v20,%v8,%v16,%v20,2
494	.word	0xe758,0x2200,0x5bac	# vmale	%v21,%v8,%v18,%v21,2
495	.word	0xe768,0xa200,0x69ac	# vmale	%v22,%v8,%v10,%v22,2
496	.word	0xe778,0xb200,0x79ac	# vmale	%v23,%v8,%v11,%v23,2
497	.word	0xe739,0xc200,0x39ac	# vmale	%v19,%v9,%v12,%v19,2
498	.word	0xe749,0xe200,0x49ac	# vmale	%v20,%v9,%v14,%v20,2
499	.word	0xe759,0x0200,0x5bac	# vmale	%v21,%v9,%v16,%v21,2
500	.word	0xe769,0x2200,0x6bac	# vmale	%v22,%v9,%v18,%v22,2
501	.word	0xe779,0xa200,0x79ac	# vmale	%v23,%v9,%v10,%v23,2
502	.word	0xe730,0xa200,0x39ad	# vmalo	%v19,%v0,%v10,%v19,2
503	.word	0xe740,0xb200,0x49ad	# vmalo	%v20,%v0,%v11,%v20,2
504	.word	0xe750,0xd200,0x59ad	# vmalo	%v21,%v0,%v13,%v21,2
505	.word	0xe760,0xf200,0x69ad	# vmalo	%v22,%v0,%v15,%v22,2
506	.word	0xe770,0x1200,0x7bad	# vmalo	%v23,%v0,%v17,%v23,2
507	.word	0xe731,0x2200,0x3bad	# vmalo	%v19,%v1,%v18,%v19,2
508	.word	0xe741,0xa200,0x49ad	# vmalo	%v20,%v1,%v10,%v20,2
509	.word	0xe751,0xb200,0x59ad	# vmalo	%v21,%v1,%v11,%v21,2
510	.word	0xe761,0xd200,0x69ad	# vmalo	%v22,%v1,%v13,%v22,2
511	.word	0xe771,0xf200,0x79ad	# vmalo	%v23,%v1,%v15,%v23,2
512	.word	0xe732,0x0200,0x3bad	# vmalo	%v19,%v2,%v16,%v19,2
513	.word	0xe742,0x2200,0x4bad	# vmalo	%v20,%v2,%v18,%v20,2
514	.word	0xe752,0xa200,0x59ad	# vmalo	%v21,%v2,%v10,%v21,2
515	.word	0xe762,0xb200,0x69ad	# vmalo	%v22,%v2,%v11,%v22,2
516	.word	0xe772,0xd200,0x79ad	# vmalo	%v23,%v2,%v13,%v23,2
517	.word	0xe733,0xe200,0x39ad	# vmalo	%v19,%v3,%v14,%v19,2
518	.word	0xe743,0x0200,0x4bad	# vmalo	%v20,%v3,%v16,%v20,2
519	.word	0xe753,0x2200,0x5bad	# vmalo	%v21,%v3,%v18,%v21,2
520	.word	0xe763,0xa200,0x69ad	# vmalo	%v22,%v3,%v10,%v22,2
521	.word	0xe773,0xb200,0x79ad	# vmalo	%v23,%v3,%v11,%v23,2
522	.word	0xe734,0xc200,0x39ad	# vmalo	%v19,%v4,%v12,%v19,2
523	.word	0xe744,0xe200,0x49ad	# vmalo	%v20,%v4,%v14,%v20,2
524	.word	0xe754,0x0200,0x5bad	# vmalo	%v21,%v4,%v16,%v21,2
525	.word	0xe764,0x2200,0x6bad	# vmalo	%v22,%v4,%v18,%v22,2
526	.word	0xe774,0xa200,0x79ad	# vmalo	%v23,%v4,%v10,%v23,2
527	.word	0xe700,000000,0x0044	# vgbm	%v0,0
528	.word	0xe733,000000,0x3c67	# vsumq	%v19,%v19,%v0,3
529	.word	0xe744,000000,0x3c67	# vsumq	%v20,%v20,%v0,3
530	.word	0xe755,000000,0x3c67	# vsumq	%v21,%v21,%v0,3
531	.word	0xe766,000000,0x3c67	# vsumq	%v22,%v22,%v0,3
532	.word	0xe777,000000,0x3c67	# vsumq	%v23,%v23,%v0,3
533	.word	0xe746,0x001a,0x3438	# vesrl	%v4,%v22,26,3
534	.word	0xe713,0x001a,0x3438	# vesrl	%v1,%v19,26,3
535	.word	0xe736,0xc000,0x0668	# vn	%v3,%v22,%v28
536	.word	0xe703,0xc000,0x0668	# vn	%v0,%v19,%v28
537	.word	0xe744,0x7000,0x32f3	# va	%v4,%v4,%v23,3
538	.word	0xe711,0x4000,0x32f3	# va	%v1,%v1,%v20,3
539	.word	0xe774,0x001a,0x3838	# vesrl	%v23,%v4,26,3
540	.word	0xe741,0x001a,0x3838	# vesrl	%v20,%v1,26,3
541	.word	0xe744,0xc000,0x0268	# vn	%v4,%v4,%v28
542	.word	0xe711,0xc000,0x0268	# vn	%v1,%v1,%v28
543	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
544	.word	0xe725,0x4000,0x36f3	# va	%v2,%v21,%v20,3
545	.word	0xe777,0x0002,0x3c30	# vesl	%v23,%v23,2,3
546	.word	0xe752,0x001a,0x3838	# vesrl	%v21,%v2,26,3
547	.word	0xe722,0xc000,0x0268	# vn	%v2,%v2,%v28
548	.word	0xe700,0x7000,0x32f3	# va	%v0,%v0,%v23,3
549	.word	0xe733,0x5000,0x32f3	# va	%v3,%v3,%v21,3
550	.word	0xe730,0x001a,0x3838	# vesrl	%v19,%v0,26,3
551	.word	0xe763,0x001a,0x3838	# vesrl	%v22,%v3,26,3
552	.word	0xe700,0xc000,0x0268	# vn	%v0,%v0,%v28
553	.word	0xe733,0xc000,0x0268	# vn	%v3,%v3,%v28
554	.word	0xe711,0x3000,0x32f3	# va	%v1,%v1,%v19,3
555	.word	0xe744,0x6000,0x32f3	# va	%v4,%v4,%v22,3
556	.word	0xc24e,000000,000000	# clgfi	%r4,0
557	je	.Ldone
558	.word	0xe78b,0x3000,0x0c36	# vlm	%v24,%v27,0x00(%r3)
559	.word	0xe7c0,0x061f,0x3846	# vgm	%v28,6,31,3
560	.word	0xe790,0x0505,0x2046	# vgm	%v9,5,5,2
561	.word	0xe75a,0xb000,0xd78c	# vperm	%v5,%v26,%v27,%v29
562	.word	0xe77a,0xb000,0xf78c	# vperm	%v7,%v26,%v27,%v31
563	.word	0xe7aa,0xb000,0xef8c	# vperm	%v26,%v26,%v27,%v30
564	.word	0xe734,0x1030,0x0806	# vl	%v19,0x30(%r4,%r1)
565	.word	0xe744,0x1060,0x0806	# vl	%v20,0x60(%r4,%r1)
566	.word	0xe765,0xc006,0x3272	# verim	%v6,%v5,%v28,6,3
567	.word	0xe755,0x0020,0x3030	# vesl	%v5,%v5,32,3
568	.word	0xe777,0x001c,0x3030	# vesl	%v7,%v7,28,3
569	.word	0xe78a,0xc012,0x3672	# verim	%v8,%v26,%v28,18,3
570	.word	0xe79a,0xc03a,0x3672	# verim	%v9,%v26,%v28,58,3
571	.word	0xe755,0xc000,0x0268	# vn	%v5,%v5,%v28
572	.word	0xe777,0xc000,0x0268	# vn	%v7,%v7,%v28
573	.word	0xe799,0x0002,0x2038	# vesrl	%v9,%v9,2,2
574	.word	0xe7c0,0x263f,0x3846	# vgm	%v28,38,63,3
575	.word	0xe7a8,0x9000,0xdf8c	# vperm	%v26,%v24,%v25,%v29
576	.word	0xe7b8,0x9000,0xef8c	# vperm	%v27,%v24,%v25,%v30
577	.word	0xe798,0x9000,0xff8c	# vperm	%v25,%v24,%v25,%v31
578	.word	0xe75a,0xc000,0x3672	# verim	%v5,%v26,%v28,0,3
579	.word	0xe76a,0xc026,0x3672	# verim	%v6,%v26,%v28,38,3
580	.word	0xe779,0xc03c,0x3672	# verim	%v7,%v25,%v28,60,3
581	.word	0xe78b,0xc032,0x3672	# verim	%v8,%v27,%v28,50,3
582	.word	0xe7bb,0x0028,0x3c38	# vesrl	%v27,%v27,40,3
583	.word	0xe799,0xb000,0x026a	# vo	%v9,%v9,%v27
584	.word	0xe700,000000,0x318c	# vperm	%v0,%v0,%v0,%v19
585	.word	0xe755,0x4000,0x0268	# vn	%v5,%v5,%v20
586	.word	0xe711,0x1000,0x318c	# vperm	%v1,%v1,%v1,%v19
587	.word	0xe766,0x4000,0x0268	# vn	%v6,%v6,%v20
588	.word	0xe722,0x2000,0x318c	# vperm	%v2,%v2,%v2,%v19
589	.word	0xe777,0x4000,0x0268	# vn	%v7,%v7,%v20
590	.word	0xe733,0x3000,0x318c	# vperm	%v3,%v3,%v3,%v19
591	.word	0xe788,0x4000,0x0268	# vn	%v8,%v8,%v20
592	.word	0xe744,0x4000,0x318c	# vperm	%v4,%v4,%v4,%v19
593	.word	0xe799,0x4000,0x0268	# vn	%v9,%v9,%v20
594	.word	0xe755,000000,0x20f3	# va	%v5,%v5,%v0,2
595	.word	0xe700,000000,0x0044	# vgbm	%v0,0
596	.word	0xe766,0x1000,0x20f3	# va	%v6,%v6,%v1,2
597	.word	0xe710,000000,0x0044	# vgbm	%v1,0
598	.word	0xe777,0x2000,0x20f3	# va	%v7,%v7,%v2,2
599	.word	0xe720,000000,0x0044	# vgbm	%v2,0
600	.word	0xe788,0x3000,0x20f3	# va	%v8,%v8,%v3,2
601	.word	0xe730,000000,0x0044	# vgbm	%v3,0
602	.word	0xe799,0x4000,0x20f3	# va	%v9,%v9,%v4,2
603	.word	0xe740,000000,0x0044	# vgbm	%v4,0
604	lghi	%r4,0
605	j	.Last
606.Ldone:
607	.word	0xe700,0x2000,0x300b	# vstef	%v0,0(%r2),3
608	.word	0xe710,0x2004,0x300b	# vstef	%v1,4(%r2),3
609	.word	0xe720,0x2008,0x300b	# vstef	%v2,8(%r2),3
610	.word	0xe730,0x200c,0x300b	# vstef	%v3,12(%r2),3
611	.word	0xe740,0x2010,0x300b	# vstef	%v4,16(%r2),3
612	ld	%f8,160+0*8(%r15)
613	ld	%f9,160+1*8(%r15)
614	ld	%f10,160+2*8(%r15)
615	ld	%f11,160+3*8(%r15)
616	ld	%f12,160+4*8(%r15)
617	ld	%f13,160+5*8(%r15)
618	ld	%f14,160+6*8(%r15)
619	ld	%f15,160+7*8(%r15)
620	lmg	%r10,%r15,160+8*8+10*8(%r15)
621	br	%r14
622.size	__poly1305_blocks_vx,.-__poly1305_blocks_vx
623.globl	poly1305_emit
624.type	poly1305_emit,@function
625.align	16
626poly1305_emit:
627.Lpoly1305_emit:
628	stmg	%r6,%r10,6*8(%r15)
629	lg	%r8,0(%r2)
630	lg	%r9,8(%r2)
631	lg	%r10,16(%r2)
632	llgfr	%r0,%r8
633	srlg	%r5,%r8,32
634	llgfr	%r1,%r9
635	srlg	%r6,%r9,32
636	srlg	%r7,%r10,32
637	sllg	%r0,%r0,26
638	algr	%r5,%r0
639	sllg	%r0,%r6,52
640	srlg	%r6,%r6,12
641	sllg	%r1,%r1,14
642	algr	%r5,%r0
643	alcgr	%r6,%r1
644	sllg	%r0,%r7,40
645	srlg	%r7,%r7,24
646	lghi	%r1,0
647	algr	%r6,%r0
648	alcgr	%r7,%r1
649	llgf	%r0,24(%r2)
650	lcgr	%r0,%r0
651	xgr	%r5,%r8
652	xgr	%r6,%r9
653	xgr	%r7,%r10
654	ngr	%r5,%r0
655	ngr	%r6,%r0
656	ngr	%r7,%r0
657	xgr	%r5,%r8
658	xgr	%r6,%r9
659	xgr	%r7,%r10
660	lghi	%r0,5
661	lgr	%r8,%r5
662	lgr	%r9,%r6
663	algr	%r5,%r0
664	alcgr	%r6,%r1
665	alcgr	%r7,%r1
666	srlg	%r7,%r7,2
667	slgr	%r1,%r7
668	lg	%r10,0(%r4)
669	lg	%r2,8(%r4)
670	xgr	%r5,%r8
671	xgr	%r6,%r9
672	ngr	%r5,%r1
673	ngr	%r6,%r1
674	xgr	%r5,%r8
675	rllg	%r8,%r10,32
676	xgr	%r6,%r9
677	rllg	%r9,%r2,32
678	algr	%r5,%r8
679	alcgr	%r6,%r9
680	strvg	%r5,0(%r3)
681	strvg	%r6,8(%r3)
682	lmg	%r6,%r10,6*8(%r15)
683	br	%r14
684.size	poly1305_emit,.-poly1305_emit
685.align	16
686.Lconst:
687.long	67438087,336926231,202182159,471670303
688.long	117835012,50462976,387323156,319951120
689.long	252579084,185207048,522067228,454695192
690.long	0,151521030,0,421009174
691.long	0,0,0,202182159
692.long	202182159,0,0,0
693.long	0,0,202182159,0
694.long	4294967295,0,4294967295,4294967295
695.long	4294967295,0,4294967295,0
696.long	0,0,4294967295,0
697.string	"Poly1305 for s390x, CRYPTOGAMS by <appro@openssl.org>"
698