• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2012 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This code was translated into a form compatible with 6a from the public
6// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
7
8// +build amd64,!gccgo,!appengine
9
10#include "const_amd64.h"
11
12// func ladderstep(inout *[5][5]uint64)
13TEXT ·ladderstep(SB),0,$296-8
14	MOVQ inout+0(FP),DI
15
16	MOVQ 40(DI),SI
17	MOVQ 48(DI),DX
18	MOVQ 56(DI),CX
19	MOVQ 64(DI),R8
20	MOVQ 72(DI),R9
21	MOVQ SI,AX
22	MOVQ DX,R10
23	MOVQ CX,R11
24	MOVQ R8,R12
25	MOVQ R9,R13
26	ADDQ ·_2P0(SB),AX
27	ADDQ ·_2P1234(SB),R10
28	ADDQ ·_2P1234(SB),R11
29	ADDQ ·_2P1234(SB),R12
30	ADDQ ·_2P1234(SB),R13
31	ADDQ 80(DI),SI
32	ADDQ 88(DI),DX
33	ADDQ 96(DI),CX
34	ADDQ 104(DI),R8
35	ADDQ 112(DI),R9
36	SUBQ 80(DI),AX
37	SUBQ 88(DI),R10
38	SUBQ 96(DI),R11
39	SUBQ 104(DI),R12
40	SUBQ 112(DI),R13
41	MOVQ SI,0(SP)
42	MOVQ DX,8(SP)
43	MOVQ CX,16(SP)
44	MOVQ R8,24(SP)
45	MOVQ R9,32(SP)
46	MOVQ AX,40(SP)
47	MOVQ R10,48(SP)
48	MOVQ R11,56(SP)
49	MOVQ R12,64(SP)
50	MOVQ R13,72(SP)
51	MOVQ 40(SP),AX
52	MULQ 40(SP)
53	MOVQ AX,SI
54	MOVQ DX,CX
55	MOVQ 40(SP),AX
56	SHLQ $1,AX
57	MULQ 48(SP)
58	MOVQ AX,R8
59	MOVQ DX,R9
60	MOVQ 40(SP),AX
61	SHLQ $1,AX
62	MULQ 56(SP)
63	MOVQ AX,R10
64	MOVQ DX,R11
65	MOVQ 40(SP),AX
66	SHLQ $1,AX
67	MULQ 64(SP)
68	MOVQ AX,R12
69	MOVQ DX,R13
70	MOVQ 40(SP),AX
71	SHLQ $1,AX
72	MULQ 72(SP)
73	MOVQ AX,R14
74	MOVQ DX,R15
75	MOVQ 48(SP),AX
76	MULQ 48(SP)
77	ADDQ AX,R10
78	ADCQ DX,R11
79	MOVQ 48(SP),AX
80	SHLQ $1,AX
81	MULQ 56(SP)
82	ADDQ AX,R12
83	ADCQ DX,R13
84	MOVQ 48(SP),AX
85	SHLQ $1,AX
86	MULQ 64(SP)
87	ADDQ AX,R14
88	ADCQ DX,R15
89	MOVQ 48(SP),DX
90	IMUL3Q $38,DX,AX
91	MULQ 72(SP)
92	ADDQ AX,SI
93	ADCQ DX,CX
94	MOVQ 56(SP),AX
95	MULQ 56(SP)
96	ADDQ AX,R14
97	ADCQ DX,R15
98	MOVQ 56(SP),DX
99	IMUL3Q $38,DX,AX
100	MULQ 64(SP)
101	ADDQ AX,SI
102	ADCQ DX,CX
103	MOVQ 56(SP),DX
104	IMUL3Q $38,DX,AX
105	MULQ 72(SP)
106	ADDQ AX,R8
107	ADCQ DX,R9
108	MOVQ 64(SP),DX
109	IMUL3Q $19,DX,AX
110	MULQ 64(SP)
111	ADDQ AX,R8
112	ADCQ DX,R9
113	MOVQ 64(SP),DX
114	IMUL3Q $38,DX,AX
115	MULQ 72(SP)
116	ADDQ AX,R10
117	ADCQ DX,R11
118	MOVQ 72(SP),DX
119	IMUL3Q $19,DX,AX
120	MULQ 72(SP)
121	ADDQ AX,R12
122	ADCQ DX,R13
123	MOVQ $REDMASK51,DX
124	SHLQ $13,CX:SI
125	ANDQ DX,SI
126	SHLQ $13,R9:R8
127	ANDQ DX,R8
128	ADDQ CX,R8
129	SHLQ $13,R11:R10
130	ANDQ DX,R10
131	ADDQ R9,R10
132	SHLQ $13,R13:R12
133	ANDQ DX,R12
134	ADDQ R11,R12
135	SHLQ $13,R15:R14
136	ANDQ DX,R14
137	ADDQ R13,R14
138	IMUL3Q $19,R15,CX
139	ADDQ CX,SI
140	MOVQ SI,CX
141	SHRQ $51,CX
142	ADDQ R8,CX
143	ANDQ DX,SI
144	MOVQ CX,R8
145	SHRQ $51,CX
146	ADDQ R10,CX
147	ANDQ DX,R8
148	MOVQ CX,R9
149	SHRQ $51,CX
150	ADDQ R12,CX
151	ANDQ DX,R9
152	MOVQ CX,AX
153	SHRQ $51,CX
154	ADDQ R14,CX
155	ANDQ DX,AX
156	MOVQ CX,R10
157	SHRQ $51,CX
158	IMUL3Q $19,CX,CX
159	ADDQ CX,SI
160	ANDQ DX,R10
161	MOVQ SI,80(SP)
162	MOVQ R8,88(SP)
163	MOVQ R9,96(SP)
164	MOVQ AX,104(SP)
165	MOVQ R10,112(SP)
166	MOVQ 0(SP),AX
167	MULQ 0(SP)
168	MOVQ AX,SI
169	MOVQ DX,CX
170	MOVQ 0(SP),AX
171	SHLQ $1,AX
172	MULQ 8(SP)
173	MOVQ AX,R8
174	MOVQ DX,R9
175	MOVQ 0(SP),AX
176	SHLQ $1,AX
177	MULQ 16(SP)
178	MOVQ AX,R10
179	MOVQ DX,R11
180	MOVQ 0(SP),AX
181	SHLQ $1,AX
182	MULQ 24(SP)
183	MOVQ AX,R12
184	MOVQ DX,R13
185	MOVQ 0(SP),AX
186	SHLQ $1,AX
187	MULQ 32(SP)
188	MOVQ AX,R14
189	MOVQ DX,R15
190	MOVQ 8(SP),AX
191	MULQ 8(SP)
192	ADDQ AX,R10
193	ADCQ DX,R11
194	MOVQ 8(SP),AX
195	SHLQ $1,AX
196	MULQ 16(SP)
197	ADDQ AX,R12
198	ADCQ DX,R13
199	MOVQ 8(SP),AX
200	SHLQ $1,AX
201	MULQ 24(SP)
202	ADDQ AX,R14
203	ADCQ DX,R15
204	MOVQ 8(SP),DX
205	IMUL3Q $38,DX,AX
206	MULQ 32(SP)
207	ADDQ AX,SI
208	ADCQ DX,CX
209	MOVQ 16(SP),AX
210	MULQ 16(SP)
211	ADDQ AX,R14
212	ADCQ DX,R15
213	MOVQ 16(SP),DX
214	IMUL3Q $38,DX,AX
215	MULQ 24(SP)
216	ADDQ AX,SI
217	ADCQ DX,CX
218	MOVQ 16(SP),DX
219	IMUL3Q $38,DX,AX
220	MULQ 32(SP)
221	ADDQ AX,R8
222	ADCQ DX,R9
223	MOVQ 24(SP),DX
224	IMUL3Q $19,DX,AX
225	MULQ 24(SP)
226	ADDQ AX,R8
227	ADCQ DX,R9
228	MOVQ 24(SP),DX
229	IMUL3Q $38,DX,AX
230	MULQ 32(SP)
231	ADDQ AX,R10
232	ADCQ DX,R11
233	MOVQ 32(SP),DX
234	IMUL3Q $19,DX,AX
235	MULQ 32(SP)
236	ADDQ AX,R12
237	ADCQ DX,R13
238	MOVQ $REDMASK51,DX
239	SHLQ $13,CX:SI
240	ANDQ DX,SI
241	SHLQ $13,R9:R8
242	ANDQ DX,R8
243	ADDQ CX,R8
244	SHLQ $13,R11:R10
245	ANDQ DX,R10
246	ADDQ R9,R10
247	SHLQ $13,R13:R12
248	ANDQ DX,R12
249	ADDQ R11,R12
250	SHLQ $13,R15:R14
251	ANDQ DX,R14
252	ADDQ R13,R14
253	IMUL3Q $19,R15,CX
254	ADDQ CX,SI
255	MOVQ SI,CX
256	SHRQ $51,CX
257	ADDQ R8,CX
258	ANDQ DX,SI
259	MOVQ CX,R8
260	SHRQ $51,CX
261	ADDQ R10,CX
262	ANDQ DX,R8
263	MOVQ CX,R9
264	SHRQ $51,CX
265	ADDQ R12,CX
266	ANDQ DX,R9
267	MOVQ CX,AX
268	SHRQ $51,CX
269	ADDQ R14,CX
270	ANDQ DX,AX
271	MOVQ CX,R10
272	SHRQ $51,CX
273	IMUL3Q $19,CX,CX
274	ADDQ CX,SI
275	ANDQ DX,R10
276	MOVQ SI,120(SP)
277	MOVQ R8,128(SP)
278	MOVQ R9,136(SP)
279	MOVQ AX,144(SP)
280	MOVQ R10,152(SP)
281	MOVQ SI,SI
282	MOVQ R8,DX
283	MOVQ R9,CX
284	MOVQ AX,R8
285	MOVQ R10,R9
286	ADDQ ·_2P0(SB),SI
287	ADDQ ·_2P1234(SB),DX
288	ADDQ ·_2P1234(SB),CX
289	ADDQ ·_2P1234(SB),R8
290	ADDQ ·_2P1234(SB),R9
291	SUBQ 80(SP),SI
292	SUBQ 88(SP),DX
293	SUBQ 96(SP),CX
294	SUBQ 104(SP),R8
295	SUBQ 112(SP),R9
296	MOVQ SI,160(SP)
297	MOVQ DX,168(SP)
298	MOVQ CX,176(SP)
299	MOVQ R8,184(SP)
300	MOVQ R9,192(SP)
301	MOVQ 120(DI),SI
302	MOVQ 128(DI),DX
303	MOVQ 136(DI),CX
304	MOVQ 144(DI),R8
305	MOVQ 152(DI),R9
306	MOVQ SI,AX
307	MOVQ DX,R10
308	MOVQ CX,R11
309	MOVQ R8,R12
310	MOVQ R9,R13
311	ADDQ ·_2P0(SB),AX
312	ADDQ ·_2P1234(SB),R10
313	ADDQ ·_2P1234(SB),R11
314	ADDQ ·_2P1234(SB),R12
315	ADDQ ·_2P1234(SB),R13
316	ADDQ 160(DI),SI
317	ADDQ 168(DI),DX
318	ADDQ 176(DI),CX
319	ADDQ 184(DI),R8
320	ADDQ 192(DI),R9
321	SUBQ 160(DI),AX
322	SUBQ 168(DI),R10
323	SUBQ 176(DI),R11
324	SUBQ 184(DI),R12
325	SUBQ 192(DI),R13
326	MOVQ SI,200(SP)
327	MOVQ DX,208(SP)
328	MOVQ CX,216(SP)
329	MOVQ R8,224(SP)
330	MOVQ R9,232(SP)
331	MOVQ AX,240(SP)
332	MOVQ R10,248(SP)
333	MOVQ R11,256(SP)
334	MOVQ R12,264(SP)
335	MOVQ R13,272(SP)
336	MOVQ 224(SP),SI
337	IMUL3Q $19,SI,AX
338	MOVQ AX,280(SP)
339	MULQ 56(SP)
340	MOVQ AX,SI
341	MOVQ DX,CX
342	MOVQ 232(SP),DX
343	IMUL3Q $19,DX,AX
344	MOVQ AX,288(SP)
345	MULQ 48(SP)
346	ADDQ AX,SI
347	ADCQ DX,CX
348	MOVQ 200(SP),AX
349	MULQ 40(SP)
350	ADDQ AX,SI
351	ADCQ DX,CX
352	MOVQ 200(SP),AX
353	MULQ 48(SP)
354	MOVQ AX,R8
355	MOVQ DX,R9
356	MOVQ 200(SP),AX
357	MULQ 56(SP)
358	MOVQ AX,R10
359	MOVQ DX,R11
360	MOVQ 200(SP),AX
361	MULQ 64(SP)
362	MOVQ AX,R12
363	MOVQ DX,R13
364	MOVQ 200(SP),AX
365	MULQ 72(SP)
366	MOVQ AX,R14
367	MOVQ DX,R15
368	MOVQ 208(SP),AX
369	MULQ 40(SP)
370	ADDQ AX,R8
371	ADCQ DX,R9
372	MOVQ 208(SP),AX
373	MULQ 48(SP)
374	ADDQ AX,R10
375	ADCQ DX,R11
376	MOVQ 208(SP),AX
377	MULQ 56(SP)
378	ADDQ AX,R12
379	ADCQ DX,R13
380	MOVQ 208(SP),AX
381	MULQ 64(SP)
382	ADDQ AX,R14
383	ADCQ DX,R15
384	MOVQ 208(SP),DX
385	IMUL3Q $19,DX,AX
386	MULQ 72(SP)
387	ADDQ AX,SI
388	ADCQ DX,CX
389	MOVQ 216(SP),AX
390	MULQ 40(SP)
391	ADDQ AX,R10
392	ADCQ DX,R11
393	MOVQ 216(SP),AX
394	MULQ 48(SP)
395	ADDQ AX,R12
396	ADCQ DX,R13
397	MOVQ 216(SP),AX
398	MULQ 56(SP)
399	ADDQ AX,R14
400	ADCQ DX,R15
401	MOVQ 216(SP),DX
402	IMUL3Q $19,DX,AX
403	MULQ 64(SP)
404	ADDQ AX,SI
405	ADCQ DX,CX
406	MOVQ 216(SP),DX
407	IMUL3Q $19,DX,AX
408	MULQ 72(SP)
409	ADDQ AX,R8
410	ADCQ DX,R9
411	MOVQ 224(SP),AX
412	MULQ 40(SP)
413	ADDQ AX,R12
414	ADCQ DX,R13
415	MOVQ 224(SP),AX
416	MULQ 48(SP)
417	ADDQ AX,R14
418	ADCQ DX,R15
419	MOVQ 280(SP),AX
420	MULQ 64(SP)
421	ADDQ AX,R8
422	ADCQ DX,R9
423	MOVQ 280(SP),AX
424	MULQ 72(SP)
425	ADDQ AX,R10
426	ADCQ DX,R11
427	MOVQ 232(SP),AX
428	MULQ 40(SP)
429	ADDQ AX,R14
430	ADCQ DX,R15
431	MOVQ 288(SP),AX
432	MULQ 56(SP)
433	ADDQ AX,R8
434	ADCQ DX,R9
435	MOVQ 288(SP),AX
436	MULQ 64(SP)
437	ADDQ AX,R10
438	ADCQ DX,R11
439	MOVQ 288(SP),AX
440	MULQ 72(SP)
441	ADDQ AX,R12
442	ADCQ DX,R13
443	MOVQ $REDMASK51,DX
444	SHLQ $13,CX:SI
445	ANDQ DX,SI
446	SHLQ $13,R9:R8
447	ANDQ DX,R8
448	ADDQ CX,R8
449	SHLQ $13,R11:R10
450	ANDQ DX,R10
451	ADDQ R9,R10
452	SHLQ $13,R13:R12
453	ANDQ DX,R12
454	ADDQ R11,R12
455	SHLQ $13,R15:R14
456	ANDQ DX,R14
457	ADDQ R13,R14
458	IMUL3Q $19,R15,CX
459	ADDQ CX,SI
460	MOVQ SI,CX
461	SHRQ $51,CX
462	ADDQ R8,CX
463	MOVQ CX,R8
464	SHRQ $51,CX
465	ANDQ DX,SI
466	ADDQ R10,CX
467	MOVQ CX,R9
468	SHRQ $51,CX
469	ANDQ DX,R8
470	ADDQ R12,CX
471	MOVQ CX,AX
472	SHRQ $51,CX
473	ANDQ DX,R9
474	ADDQ R14,CX
475	MOVQ CX,R10
476	SHRQ $51,CX
477	ANDQ DX,AX
478	IMUL3Q $19,CX,CX
479	ADDQ CX,SI
480	ANDQ DX,R10
481	MOVQ SI,40(SP)
482	MOVQ R8,48(SP)
483	MOVQ R9,56(SP)
484	MOVQ AX,64(SP)
485	MOVQ R10,72(SP)
486	MOVQ 264(SP),SI
487	IMUL3Q $19,SI,AX
488	MOVQ AX,200(SP)
489	MULQ 16(SP)
490	MOVQ AX,SI
491	MOVQ DX,CX
492	MOVQ 272(SP),DX
493	IMUL3Q $19,DX,AX
494	MOVQ AX,208(SP)
495	MULQ 8(SP)
496	ADDQ AX,SI
497	ADCQ DX,CX
498	MOVQ 240(SP),AX
499	MULQ 0(SP)
500	ADDQ AX,SI
501	ADCQ DX,CX
502	MOVQ 240(SP),AX
503	MULQ 8(SP)
504	MOVQ AX,R8
505	MOVQ DX,R9
506	MOVQ 240(SP),AX
507	MULQ 16(SP)
508	MOVQ AX,R10
509	MOVQ DX,R11
510	MOVQ 240(SP),AX
511	MULQ 24(SP)
512	MOVQ AX,R12
513	MOVQ DX,R13
514	MOVQ 240(SP),AX
515	MULQ 32(SP)
516	MOVQ AX,R14
517	MOVQ DX,R15
518	MOVQ 248(SP),AX
519	MULQ 0(SP)
520	ADDQ AX,R8
521	ADCQ DX,R9
522	MOVQ 248(SP),AX
523	MULQ 8(SP)
524	ADDQ AX,R10
525	ADCQ DX,R11
526	MOVQ 248(SP),AX
527	MULQ 16(SP)
528	ADDQ AX,R12
529	ADCQ DX,R13
530	MOVQ 248(SP),AX
531	MULQ 24(SP)
532	ADDQ AX,R14
533	ADCQ DX,R15
534	MOVQ 248(SP),DX
535	IMUL3Q $19,DX,AX
536	MULQ 32(SP)
537	ADDQ AX,SI
538	ADCQ DX,CX
539	MOVQ 256(SP),AX
540	MULQ 0(SP)
541	ADDQ AX,R10
542	ADCQ DX,R11
543	MOVQ 256(SP),AX
544	MULQ 8(SP)
545	ADDQ AX,R12
546	ADCQ DX,R13
547	MOVQ 256(SP),AX
548	MULQ 16(SP)
549	ADDQ AX,R14
550	ADCQ DX,R15
551	MOVQ 256(SP),DX
552	IMUL3Q $19,DX,AX
553	MULQ 24(SP)
554	ADDQ AX,SI
555	ADCQ DX,CX
556	MOVQ 256(SP),DX
557	IMUL3Q $19,DX,AX
558	MULQ 32(SP)
559	ADDQ AX,R8
560	ADCQ DX,R9
561	MOVQ 264(SP),AX
562	MULQ 0(SP)
563	ADDQ AX,R12
564	ADCQ DX,R13
565	MOVQ 264(SP),AX
566	MULQ 8(SP)
567	ADDQ AX,R14
568	ADCQ DX,R15
569	MOVQ 200(SP),AX
570	MULQ 24(SP)
571	ADDQ AX,R8
572	ADCQ DX,R9
573	MOVQ 200(SP),AX
574	MULQ 32(SP)
575	ADDQ AX,R10
576	ADCQ DX,R11
577	MOVQ 272(SP),AX
578	MULQ 0(SP)
579	ADDQ AX,R14
580	ADCQ DX,R15
581	MOVQ 208(SP),AX
582	MULQ 16(SP)
583	ADDQ AX,R8
584	ADCQ DX,R9
585	MOVQ 208(SP),AX
586	MULQ 24(SP)
587	ADDQ AX,R10
588	ADCQ DX,R11
589	MOVQ 208(SP),AX
590	MULQ 32(SP)
591	ADDQ AX,R12
592	ADCQ DX,R13
593	MOVQ $REDMASK51,DX
594	SHLQ $13,CX:SI
595	ANDQ DX,SI
596	SHLQ $13,R9:R8
597	ANDQ DX,R8
598	ADDQ CX,R8
599	SHLQ $13,R11:R10
600	ANDQ DX,R10
601	ADDQ R9,R10
602	SHLQ $13,R13:R12
603	ANDQ DX,R12
604	ADDQ R11,R12
605	SHLQ $13,R15:R14
606	ANDQ DX,R14
607	ADDQ R13,R14
608	IMUL3Q $19,R15,CX
609	ADDQ CX,SI
610	MOVQ SI,CX
611	SHRQ $51,CX
612	ADDQ R8,CX
613	MOVQ CX,R8
614	SHRQ $51,CX
615	ANDQ DX,SI
616	ADDQ R10,CX
617	MOVQ CX,R9
618	SHRQ $51,CX
619	ANDQ DX,R8
620	ADDQ R12,CX
621	MOVQ CX,AX
622	SHRQ $51,CX
623	ANDQ DX,R9
624	ADDQ R14,CX
625	MOVQ CX,R10
626	SHRQ $51,CX
627	ANDQ DX,AX
628	IMUL3Q $19,CX,CX
629	ADDQ CX,SI
630	ANDQ DX,R10
631	MOVQ SI,DX
632	MOVQ R8,CX
633	MOVQ R9,R11
634	MOVQ AX,R12
635	MOVQ R10,R13
636	ADDQ ·_2P0(SB),DX
637	ADDQ ·_2P1234(SB),CX
638	ADDQ ·_2P1234(SB),R11
639	ADDQ ·_2P1234(SB),R12
640	ADDQ ·_2P1234(SB),R13
641	ADDQ 40(SP),SI
642	ADDQ 48(SP),R8
643	ADDQ 56(SP),R9
644	ADDQ 64(SP),AX
645	ADDQ 72(SP),R10
646	SUBQ 40(SP),DX
647	SUBQ 48(SP),CX
648	SUBQ 56(SP),R11
649	SUBQ 64(SP),R12
650	SUBQ 72(SP),R13
651	MOVQ SI,120(DI)
652	MOVQ R8,128(DI)
653	MOVQ R9,136(DI)
654	MOVQ AX,144(DI)
655	MOVQ R10,152(DI)
656	MOVQ DX,160(DI)
657	MOVQ CX,168(DI)
658	MOVQ R11,176(DI)
659	MOVQ R12,184(DI)
660	MOVQ R13,192(DI)
661	MOVQ 120(DI),AX
662	MULQ 120(DI)
663	MOVQ AX,SI
664	MOVQ DX,CX
665	MOVQ 120(DI),AX
666	SHLQ $1,AX
667	MULQ 128(DI)
668	MOVQ AX,R8
669	MOVQ DX,R9
670	MOVQ 120(DI),AX
671	SHLQ $1,AX
672	MULQ 136(DI)
673	MOVQ AX,R10
674	MOVQ DX,R11
675	MOVQ 120(DI),AX
676	SHLQ $1,AX
677	MULQ 144(DI)
678	MOVQ AX,R12
679	MOVQ DX,R13
680	MOVQ 120(DI),AX
681	SHLQ $1,AX
682	MULQ 152(DI)
683	MOVQ AX,R14
684	MOVQ DX,R15
685	MOVQ 128(DI),AX
686	MULQ 128(DI)
687	ADDQ AX,R10
688	ADCQ DX,R11
689	MOVQ 128(DI),AX
690	SHLQ $1,AX
691	MULQ 136(DI)
692	ADDQ AX,R12
693	ADCQ DX,R13
694	MOVQ 128(DI),AX
695	SHLQ $1,AX
696	MULQ 144(DI)
697	ADDQ AX,R14
698	ADCQ DX,R15
699	MOVQ 128(DI),DX
700	IMUL3Q $38,DX,AX
701	MULQ 152(DI)
702	ADDQ AX,SI
703	ADCQ DX,CX
704	MOVQ 136(DI),AX
705	MULQ 136(DI)
706	ADDQ AX,R14
707	ADCQ DX,R15
708	MOVQ 136(DI),DX
709	IMUL3Q $38,DX,AX
710	MULQ 144(DI)
711	ADDQ AX,SI
712	ADCQ DX,CX
713	MOVQ 136(DI),DX
714	IMUL3Q $38,DX,AX
715	MULQ 152(DI)
716	ADDQ AX,R8
717	ADCQ DX,R9
718	MOVQ 144(DI),DX
719	IMUL3Q $19,DX,AX
720	MULQ 144(DI)
721	ADDQ AX,R8
722	ADCQ DX,R9
723	MOVQ 144(DI),DX
724	IMUL3Q $38,DX,AX
725	MULQ 152(DI)
726	ADDQ AX,R10
727	ADCQ DX,R11
728	MOVQ 152(DI),DX
729	IMUL3Q $19,DX,AX
730	MULQ 152(DI)
731	ADDQ AX,R12
732	ADCQ DX,R13
733	MOVQ $REDMASK51,DX
734	SHLQ $13,CX:SI
735	ANDQ DX,SI
736	SHLQ $13,R9:R8
737	ANDQ DX,R8
738	ADDQ CX,R8
739	SHLQ $13,R11:R10
740	ANDQ DX,R10
741	ADDQ R9,R10
742	SHLQ $13,R13:R12
743	ANDQ DX,R12
744	ADDQ R11,R12
745	SHLQ $13,R15:R14
746	ANDQ DX,R14
747	ADDQ R13,R14
748	IMUL3Q $19,R15,CX
749	ADDQ CX,SI
750	MOVQ SI,CX
751	SHRQ $51,CX
752	ADDQ R8,CX
753	ANDQ DX,SI
754	MOVQ CX,R8
755	SHRQ $51,CX
756	ADDQ R10,CX
757	ANDQ DX,R8
758	MOVQ CX,R9
759	SHRQ $51,CX
760	ADDQ R12,CX
761	ANDQ DX,R9
762	MOVQ CX,AX
763	SHRQ $51,CX
764	ADDQ R14,CX
765	ANDQ DX,AX
766	MOVQ CX,R10
767	SHRQ $51,CX
768	IMUL3Q $19,CX,CX
769	ADDQ CX,SI
770	ANDQ DX,R10
771	MOVQ SI,120(DI)
772	MOVQ R8,128(DI)
773	MOVQ R9,136(DI)
774	MOVQ AX,144(DI)
775	MOVQ R10,152(DI)
776	MOVQ 160(DI),AX
777	MULQ 160(DI)
778	MOVQ AX,SI
779	MOVQ DX,CX
780	MOVQ 160(DI),AX
781	SHLQ $1,AX
782	MULQ 168(DI)
783	MOVQ AX,R8
784	MOVQ DX,R9
785	MOVQ 160(DI),AX
786	SHLQ $1,AX
787	MULQ 176(DI)
788	MOVQ AX,R10
789	MOVQ DX,R11
790	MOVQ 160(DI),AX
791	SHLQ $1,AX
792	MULQ 184(DI)
793	MOVQ AX,R12
794	MOVQ DX,R13
795	MOVQ 160(DI),AX
796	SHLQ $1,AX
797	MULQ 192(DI)
798	MOVQ AX,R14
799	MOVQ DX,R15
800	MOVQ 168(DI),AX
801	MULQ 168(DI)
802	ADDQ AX,R10
803	ADCQ DX,R11
804	MOVQ 168(DI),AX
805	SHLQ $1,AX
806	MULQ 176(DI)
807	ADDQ AX,R12
808	ADCQ DX,R13
809	MOVQ 168(DI),AX
810	SHLQ $1,AX
811	MULQ 184(DI)
812	ADDQ AX,R14
813	ADCQ DX,R15
814	MOVQ 168(DI),DX
815	IMUL3Q $38,DX,AX
816	MULQ 192(DI)
817	ADDQ AX,SI
818	ADCQ DX,CX
819	MOVQ 176(DI),AX
820	MULQ 176(DI)
821	ADDQ AX,R14
822	ADCQ DX,R15
823	MOVQ 176(DI),DX
824	IMUL3Q $38,DX,AX
825	MULQ 184(DI)
826	ADDQ AX,SI
827	ADCQ DX,CX
828	MOVQ 176(DI),DX
829	IMUL3Q $38,DX,AX
830	MULQ 192(DI)
831	ADDQ AX,R8
832	ADCQ DX,R9
833	MOVQ 184(DI),DX
834	IMUL3Q $19,DX,AX
835	MULQ 184(DI)
836	ADDQ AX,R8
837	ADCQ DX,R9
838	MOVQ 184(DI),DX
839	IMUL3Q $38,DX,AX
840	MULQ 192(DI)
841	ADDQ AX,R10
842	ADCQ DX,R11
843	MOVQ 192(DI),DX
844	IMUL3Q $19,DX,AX
845	MULQ 192(DI)
846	ADDQ AX,R12
847	ADCQ DX,R13
848	MOVQ $REDMASK51,DX
849	SHLQ $13,CX:SI
850	ANDQ DX,SI
851	SHLQ $13,R9:R8
852	ANDQ DX,R8
853	ADDQ CX,R8
854	SHLQ $13,R11:R10
855	ANDQ DX,R10
856	ADDQ R9,R10
857	SHLQ $13,R13:R12
858	ANDQ DX,R12
859	ADDQ R11,R12
860	SHLQ $13,R15:R14
861	ANDQ DX,R14
862	ADDQ R13,R14
863	IMUL3Q $19,R15,CX
864	ADDQ CX,SI
865	MOVQ SI,CX
866	SHRQ $51,CX
867	ADDQ R8,CX
868	ANDQ DX,SI
869	MOVQ CX,R8
870	SHRQ $51,CX
871	ADDQ R10,CX
872	ANDQ DX,R8
873	MOVQ CX,R9
874	SHRQ $51,CX
875	ADDQ R12,CX
876	ANDQ DX,R9
877	MOVQ CX,AX
878	SHRQ $51,CX
879	ADDQ R14,CX
880	ANDQ DX,AX
881	MOVQ CX,R10
882	SHRQ $51,CX
883	IMUL3Q $19,CX,CX
884	ADDQ CX,SI
885	ANDQ DX,R10
886	MOVQ SI,160(DI)
887	MOVQ R8,168(DI)
888	MOVQ R9,176(DI)
889	MOVQ AX,184(DI)
890	MOVQ R10,192(DI)
891	MOVQ 184(DI),SI
892	IMUL3Q $19,SI,AX
893	MOVQ AX,0(SP)
894	MULQ 16(DI)
895	MOVQ AX,SI
896	MOVQ DX,CX
897	MOVQ 192(DI),DX
898	IMUL3Q $19,DX,AX
899	MOVQ AX,8(SP)
900	MULQ 8(DI)
901	ADDQ AX,SI
902	ADCQ DX,CX
903	MOVQ 160(DI),AX
904	MULQ 0(DI)
905	ADDQ AX,SI
906	ADCQ DX,CX
907	MOVQ 160(DI),AX
908	MULQ 8(DI)
909	MOVQ AX,R8
910	MOVQ DX,R9
911	MOVQ 160(DI),AX
912	MULQ 16(DI)
913	MOVQ AX,R10
914	MOVQ DX,R11
915	MOVQ 160(DI),AX
916	MULQ 24(DI)
917	MOVQ AX,R12
918	MOVQ DX,R13
919	MOVQ 160(DI),AX
920	MULQ 32(DI)
921	MOVQ AX,R14
922	MOVQ DX,R15
923	MOVQ 168(DI),AX
924	MULQ 0(DI)
925	ADDQ AX,R8
926	ADCQ DX,R9
927	MOVQ 168(DI),AX
928	MULQ 8(DI)
929	ADDQ AX,R10
930	ADCQ DX,R11
931	MOVQ 168(DI),AX
932	MULQ 16(DI)
933	ADDQ AX,R12
934	ADCQ DX,R13
935	MOVQ 168(DI),AX
936	MULQ 24(DI)
937	ADDQ AX,R14
938	ADCQ DX,R15
939	MOVQ 168(DI),DX
940	IMUL3Q $19,DX,AX
941	MULQ 32(DI)
942	ADDQ AX,SI
943	ADCQ DX,CX
944	MOVQ 176(DI),AX
945	MULQ 0(DI)
946	ADDQ AX,R10
947	ADCQ DX,R11
948	MOVQ 176(DI),AX
949	MULQ 8(DI)
950	ADDQ AX,R12
951	ADCQ DX,R13
952	MOVQ 176(DI),AX
953	MULQ 16(DI)
954	ADDQ AX,R14
955	ADCQ DX,R15
956	MOVQ 176(DI),DX
957	IMUL3Q $19,DX,AX
958	MULQ 24(DI)
959	ADDQ AX,SI
960	ADCQ DX,CX
961	MOVQ 176(DI),DX
962	IMUL3Q $19,DX,AX
963	MULQ 32(DI)
964	ADDQ AX,R8
965	ADCQ DX,R9
966	MOVQ 184(DI),AX
967	MULQ 0(DI)
968	ADDQ AX,R12
969	ADCQ DX,R13
970	MOVQ 184(DI),AX
971	MULQ 8(DI)
972	ADDQ AX,R14
973	ADCQ DX,R15
974	MOVQ 0(SP),AX
975	MULQ 24(DI)
976	ADDQ AX,R8
977	ADCQ DX,R9
978	MOVQ 0(SP),AX
979	MULQ 32(DI)
980	ADDQ AX,R10
981	ADCQ DX,R11
982	MOVQ 192(DI),AX
983	MULQ 0(DI)
984	ADDQ AX,R14
985	ADCQ DX,R15
986	MOVQ 8(SP),AX
987	MULQ 16(DI)
988	ADDQ AX,R8
989	ADCQ DX,R9
990	MOVQ 8(SP),AX
991	MULQ 24(DI)
992	ADDQ AX,R10
993	ADCQ DX,R11
994	MOVQ 8(SP),AX
995	MULQ 32(DI)
996	ADDQ AX,R12
997	ADCQ DX,R13
998	MOVQ $REDMASK51,DX
999	SHLQ $13,CX:SI
1000	ANDQ DX,SI
1001	SHLQ $13,R9:R8
1002	ANDQ DX,R8
1003	ADDQ CX,R8
1004	SHLQ $13,R11:R10
1005	ANDQ DX,R10
1006	ADDQ R9,R10
1007	SHLQ $13,R13:R12
1008	ANDQ DX,R12
1009	ADDQ R11,R12
1010	SHLQ $13,R15:R14
1011	ANDQ DX,R14
1012	ADDQ R13,R14
1013	IMUL3Q $19,R15,CX
1014	ADDQ CX,SI
1015	MOVQ SI,CX
1016	SHRQ $51,CX
1017	ADDQ R8,CX
1018	MOVQ CX,R8
1019	SHRQ $51,CX
1020	ANDQ DX,SI
1021	ADDQ R10,CX
1022	MOVQ CX,R9
1023	SHRQ $51,CX
1024	ANDQ DX,R8
1025	ADDQ R12,CX
1026	MOVQ CX,AX
1027	SHRQ $51,CX
1028	ANDQ DX,R9
1029	ADDQ R14,CX
1030	MOVQ CX,R10
1031	SHRQ $51,CX
1032	ANDQ DX,AX
1033	IMUL3Q $19,CX,CX
1034	ADDQ CX,SI
1035	ANDQ DX,R10
1036	MOVQ SI,160(DI)
1037	MOVQ R8,168(DI)
1038	MOVQ R9,176(DI)
1039	MOVQ AX,184(DI)
1040	MOVQ R10,192(DI)
1041	MOVQ 144(SP),SI
1042	IMUL3Q $19,SI,AX
1043	MOVQ AX,0(SP)
1044	MULQ 96(SP)
1045	MOVQ AX,SI
1046	MOVQ DX,CX
1047	MOVQ 152(SP),DX
1048	IMUL3Q $19,DX,AX
1049	MOVQ AX,8(SP)
1050	MULQ 88(SP)
1051	ADDQ AX,SI
1052	ADCQ DX,CX
1053	MOVQ 120(SP),AX
1054	MULQ 80(SP)
1055	ADDQ AX,SI
1056	ADCQ DX,CX
1057	MOVQ 120(SP),AX
1058	MULQ 88(SP)
1059	MOVQ AX,R8
1060	MOVQ DX,R9
1061	MOVQ 120(SP),AX
1062	MULQ 96(SP)
1063	MOVQ AX,R10
1064	MOVQ DX,R11
1065	MOVQ 120(SP),AX
1066	MULQ 104(SP)
1067	MOVQ AX,R12
1068	MOVQ DX,R13
1069	MOVQ 120(SP),AX
1070	MULQ 112(SP)
1071	MOVQ AX,R14
1072	MOVQ DX,R15
1073	MOVQ 128(SP),AX
1074	MULQ 80(SP)
1075	ADDQ AX,R8
1076	ADCQ DX,R9
1077	MOVQ 128(SP),AX
1078	MULQ 88(SP)
1079	ADDQ AX,R10
1080	ADCQ DX,R11
1081	MOVQ 128(SP),AX
1082	MULQ 96(SP)
1083	ADDQ AX,R12
1084	ADCQ DX,R13
1085	MOVQ 128(SP),AX
1086	MULQ 104(SP)
1087	ADDQ AX,R14
1088	ADCQ DX,R15
1089	MOVQ 128(SP),DX
1090	IMUL3Q $19,DX,AX
1091	MULQ 112(SP)
1092	ADDQ AX,SI
1093	ADCQ DX,CX
1094	MOVQ 136(SP),AX
1095	MULQ 80(SP)
1096	ADDQ AX,R10
1097	ADCQ DX,R11
1098	MOVQ 136(SP),AX
1099	MULQ 88(SP)
1100	ADDQ AX,R12
1101	ADCQ DX,R13
1102	MOVQ 136(SP),AX
1103	MULQ 96(SP)
1104	ADDQ AX,R14
1105	ADCQ DX,R15
1106	MOVQ 136(SP),DX
1107	IMUL3Q $19,DX,AX
1108	MULQ 104(SP)
1109	ADDQ AX,SI
1110	ADCQ DX,CX
1111	MOVQ 136(SP),DX
1112	IMUL3Q $19,DX,AX
1113	MULQ 112(SP)
1114	ADDQ AX,R8
1115	ADCQ DX,R9
1116	MOVQ 144(SP),AX
1117	MULQ 80(SP)
1118	ADDQ AX,R12
1119	ADCQ DX,R13
1120	MOVQ 144(SP),AX
1121	MULQ 88(SP)
1122	ADDQ AX,R14
1123	ADCQ DX,R15
1124	MOVQ 0(SP),AX
1125	MULQ 104(SP)
1126	ADDQ AX,R8
1127	ADCQ DX,R9
1128	MOVQ 0(SP),AX
1129	MULQ 112(SP)
1130	ADDQ AX,R10
1131	ADCQ DX,R11
1132	MOVQ 152(SP),AX
1133	MULQ 80(SP)
1134	ADDQ AX,R14
1135	ADCQ DX,R15
1136	MOVQ 8(SP),AX
1137	MULQ 96(SP)
1138	ADDQ AX,R8
1139	ADCQ DX,R9
1140	MOVQ 8(SP),AX
1141	MULQ 104(SP)
1142	ADDQ AX,R10
1143	ADCQ DX,R11
1144	MOVQ 8(SP),AX
1145	MULQ 112(SP)
1146	ADDQ AX,R12
1147	ADCQ DX,R13
1148	MOVQ $REDMASK51,DX
1149	SHLQ $13,CX:SI
1150	ANDQ DX,SI
1151	SHLQ $13,R9:R8
1152	ANDQ DX,R8
1153	ADDQ CX,R8
1154	SHLQ $13,R11:R10
1155	ANDQ DX,R10
1156	ADDQ R9,R10
1157	SHLQ $13,R13:R12
1158	ANDQ DX,R12
1159	ADDQ R11,R12
1160	SHLQ $13,R15:R14
1161	ANDQ DX,R14
1162	ADDQ R13,R14
1163	IMUL3Q $19,R15,CX
1164	ADDQ CX,SI
1165	MOVQ SI,CX
1166	SHRQ $51,CX
1167	ADDQ R8,CX
1168	MOVQ CX,R8
1169	SHRQ $51,CX
1170	ANDQ DX,SI
1171	ADDQ R10,CX
1172	MOVQ CX,R9
1173	SHRQ $51,CX
1174	ANDQ DX,R8
1175	ADDQ R12,CX
1176	MOVQ CX,AX
1177	SHRQ $51,CX
1178	ANDQ DX,R9
1179	ADDQ R14,CX
1180	MOVQ CX,R10
1181	SHRQ $51,CX
1182	ANDQ DX,AX
1183	IMUL3Q $19,CX,CX
1184	ADDQ CX,SI
1185	ANDQ DX,R10
1186	MOVQ SI,40(DI)
1187	MOVQ R8,48(DI)
1188	MOVQ R9,56(DI)
1189	MOVQ AX,64(DI)
1190	MOVQ R10,72(DI)
1191	MOVQ 160(SP),AX
1192	MULQ ·_121666_213(SB)
1193	SHRQ $13,AX
1194	MOVQ AX,SI
1195	MOVQ DX,CX
1196	MOVQ 168(SP),AX
1197	MULQ ·_121666_213(SB)
1198	SHRQ $13,AX
1199	ADDQ AX,CX
1200	MOVQ DX,R8
1201	MOVQ 176(SP),AX
1202	MULQ ·_121666_213(SB)
1203	SHRQ $13,AX
1204	ADDQ AX,R8
1205	MOVQ DX,R9
1206	MOVQ 184(SP),AX
1207	MULQ ·_121666_213(SB)
1208	SHRQ $13,AX
1209	ADDQ AX,R9
1210	MOVQ DX,R10
1211	MOVQ 192(SP),AX
1212	MULQ ·_121666_213(SB)
1213	SHRQ $13,AX
1214	ADDQ AX,R10
1215	IMUL3Q $19,DX,DX
1216	ADDQ DX,SI
1217	ADDQ 80(SP),SI
1218	ADDQ 88(SP),CX
1219	ADDQ 96(SP),R8
1220	ADDQ 104(SP),R9
1221	ADDQ 112(SP),R10
1222	MOVQ SI,80(DI)
1223	MOVQ CX,88(DI)
1224	MOVQ R8,96(DI)
1225	MOVQ R9,104(DI)
1226	MOVQ R10,112(DI)
1227	MOVQ 104(DI),SI
1228	IMUL3Q $19,SI,AX
1229	MOVQ AX,0(SP)
1230	MULQ 176(SP)
1231	MOVQ AX,SI
1232	MOVQ DX,CX
1233	MOVQ 112(DI),DX
1234	IMUL3Q $19,DX,AX
1235	MOVQ AX,8(SP)
1236	MULQ 168(SP)
1237	ADDQ AX,SI
1238	ADCQ DX,CX
1239	MOVQ 80(DI),AX
1240	MULQ 160(SP)
1241	ADDQ AX,SI
1242	ADCQ DX,CX
1243	MOVQ 80(DI),AX
1244	MULQ 168(SP)
1245	MOVQ AX,R8
1246	MOVQ DX,R9
1247	MOVQ 80(DI),AX
1248	MULQ 176(SP)
1249	MOVQ AX,R10
1250	MOVQ DX,R11
1251	MOVQ 80(DI),AX
1252	MULQ 184(SP)
1253	MOVQ AX,R12
1254	MOVQ DX,R13
1255	MOVQ 80(DI),AX
1256	MULQ 192(SP)
1257	MOVQ AX,R14
1258	MOVQ DX,R15
1259	MOVQ 88(DI),AX
1260	MULQ 160(SP)
1261	ADDQ AX,R8
1262	ADCQ DX,R9
1263	MOVQ 88(DI),AX
1264	MULQ 168(SP)
1265	ADDQ AX,R10
1266	ADCQ DX,R11
1267	MOVQ 88(DI),AX
1268	MULQ 176(SP)
1269	ADDQ AX,R12
1270	ADCQ DX,R13
1271	MOVQ 88(DI),AX
1272	MULQ 184(SP)
1273	ADDQ AX,R14
1274	ADCQ DX,R15
1275	MOVQ 88(DI),DX
1276	IMUL3Q $19,DX,AX
1277	MULQ 192(SP)
1278	ADDQ AX,SI
1279	ADCQ DX,CX
1280	MOVQ 96(DI),AX
1281	MULQ 160(SP)
1282	ADDQ AX,R10
1283	ADCQ DX,R11
1284	MOVQ 96(DI),AX
1285	MULQ 168(SP)
1286	ADDQ AX,R12
1287	ADCQ DX,R13
1288	MOVQ 96(DI),AX
1289	MULQ 176(SP)
1290	ADDQ AX,R14
1291	ADCQ DX,R15
1292	MOVQ 96(DI),DX
1293	IMUL3Q $19,DX,AX
1294	MULQ 184(SP)
1295	ADDQ AX,SI
1296	ADCQ DX,CX
1297	MOVQ 96(DI),DX
1298	IMUL3Q $19,DX,AX
1299	MULQ 192(SP)
1300	ADDQ AX,R8
1301	ADCQ DX,R9
1302	MOVQ 104(DI),AX
1303	MULQ 160(SP)
1304	ADDQ AX,R12
1305	ADCQ DX,R13
1306	MOVQ 104(DI),AX
1307	MULQ 168(SP)
1308	ADDQ AX,R14
1309	ADCQ DX,R15
1310	MOVQ 0(SP),AX
1311	MULQ 184(SP)
1312	ADDQ AX,R8
1313	ADCQ DX,R9
1314	MOVQ 0(SP),AX
1315	MULQ 192(SP)
1316	ADDQ AX,R10
1317	ADCQ DX,R11
1318	MOVQ 112(DI),AX
1319	MULQ 160(SP)
1320	ADDQ AX,R14
1321	ADCQ DX,R15
1322	MOVQ 8(SP),AX
1323	MULQ 176(SP)
1324	ADDQ AX,R8
1325	ADCQ DX,R9
1326	MOVQ 8(SP),AX
1327	MULQ 184(SP)
1328	ADDQ AX,R10
1329	ADCQ DX,R11
1330	MOVQ 8(SP),AX
1331	MULQ 192(SP)
1332	ADDQ AX,R12
1333	ADCQ DX,R13
1334	MOVQ $REDMASK51,DX
1335	SHLQ $13,CX:SI
1336	ANDQ DX,SI
1337	SHLQ $13,R9:R8
1338	ANDQ DX,R8
1339	ADDQ CX,R8
1340	SHLQ $13,R11:R10
1341	ANDQ DX,R10
1342	ADDQ R9,R10
1343	SHLQ $13,R13:R12
1344	ANDQ DX,R12
1345	ADDQ R11,R12
1346	SHLQ $13,R15:R14
1347	ANDQ DX,R14
1348	ADDQ R13,R14
1349	IMUL3Q $19,R15,CX
1350	ADDQ CX,SI
1351	MOVQ SI,CX
1352	SHRQ $51,CX
1353	ADDQ R8,CX
1354	MOVQ CX,R8
1355	SHRQ $51,CX
1356	ANDQ DX,SI
1357	ADDQ R10,CX
1358	MOVQ CX,R9
1359	SHRQ $51,CX
1360	ANDQ DX,R8
1361	ADDQ R12,CX
1362	MOVQ CX,AX
1363	SHRQ $51,CX
1364	ANDQ DX,R9
1365	ADDQ R14,CX
1366	MOVQ CX,R10
1367	SHRQ $51,CX
1368	ANDQ DX,AX
1369	IMUL3Q $19,CX,CX
1370	ADDQ CX,SI
1371	ANDQ DX,R10
1372	MOVQ SI,80(DI)
1373	MOVQ R8,88(DI)
1374	MOVQ R9,96(DI)
1375	MOVQ AX,104(DI)
1376	MOVQ R10,112(DI)
1377	RET
1378