sha512-586.S revision 299966
1# $FreeBSD: stable/10/secure/lib/libcrypto/i386/sha512-586.S 299966 2016-05-16 19:30:27Z jkim $
2# Do not modify. This file is auto-generated from sha512-586.pl.
3#ifdef PIC
4.file	"sha512-586.S"
5.text
6.globl	sha512_block_data_order
7.type	sha512_block_data_order,@function
8.align	16
9sha512_block_data_order:
10.L_sha512_block_data_order_begin:
11	pushl	%ebp
12	pushl	%ebx
13	pushl	%esi
14	pushl	%edi
15	movl	20(%esp),%esi
16	movl	24(%esp),%edi
17	movl	28(%esp),%eax
18	movl	%esp,%ebx
19	call	.L000pic_point
20.L000pic_point:
21	popl	%ebp
22	leal	.L001K512-.L000pic_point(%ebp),%ebp
23	subl	$16,%esp
24	andl	$-64,%esp
25	shll	$7,%eax
26	addl	%edi,%eax
27	movl	%esi,(%esp)
28	movl	%edi,4(%esp)
29	movl	%eax,8(%esp)
30	movl	%ebx,12(%esp)
31	leal	_GLOBAL_OFFSET_TABLE_+[.-.L001K512](%ebp),%edx
32	movl	OPENSSL_ia32cap_P@GOT(%edx),%edx
33	btl	$26,(%edx)
34	jnc	.L002loop_x86
35	movq	(%esi),%mm0
36	movq	8(%esi),%mm1
37	movq	16(%esi),%mm2
38	movq	24(%esi),%mm3
39	movq	32(%esi),%mm4
40	movq	40(%esi),%mm5
41	movq	48(%esi),%mm6
42	movq	56(%esi),%mm7
43	subl	$80,%esp
44.align	16
45.L003loop_sse2:
46	movq	%mm1,8(%esp)
47	movq	%mm2,16(%esp)
48	movq	%mm3,24(%esp)
49	movq	%mm5,40(%esp)
50	movq	%mm6,48(%esp)
51	movq	%mm7,56(%esp)
52	movl	(%edi),%ecx
53	movl	4(%edi),%edx
54	addl	$8,%edi
55	bswap	%ecx
56	bswap	%edx
57	movl	%ecx,76(%esp)
58	movl	%edx,72(%esp)
59.align	16
60.L00400_14_sse2:
61	movl	(%edi),%eax
62	movl	4(%edi),%ebx
63	addl	$8,%edi
64	bswap	%eax
65	bswap	%ebx
66	movl	%eax,68(%esp)
67	movl	%ebx,64(%esp)
68	movq	40(%esp),%mm5
69	movq	48(%esp),%mm6
70	movq	56(%esp),%mm7
71	movq	%mm4,%mm1
72	movq	%mm4,%mm2
73	psrlq	$14,%mm1
74	movq	%mm4,32(%esp)
75	psllq	$23,%mm2
76	movq	%mm1,%mm3
77	psrlq	$4,%mm1
78	pxor	%mm2,%mm3
79	psllq	$23,%mm2
80	pxor	%mm1,%mm3
81	psrlq	$23,%mm1
82	pxor	%mm2,%mm3
83	psllq	$4,%mm2
84	pxor	%mm1,%mm3
85	paddq	(%ebp),%mm7
86	pxor	%mm2,%mm3
87	pxor	%mm6,%mm5
88	movq	8(%esp),%mm1
89	pand	%mm4,%mm5
90	movq	16(%esp),%mm2
91	pxor	%mm6,%mm5
92	movq	24(%esp),%mm4
93	paddq	%mm5,%mm3
94	movq	%mm0,(%esp)
95	paddq	%mm7,%mm3
96	movq	%mm0,%mm5
97	movq	%mm0,%mm6
98	paddq	72(%esp),%mm3
99	psrlq	$28,%mm5
100	paddq	%mm3,%mm4
101	psllq	$25,%mm6
102	movq	%mm5,%mm7
103	psrlq	$6,%mm5
104	pxor	%mm6,%mm7
105	psllq	$5,%mm6
106	pxor	%mm5,%mm7
107	psrlq	$5,%mm5
108	pxor	%mm6,%mm7
109	psllq	$6,%mm6
110	pxor	%mm5,%mm7
111	subl	$8,%esp
112	pxor	%mm6,%mm7
113	movq	%mm0,%mm5
114	por	%mm2,%mm0
115	pand	%mm2,%mm5
116	pand	%mm1,%mm0
117	por	%mm0,%mm5
118	paddq	%mm5,%mm7
119	movq	%mm3,%mm0
120	movb	(%ebp),%dl
121	paddq	%mm7,%mm0
122	addl	$8,%ebp
123	cmpb	$53,%dl
124	jne	.L00400_14_sse2
125	movq	40(%esp),%mm5
126	movq	48(%esp),%mm6
127	movq	56(%esp),%mm7
128	movq	%mm4,%mm1
129	movq	%mm4,%mm2
130	psrlq	$14,%mm1
131	movq	%mm4,32(%esp)
132	psllq	$23,%mm2
133	movq	%mm1,%mm3
134	psrlq	$4,%mm1
135	pxor	%mm2,%mm3
136	psllq	$23,%mm2
137	pxor	%mm1,%mm3
138	psrlq	$23,%mm1
139	pxor	%mm2,%mm3
140	psllq	$4,%mm2
141	pxor	%mm1,%mm3
142	paddq	(%ebp),%mm7
143	pxor	%mm2,%mm3
144	pxor	%mm6,%mm5
145	movq	8(%esp),%mm1
146	pand	%mm4,%mm5
147	movq	16(%esp),%mm2
148	pxor	%mm6,%mm5
149	movq	24(%esp),%mm4
150	paddq	%mm5,%mm3
151	movq	%mm0,(%esp)
152	paddq	%mm7,%mm3
153	movq	%mm0,%mm5
154	movq	%mm0,%mm6
155	paddq	72(%esp),%mm3
156	psrlq	$28,%mm5
157	paddq	%mm3,%mm4
158	psllq	$25,%mm6
159	movq	%mm5,%mm7
160	psrlq	$6,%mm5
161	pxor	%mm6,%mm7
162	psllq	$5,%mm6
163	pxor	%mm5,%mm7
164	psrlq	$5,%mm5
165	pxor	%mm6,%mm7
166	psllq	$6,%mm6
167	pxor	%mm5,%mm7
168	subl	$8,%esp
169	pxor	%mm6,%mm7
170	movq	%mm0,%mm5
171	por	%mm2,%mm0
172	movq	88(%esp),%mm6
173	pand	%mm2,%mm5
174	pand	%mm1,%mm0
175	movq	192(%esp),%mm2
176	por	%mm0,%mm5
177	paddq	%mm5,%mm7
178	movq	%mm3,%mm0
179	movb	(%ebp),%dl
180	paddq	%mm7,%mm0
181	addl	$8,%ebp
182.align	16
183.L00516_79_sse2:
184	movq	%mm2,%mm1
185	psrlq	$1,%mm2
186	movq	%mm6,%mm7
187	psrlq	$6,%mm6
188	movq	%mm2,%mm3
189	psrlq	$6,%mm2
190	movq	%mm6,%mm5
191	psrlq	$13,%mm6
192	pxor	%mm2,%mm3
193	psrlq	$1,%mm2
194	pxor	%mm6,%mm5
195	psrlq	$42,%mm6
196	pxor	%mm2,%mm3
197	movq	200(%esp),%mm2
198	psllq	$56,%mm1
199	pxor	%mm6,%mm5
200	psllq	$3,%mm7
201	pxor	%mm1,%mm3
202	paddq	128(%esp),%mm2
203	psllq	$7,%mm1
204	pxor	%mm7,%mm5
205	psllq	$42,%mm7
206	pxor	%mm1,%mm3
207	pxor	%mm7,%mm5
208	paddq	%mm5,%mm3
209	paddq	%mm2,%mm3
210	movq	%mm3,72(%esp)
211	movq	40(%esp),%mm5
212	movq	48(%esp),%mm6
213	movq	56(%esp),%mm7
214	movq	%mm4,%mm1
215	movq	%mm4,%mm2
216	psrlq	$14,%mm1
217	movq	%mm4,32(%esp)
218	psllq	$23,%mm2
219	movq	%mm1,%mm3
220	psrlq	$4,%mm1
221	pxor	%mm2,%mm3
222	psllq	$23,%mm2
223	pxor	%mm1,%mm3
224	psrlq	$23,%mm1
225	pxor	%mm2,%mm3
226	psllq	$4,%mm2
227	pxor	%mm1,%mm3
228	paddq	(%ebp),%mm7
229	pxor	%mm2,%mm3
230	pxor	%mm6,%mm5
231	movq	8(%esp),%mm1
232	pand	%mm4,%mm5
233	movq	16(%esp),%mm2
234	pxor	%mm6,%mm5
235	movq	24(%esp),%mm4
236	paddq	%mm5,%mm3
237	movq	%mm0,(%esp)
238	paddq	%mm7,%mm3
239	movq	%mm0,%mm5
240	movq	%mm0,%mm6
241	paddq	72(%esp),%mm3
242	psrlq	$28,%mm5
243	paddq	%mm3,%mm4
244	psllq	$25,%mm6
245	movq	%mm5,%mm7
246	psrlq	$6,%mm5
247	pxor	%mm6,%mm7
248	psllq	$5,%mm6
249	pxor	%mm5,%mm7
250	psrlq	$5,%mm5
251	pxor	%mm6,%mm7
252	psllq	$6,%mm6
253	pxor	%mm5,%mm7
254	subl	$8,%esp
255	pxor	%mm6,%mm7
256	movq	%mm0,%mm5
257	por	%mm2,%mm0
258	movq	88(%esp),%mm6
259	pand	%mm2,%mm5
260	pand	%mm1,%mm0
261	movq	192(%esp),%mm2
262	por	%mm0,%mm5
263	paddq	%mm5,%mm7
264	movq	%mm3,%mm0
265	movb	(%ebp),%dl
266	paddq	%mm7,%mm0
267	addl	$8,%ebp
268	cmpb	$23,%dl
269	jne	.L00516_79_sse2
270	movq	8(%esp),%mm1
271	movq	16(%esp),%mm2
272	movq	24(%esp),%mm3
273	movq	40(%esp),%mm5
274	movq	48(%esp),%mm6
275	movq	56(%esp),%mm7
276	paddq	(%esi),%mm0
277	paddq	8(%esi),%mm1
278	paddq	16(%esi),%mm2
279	paddq	24(%esi),%mm3
280	paddq	32(%esi),%mm4
281	paddq	40(%esi),%mm5
282	paddq	48(%esi),%mm6
283	paddq	56(%esi),%mm7
284	movq	%mm0,(%esi)
285	movq	%mm1,8(%esi)
286	movq	%mm2,16(%esi)
287	movq	%mm3,24(%esi)
288	movq	%mm4,32(%esi)
289	movq	%mm5,40(%esi)
290	movq	%mm6,48(%esi)
291	movq	%mm7,56(%esi)
292	addl	$640,%esp
293	subl	$640,%ebp
294	cmpl	88(%esp),%edi
295	jb	.L003loop_sse2
296	emms
297	movl	92(%esp),%esp
298	popl	%edi
299	popl	%esi
300	popl	%ebx
301	popl	%ebp
302	ret
303.align	16
304.L002loop_x86:
305	movl	(%edi),%eax
306	movl	4(%edi),%ebx
307	movl	8(%edi),%ecx
308	movl	12(%edi),%edx
309	bswap	%eax
310	bswap	%ebx
311	bswap	%ecx
312	bswap	%edx
313	pushl	%eax
314	pushl	%ebx
315	pushl	%ecx
316	pushl	%edx
317	movl	16(%edi),%eax
318	movl	20(%edi),%ebx
319	movl	24(%edi),%ecx
320	movl	28(%edi),%edx
321	bswap	%eax
322	bswap	%ebx
323	bswap	%ecx
324	bswap	%edx
325	pushl	%eax
326	pushl	%ebx
327	pushl	%ecx
328	pushl	%edx
329	movl	32(%edi),%eax
330	movl	36(%edi),%ebx
331	movl	40(%edi),%ecx
332	movl	44(%edi),%edx
333	bswap	%eax
334	bswap	%ebx
335	bswap	%ecx
336	bswap	%edx
337	pushl	%eax
338	pushl	%ebx
339	pushl	%ecx
340	pushl	%edx
341	movl	48(%edi),%eax
342	movl	52(%edi),%ebx
343	movl	56(%edi),%ecx
344	movl	60(%edi),%edx
345	bswap	%eax
346	bswap	%ebx
347	bswap	%ecx
348	bswap	%edx
349	pushl	%eax
350	pushl	%ebx
351	pushl	%ecx
352	pushl	%edx
353	movl	64(%edi),%eax
354	movl	68(%edi),%ebx
355	movl	72(%edi),%ecx
356	movl	76(%edi),%edx
357	bswap	%eax
358	bswap	%ebx
359	bswap	%ecx
360	bswap	%edx
361	pushl	%eax
362	pushl	%ebx
363	pushl	%ecx
364	pushl	%edx
365	movl	80(%edi),%eax
366	movl	84(%edi),%ebx
367	movl	88(%edi),%ecx
368	movl	92(%edi),%edx
369	bswap	%eax
370	bswap	%ebx
371	bswap	%ecx
372	bswap	%edx
373	pushl	%eax
374	pushl	%ebx
375	pushl	%ecx
376	pushl	%edx
377	movl	96(%edi),%eax
378	movl	100(%edi),%ebx
379	movl	104(%edi),%ecx
380	movl	108(%edi),%edx
381	bswap	%eax
382	bswap	%ebx
383	bswap	%ecx
384	bswap	%edx
385	pushl	%eax
386	pushl	%ebx
387	pushl	%ecx
388	pushl	%edx
389	movl	112(%edi),%eax
390	movl	116(%edi),%ebx
391	movl	120(%edi),%ecx
392	movl	124(%edi),%edx
393	bswap	%eax
394	bswap	%ebx
395	bswap	%ecx
396	bswap	%edx
397	pushl	%eax
398	pushl	%ebx
399	pushl	%ecx
400	pushl	%edx
401	addl	$128,%edi
402	subl	$72,%esp
403	movl	%edi,204(%esp)
404	leal	8(%esp),%edi
405	movl	$16,%ecx
406.long	2784229001
407.align	16
408.L00600_15_x86:
409	movl	40(%esp),%ecx
410	movl	44(%esp),%edx
411	movl	%ecx,%esi
412	shrl	$9,%ecx
413	movl	%edx,%edi
414	shrl	$9,%edx
415	movl	%ecx,%ebx
416	shll	$14,%esi
417	movl	%edx,%eax
418	shll	$14,%edi
419	xorl	%esi,%ebx
420	shrl	$5,%ecx
421	xorl	%edi,%eax
422	shrl	$5,%edx
423	xorl	%ecx,%eax
424	shll	$4,%esi
425	xorl	%edx,%ebx
426	shll	$4,%edi
427	xorl	%esi,%ebx
428	shrl	$4,%ecx
429	xorl	%edi,%eax
430	shrl	$4,%edx
431	xorl	%ecx,%eax
432	shll	$5,%esi
433	xorl	%edx,%ebx
434	shll	$5,%edi
435	xorl	%esi,%eax
436	xorl	%edi,%ebx
437	movl	48(%esp),%ecx
438	movl	52(%esp),%edx
439	movl	56(%esp),%esi
440	movl	60(%esp),%edi
441	addl	64(%esp),%eax
442	adcl	68(%esp),%ebx
443	xorl	%esi,%ecx
444	xorl	%edi,%edx
445	andl	40(%esp),%ecx
446	andl	44(%esp),%edx
447	addl	192(%esp),%eax
448	adcl	196(%esp),%ebx
449	xorl	%esi,%ecx
450	xorl	%edi,%edx
451	movl	(%ebp),%esi
452	movl	4(%ebp),%edi
453	addl	%ecx,%eax
454	adcl	%edx,%ebx
455	movl	32(%esp),%ecx
456	movl	36(%esp),%edx
457	addl	%esi,%eax
458	adcl	%edi,%ebx
459	movl	%eax,(%esp)
460	movl	%ebx,4(%esp)
461	addl	%ecx,%eax
462	adcl	%edx,%ebx
463	movl	8(%esp),%ecx
464	movl	12(%esp),%edx
465	movl	%eax,32(%esp)
466	movl	%ebx,36(%esp)
467	movl	%ecx,%esi
468	shrl	$2,%ecx
469	movl	%edx,%edi
470	shrl	$2,%edx
471	movl	%ecx,%ebx
472	shll	$4,%esi
473	movl	%edx,%eax
474	shll	$4,%edi
475	xorl	%esi,%ebx
476	shrl	$5,%ecx
477	xorl	%edi,%eax
478	shrl	$5,%edx
479	xorl	%ecx,%ebx
480	shll	$21,%esi
481	xorl	%edx,%eax
482	shll	$21,%edi
483	xorl	%esi,%eax
484	shrl	$21,%ecx
485	xorl	%edi,%ebx
486	shrl	$21,%edx
487	xorl	%ecx,%eax
488	shll	$5,%esi
489	xorl	%edx,%ebx
490	shll	$5,%edi
491	xorl	%esi,%eax
492	xorl	%edi,%ebx
493	movl	8(%esp),%ecx
494	movl	12(%esp),%edx
495	movl	16(%esp),%esi
496	movl	20(%esp),%edi
497	addl	(%esp),%eax
498	adcl	4(%esp),%ebx
499	orl	%esi,%ecx
500	orl	%edi,%edx
501	andl	24(%esp),%ecx
502	andl	28(%esp),%edx
503	andl	8(%esp),%esi
504	andl	12(%esp),%edi
505	orl	%esi,%ecx
506	orl	%edi,%edx
507	addl	%ecx,%eax
508	adcl	%edx,%ebx
509	movl	%eax,(%esp)
510	movl	%ebx,4(%esp)
511	movb	(%ebp),%dl
512	subl	$8,%esp
513	leal	8(%ebp),%ebp
514	cmpb	$148,%dl
515	jne	.L00600_15_x86
516.align	16
517.L00716_79_x86:
518	movl	312(%esp),%ecx
519	movl	316(%esp),%edx
520	movl	%ecx,%esi
521	shrl	$1,%ecx
522	movl	%edx,%edi
523	shrl	$1,%edx
524	movl	%ecx,%eax
525	shll	$24,%esi
526	movl	%edx,%ebx
527	shll	$24,%edi
528	xorl	%esi,%ebx
529	shrl	$6,%ecx
530	xorl	%edi,%eax
531	shrl	$6,%edx
532	xorl	%ecx,%eax
533	shll	$7,%esi
534	xorl	%edx,%ebx
535	shll	$1,%edi
536	xorl	%esi,%ebx
537	shrl	$1,%ecx
538	xorl	%edi,%eax
539	shrl	$1,%edx
540	xorl	%ecx,%eax
541	shll	$6,%edi
542	xorl	%edx,%ebx
543	xorl	%edi,%eax
544	movl	%eax,(%esp)
545	movl	%ebx,4(%esp)
546	movl	208(%esp),%ecx
547	movl	212(%esp),%edx
548	movl	%ecx,%esi
549	shrl	$6,%ecx
550	movl	%edx,%edi
551	shrl	$6,%edx
552	movl	%ecx,%eax
553	shll	$3,%esi
554	movl	%edx,%ebx
555	shll	$3,%edi
556	xorl	%esi,%eax
557	shrl	$13,%ecx
558	xorl	%edi,%ebx
559	shrl	$13,%edx
560	xorl	%ecx,%eax
561	shll	$10,%esi
562	xorl	%edx,%ebx
563	shll	$10,%edi
564	xorl	%esi,%ebx
565	shrl	$10,%ecx
566	xorl	%edi,%eax
567	shrl	$10,%edx
568	xorl	%ecx,%ebx
569	shll	$13,%edi
570	xorl	%edx,%eax
571	xorl	%edi,%eax
572	movl	320(%esp),%ecx
573	movl	324(%esp),%edx
574	addl	(%esp),%eax
575	adcl	4(%esp),%ebx
576	movl	248(%esp),%esi
577	movl	252(%esp),%edi
578	addl	%ecx,%eax
579	adcl	%edx,%ebx
580	addl	%esi,%eax
581	adcl	%edi,%ebx
582	movl	%eax,192(%esp)
583	movl	%ebx,196(%esp)
584	movl	40(%esp),%ecx
585	movl	44(%esp),%edx
586	movl	%ecx,%esi
587	shrl	$9,%ecx
588	movl	%edx,%edi
589	shrl	$9,%edx
590	movl	%ecx,%ebx
591	shll	$14,%esi
592	movl	%edx,%eax
593	shll	$14,%edi
594	xorl	%esi,%ebx
595	shrl	$5,%ecx
596	xorl	%edi,%eax
597	shrl	$5,%edx
598	xorl	%ecx,%eax
599	shll	$4,%esi
600	xorl	%edx,%ebx
601	shll	$4,%edi
602	xorl	%esi,%ebx
603	shrl	$4,%ecx
604	xorl	%edi,%eax
605	shrl	$4,%edx
606	xorl	%ecx,%eax
607	shll	$5,%esi
608	xorl	%edx,%ebx
609	shll	$5,%edi
610	xorl	%esi,%eax
611	xorl	%edi,%ebx
612	movl	48(%esp),%ecx
613	movl	52(%esp),%edx
614	movl	56(%esp),%esi
615	movl	60(%esp),%edi
616	addl	64(%esp),%eax
617	adcl	68(%esp),%ebx
618	xorl	%esi,%ecx
619	xorl	%edi,%edx
620	andl	40(%esp),%ecx
621	andl	44(%esp),%edx
622	addl	192(%esp),%eax
623	adcl	196(%esp),%ebx
624	xorl	%esi,%ecx
625	xorl	%edi,%edx
626	movl	(%ebp),%esi
627	movl	4(%ebp),%edi
628	addl	%ecx,%eax
629	adcl	%edx,%ebx
630	movl	32(%esp),%ecx
631	movl	36(%esp),%edx
632	addl	%esi,%eax
633	adcl	%edi,%ebx
634	movl	%eax,(%esp)
635	movl	%ebx,4(%esp)
636	addl	%ecx,%eax
637	adcl	%edx,%ebx
638	movl	8(%esp),%ecx
639	movl	12(%esp),%edx
640	movl	%eax,32(%esp)
641	movl	%ebx,36(%esp)
642	movl	%ecx,%esi
643	shrl	$2,%ecx
644	movl	%edx,%edi
645	shrl	$2,%edx
646	movl	%ecx,%ebx
647	shll	$4,%esi
648	movl	%edx,%eax
649	shll	$4,%edi
650	xorl	%esi,%ebx
651	shrl	$5,%ecx
652	xorl	%edi,%eax
653	shrl	$5,%edx
654	xorl	%ecx,%ebx
655	shll	$21,%esi
656	xorl	%edx,%eax
657	shll	$21,%edi
658	xorl	%esi,%eax
659	shrl	$21,%ecx
660	xorl	%edi,%ebx
661	shrl	$21,%edx
662	xorl	%ecx,%eax
663	shll	$5,%esi
664	xorl	%edx,%ebx
665	shll	$5,%edi
666	xorl	%esi,%eax
667	xorl	%edi,%ebx
668	movl	8(%esp),%ecx
669	movl	12(%esp),%edx
670	movl	16(%esp),%esi
671	movl	20(%esp),%edi
672	addl	(%esp),%eax
673	adcl	4(%esp),%ebx
674	orl	%esi,%ecx
675	orl	%edi,%edx
676	andl	24(%esp),%ecx
677	andl	28(%esp),%edx
678	andl	8(%esp),%esi
679	andl	12(%esp),%edi
680	orl	%esi,%ecx
681	orl	%edi,%edx
682	addl	%ecx,%eax
683	adcl	%edx,%ebx
684	movl	%eax,(%esp)
685	movl	%ebx,4(%esp)
686	movb	(%ebp),%dl
687	subl	$8,%esp
688	leal	8(%ebp),%ebp
689	cmpb	$23,%dl
690	jne	.L00716_79_x86
691	movl	840(%esp),%esi
692	movl	844(%esp),%edi
693	movl	(%esi),%eax
694	movl	4(%esi),%ebx
695	movl	8(%esi),%ecx
696	movl	12(%esi),%edx
697	addl	8(%esp),%eax
698	adcl	12(%esp),%ebx
699	movl	%eax,(%esi)
700	movl	%ebx,4(%esi)
701	addl	16(%esp),%ecx
702	adcl	20(%esp),%edx
703	movl	%ecx,8(%esi)
704	movl	%edx,12(%esi)
705	movl	16(%esi),%eax
706	movl	20(%esi),%ebx
707	movl	24(%esi),%ecx
708	movl	28(%esi),%edx
709	addl	24(%esp),%eax
710	adcl	28(%esp),%ebx
711	movl	%eax,16(%esi)
712	movl	%ebx,20(%esi)
713	addl	32(%esp),%ecx
714	adcl	36(%esp),%edx
715	movl	%ecx,24(%esi)
716	movl	%edx,28(%esi)
717	movl	32(%esi),%eax
718	movl	36(%esi),%ebx
719	movl	40(%esi),%ecx
720	movl	44(%esi),%edx
721	addl	40(%esp),%eax
722	adcl	44(%esp),%ebx
723	movl	%eax,32(%esi)
724	movl	%ebx,36(%esi)
725	addl	48(%esp),%ecx
726	adcl	52(%esp),%edx
727	movl	%ecx,40(%esi)
728	movl	%edx,44(%esi)
729	movl	48(%esi),%eax
730	movl	52(%esi),%ebx
731	movl	56(%esi),%ecx
732	movl	60(%esi),%edx
733	addl	56(%esp),%eax
734	adcl	60(%esp),%ebx
735	movl	%eax,48(%esi)
736	movl	%ebx,52(%esi)
737	addl	64(%esp),%ecx
738	adcl	68(%esp),%edx
739	movl	%ecx,56(%esi)
740	movl	%edx,60(%esi)
741	addl	$840,%esp
742	subl	$640,%ebp
743	cmpl	8(%esp),%edi
744	jb	.L002loop_x86
745	movl	12(%esp),%esp
746	popl	%edi
747	popl	%esi
748	popl	%ebx
749	popl	%ebp
750	ret
751.align	64
752.L001K512:
753.long	3609767458,1116352408
754.long	602891725,1899447441
755.long	3964484399,3049323471
756.long	2173295548,3921009573
757.long	4081628472,961987163
758.long	3053834265,1508970993
759.long	2937671579,2453635748
760.long	3664609560,2870763221
761.long	2734883394,3624381080
762.long	1164996542,310598401
763.long	1323610764,607225278
764.long	3590304994,1426881987
765.long	4068182383,1925078388
766.long	991336113,2162078206
767.long	633803317,2614888103
768.long	3479774868,3248222580
769.long	2666613458,3835390401
770.long	944711139,4022224774
771.long	2341262773,264347078
772.long	2007800933,604807628
773.long	1495990901,770255983
774.long	1856431235,1249150122
775.long	3175218132,1555081692
776.long	2198950837,1996064986
777.long	3999719339,2554220882
778.long	766784016,2821834349
779.long	2566594879,2952996808
780.long	3203337956,3210313671
781.long	1034457026,3336571891
782.long	2466948901,3584528711
783.long	3758326383,113926993
784.long	168717936,338241895
785.long	1188179964,666307205
786.long	1546045734,773529912
787.long	1522805485,1294757372
788.long	2643833823,1396182291
789.long	2343527390,1695183700
790.long	1014477480,1986661051
791.long	1206759142,2177026350
792.long	344077627,2456956037
793.long	1290863460,2730485921
794.long	3158454273,2820302411
795.long	3505952657,3259730800
796.long	106217008,3345764771
797.long	3606008344,3516065817
798.long	1432725776,3600352804
799.long	1467031594,4094571909
800.long	851169720,275423344
801.long	3100823752,430227734
802.long	1363258195,506948616
803.long	3750685593,659060556
804.long	3785050280,883997877
805.long	3318307427,958139571
806.long	3812723403,1322822218
807.long	2003034995,1537002063
808.long	3602036899,1747873779
809.long	1575990012,1955562222
810.long	1125592928,2024104815
811.long	2716904306,2227730452
812.long	442776044,2361852424
813.long	593698344,2428436474
814.long	3733110249,2756734187
815.long	2999351573,3204031479
816.long	3815920427,3329325298
817.long	3928383900,3391569614
818.long	566280711,3515267271
819.long	3454069534,3940187606
820.long	4000239992,4118630271
821.long	1914138554,116418474
822.long	2731055270,174292421
823.long	3203993006,289380356
824.long	320620315,460393269
825.long	587496836,685471733
826.long	1086792851,852142971
827.long	365543100,1017036298
828.long	2618297676,1126000580
829.long	3409855158,1288033470
830.long	4234509866,1501505948
831.long	987167468,1607167915
832.long	1246189591,1816402316
833.size	sha512_block_data_order,.-.L_sha512_block_data_order_begin
834.byte	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
835.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
836.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
837.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
838.byte	62,0
839.comm	OPENSSL_ia32cap_P,8,4
840#else
841.file	"sha512-586.S"
842.text
843.globl	sha512_block_data_order
844.type	sha512_block_data_order,@function
845.align	16
846sha512_block_data_order:
847.L_sha512_block_data_order_begin:
848	pushl	%ebp
849	pushl	%ebx
850	pushl	%esi
851	pushl	%edi
852	movl	20(%esp),%esi
853	movl	24(%esp),%edi
854	movl	28(%esp),%eax
855	movl	%esp,%ebx
856	call	.L000pic_point
857.L000pic_point:
858	popl	%ebp
859	leal	.L001K512-.L000pic_point(%ebp),%ebp
860	subl	$16,%esp
861	andl	$-64,%esp
862	shll	$7,%eax
863	addl	%edi,%eax
864	movl	%esi,(%esp)
865	movl	%edi,4(%esp)
866	movl	%eax,8(%esp)
867	movl	%ebx,12(%esp)
868	leal	OPENSSL_ia32cap_P,%edx
869	btl	$26,(%edx)
870	jnc	.L002loop_x86
871	movq	(%esi),%mm0
872	movq	8(%esi),%mm1
873	movq	16(%esi),%mm2
874	movq	24(%esi),%mm3
875	movq	32(%esi),%mm4
876	movq	40(%esi),%mm5
877	movq	48(%esi),%mm6
878	movq	56(%esi),%mm7
879	subl	$80,%esp
880.align	16
881.L003loop_sse2:
882	movq	%mm1,8(%esp)
883	movq	%mm2,16(%esp)
884	movq	%mm3,24(%esp)
885	movq	%mm5,40(%esp)
886	movq	%mm6,48(%esp)
887	movq	%mm7,56(%esp)
888	movl	(%edi),%ecx
889	movl	4(%edi),%edx
890	addl	$8,%edi
891	bswap	%ecx
892	bswap	%edx
893	movl	%ecx,76(%esp)
894	movl	%edx,72(%esp)
895.align	16
896.L00400_14_sse2:
897	movl	(%edi),%eax
898	movl	4(%edi),%ebx
899	addl	$8,%edi
900	bswap	%eax
901	bswap	%ebx
902	movl	%eax,68(%esp)
903	movl	%ebx,64(%esp)
904	movq	40(%esp),%mm5
905	movq	48(%esp),%mm6
906	movq	56(%esp),%mm7
907	movq	%mm4,%mm1
908	movq	%mm4,%mm2
909	psrlq	$14,%mm1
910	movq	%mm4,32(%esp)
911	psllq	$23,%mm2
912	movq	%mm1,%mm3
913	psrlq	$4,%mm1
914	pxor	%mm2,%mm3
915	psllq	$23,%mm2
916	pxor	%mm1,%mm3
917	psrlq	$23,%mm1
918	pxor	%mm2,%mm3
919	psllq	$4,%mm2
920	pxor	%mm1,%mm3
921	paddq	(%ebp),%mm7
922	pxor	%mm2,%mm3
923	pxor	%mm6,%mm5
924	movq	8(%esp),%mm1
925	pand	%mm4,%mm5
926	movq	16(%esp),%mm2
927	pxor	%mm6,%mm5
928	movq	24(%esp),%mm4
929	paddq	%mm5,%mm3
930	movq	%mm0,(%esp)
931	paddq	%mm7,%mm3
932	movq	%mm0,%mm5
933	movq	%mm0,%mm6
934	paddq	72(%esp),%mm3
935	psrlq	$28,%mm5
936	paddq	%mm3,%mm4
937	psllq	$25,%mm6
938	movq	%mm5,%mm7
939	psrlq	$6,%mm5
940	pxor	%mm6,%mm7
941	psllq	$5,%mm6
942	pxor	%mm5,%mm7
943	psrlq	$5,%mm5
944	pxor	%mm6,%mm7
945	psllq	$6,%mm6
946	pxor	%mm5,%mm7
947	subl	$8,%esp
948	pxor	%mm6,%mm7
949	movq	%mm0,%mm5
950	por	%mm2,%mm0
951	pand	%mm2,%mm5
952	pand	%mm1,%mm0
953	por	%mm0,%mm5
954	paddq	%mm5,%mm7
955	movq	%mm3,%mm0
956	movb	(%ebp),%dl
957	paddq	%mm7,%mm0
958	addl	$8,%ebp
959	cmpb	$53,%dl
960	jne	.L00400_14_sse2
961	movq	40(%esp),%mm5
962	movq	48(%esp),%mm6
963	movq	56(%esp),%mm7
964	movq	%mm4,%mm1
965	movq	%mm4,%mm2
966	psrlq	$14,%mm1
967	movq	%mm4,32(%esp)
968	psllq	$23,%mm2
969	movq	%mm1,%mm3
970	psrlq	$4,%mm1
971	pxor	%mm2,%mm3
972	psllq	$23,%mm2
973	pxor	%mm1,%mm3
974	psrlq	$23,%mm1
975	pxor	%mm2,%mm3
976	psllq	$4,%mm2
977	pxor	%mm1,%mm3
978	paddq	(%ebp),%mm7
979	pxor	%mm2,%mm3
980	pxor	%mm6,%mm5
981	movq	8(%esp),%mm1
982	pand	%mm4,%mm5
983	movq	16(%esp),%mm2
984	pxor	%mm6,%mm5
985	movq	24(%esp),%mm4
986	paddq	%mm5,%mm3
987	movq	%mm0,(%esp)
988	paddq	%mm7,%mm3
989	movq	%mm0,%mm5
990	movq	%mm0,%mm6
991	paddq	72(%esp),%mm3
992	psrlq	$28,%mm5
993	paddq	%mm3,%mm4
994	psllq	$25,%mm6
995	movq	%mm5,%mm7
996	psrlq	$6,%mm5
997	pxor	%mm6,%mm7
998	psllq	$5,%mm6
999	pxor	%mm5,%mm7
1000	psrlq	$5,%mm5
1001	pxor	%mm6,%mm7
1002	psllq	$6,%mm6
1003	pxor	%mm5,%mm7
1004	subl	$8,%esp
1005	pxor	%mm6,%mm7
1006	movq	%mm0,%mm5
1007	por	%mm2,%mm0
1008	movq	88(%esp),%mm6
1009	pand	%mm2,%mm5
1010	pand	%mm1,%mm0
1011	movq	192(%esp),%mm2
1012	por	%mm0,%mm5
1013	paddq	%mm5,%mm7
1014	movq	%mm3,%mm0
1015	movb	(%ebp),%dl
1016	paddq	%mm7,%mm0
1017	addl	$8,%ebp
1018.align	16
1019.L00516_79_sse2:
1020	movq	%mm2,%mm1
1021	psrlq	$1,%mm2
1022	movq	%mm6,%mm7
1023	psrlq	$6,%mm6
1024	movq	%mm2,%mm3
1025	psrlq	$6,%mm2
1026	movq	%mm6,%mm5
1027	psrlq	$13,%mm6
1028	pxor	%mm2,%mm3
1029	psrlq	$1,%mm2
1030	pxor	%mm6,%mm5
1031	psrlq	$42,%mm6
1032	pxor	%mm2,%mm3
1033	movq	200(%esp),%mm2
1034	psllq	$56,%mm1
1035	pxor	%mm6,%mm5
1036	psllq	$3,%mm7
1037	pxor	%mm1,%mm3
1038	paddq	128(%esp),%mm2
1039	psllq	$7,%mm1
1040	pxor	%mm7,%mm5
1041	psllq	$42,%mm7
1042	pxor	%mm1,%mm3
1043	pxor	%mm7,%mm5
1044	paddq	%mm5,%mm3
1045	paddq	%mm2,%mm3
1046	movq	%mm3,72(%esp)
1047	movq	40(%esp),%mm5
1048	movq	48(%esp),%mm6
1049	movq	56(%esp),%mm7
1050	movq	%mm4,%mm1
1051	movq	%mm4,%mm2
1052	psrlq	$14,%mm1
1053	movq	%mm4,32(%esp)
1054	psllq	$23,%mm2
1055	movq	%mm1,%mm3
1056	psrlq	$4,%mm1
1057	pxor	%mm2,%mm3
1058	psllq	$23,%mm2
1059	pxor	%mm1,%mm3
1060	psrlq	$23,%mm1
1061	pxor	%mm2,%mm3
1062	psllq	$4,%mm2
1063	pxor	%mm1,%mm3
1064	paddq	(%ebp),%mm7
1065	pxor	%mm2,%mm3
1066	pxor	%mm6,%mm5
1067	movq	8(%esp),%mm1
1068	pand	%mm4,%mm5
1069	movq	16(%esp),%mm2
1070	pxor	%mm6,%mm5
1071	movq	24(%esp),%mm4
1072	paddq	%mm5,%mm3
1073	movq	%mm0,(%esp)
1074	paddq	%mm7,%mm3
1075	movq	%mm0,%mm5
1076	movq	%mm0,%mm6
1077	paddq	72(%esp),%mm3
1078	psrlq	$28,%mm5
1079	paddq	%mm3,%mm4
1080	psllq	$25,%mm6
1081	movq	%mm5,%mm7
1082	psrlq	$6,%mm5
1083	pxor	%mm6,%mm7
1084	psllq	$5,%mm6
1085	pxor	%mm5,%mm7
1086	psrlq	$5,%mm5
1087	pxor	%mm6,%mm7
1088	psllq	$6,%mm6
1089	pxor	%mm5,%mm7
1090	subl	$8,%esp
1091	pxor	%mm6,%mm7
1092	movq	%mm0,%mm5
1093	por	%mm2,%mm0
1094	movq	88(%esp),%mm6
1095	pand	%mm2,%mm5
1096	pand	%mm1,%mm0
1097	movq	192(%esp),%mm2
1098	por	%mm0,%mm5
1099	paddq	%mm5,%mm7
1100	movq	%mm3,%mm0
1101	movb	(%ebp),%dl
1102	paddq	%mm7,%mm0
1103	addl	$8,%ebp
1104	cmpb	$23,%dl
1105	jne	.L00516_79_sse2
1106	movq	8(%esp),%mm1
1107	movq	16(%esp),%mm2
1108	movq	24(%esp),%mm3
1109	movq	40(%esp),%mm5
1110	movq	48(%esp),%mm6
1111	movq	56(%esp),%mm7
1112	paddq	(%esi),%mm0
1113	paddq	8(%esi),%mm1
1114	paddq	16(%esi),%mm2
1115	paddq	24(%esi),%mm3
1116	paddq	32(%esi),%mm4
1117	paddq	40(%esi),%mm5
1118	paddq	48(%esi),%mm6
1119	paddq	56(%esi),%mm7
1120	movq	%mm0,(%esi)
1121	movq	%mm1,8(%esi)
1122	movq	%mm2,16(%esi)
1123	movq	%mm3,24(%esi)
1124	movq	%mm4,32(%esi)
1125	movq	%mm5,40(%esi)
1126	movq	%mm6,48(%esi)
1127	movq	%mm7,56(%esi)
1128	addl	$640,%esp
1129	subl	$640,%ebp
1130	cmpl	88(%esp),%edi
1131	jb	.L003loop_sse2
1132	emms
1133	movl	92(%esp),%esp
1134	popl	%edi
1135	popl	%esi
1136	popl	%ebx
1137	popl	%ebp
1138	ret
1139.align	16
1140.L002loop_x86:
1141	movl	(%edi),%eax
1142	movl	4(%edi),%ebx
1143	movl	8(%edi),%ecx
1144	movl	12(%edi),%edx
1145	bswap	%eax
1146	bswap	%ebx
1147	bswap	%ecx
1148	bswap	%edx
1149	pushl	%eax
1150	pushl	%ebx
1151	pushl	%ecx
1152	pushl	%edx
1153	movl	16(%edi),%eax
1154	movl	20(%edi),%ebx
1155	movl	24(%edi),%ecx
1156	movl	28(%edi),%edx
1157	bswap	%eax
1158	bswap	%ebx
1159	bswap	%ecx
1160	bswap	%edx
1161	pushl	%eax
1162	pushl	%ebx
1163	pushl	%ecx
1164	pushl	%edx
1165	movl	32(%edi),%eax
1166	movl	36(%edi),%ebx
1167	movl	40(%edi),%ecx
1168	movl	44(%edi),%edx
1169	bswap	%eax
1170	bswap	%ebx
1171	bswap	%ecx
1172	bswap	%edx
1173	pushl	%eax
1174	pushl	%ebx
1175	pushl	%ecx
1176	pushl	%edx
1177	movl	48(%edi),%eax
1178	movl	52(%edi),%ebx
1179	movl	56(%edi),%ecx
1180	movl	60(%edi),%edx
1181	bswap	%eax
1182	bswap	%ebx
1183	bswap	%ecx
1184	bswap	%edx
1185	pushl	%eax
1186	pushl	%ebx
1187	pushl	%ecx
1188	pushl	%edx
1189	movl	64(%edi),%eax
1190	movl	68(%edi),%ebx
1191	movl	72(%edi),%ecx
1192	movl	76(%edi),%edx
1193	bswap	%eax
1194	bswap	%ebx
1195	bswap	%ecx
1196	bswap	%edx
1197	pushl	%eax
1198	pushl	%ebx
1199	pushl	%ecx
1200	pushl	%edx
1201	movl	80(%edi),%eax
1202	movl	84(%edi),%ebx
1203	movl	88(%edi),%ecx
1204	movl	92(%edi),%edx
1205	bswap	%eax
1206	bswap	%ebx
1207	bswap	%ecx
1208	bswap	%edx
1209	pushl	%eax
1210	pushl	%ebx
1211	pushl	%ecx
1212	pushl	%edx
1213	movl	96(%edi),%eax
1214	movl	100(%edi),%ebx
1215	movl	104(%edi),%ecx
1216	movl	108(%edi),%edx
1217	bswap	%eax
1218	bswap	%ebx
1219	bswap	%ecx
1220	bswap	%edx
1221	pushl	%eax
1222	pushl	%ebx
1223	pushl	%ecx
1224	pushl	%edx
1225	movl	112(%edi),%eax
1226	movl	116(%edi),%ebx
1227	movl	120(%edi),%ecx
1228	movl	124(%edi),%edx
1229	bswap	%eax
1230	bswap	%ebx
1231	bswap	%ecx
1232	bswap	%edx
1233	pushl	%eax
1234	pushl	%ebx
1235	pushl	%ecx
1236	pushl	%edx
1237	addl	$128,%edi
1238	subl	$72,%esp
1239	movl	%edi,204(%esp)
1240	leal	8(%esp),%edi
1241	movl	$16,%ecx
1242.long	2784229001
1243.align	16
1244.L00600_15_x86:
1245	movl	40(%esp),%ecx
1246	movl	44(%esp),%edx
1247	movl	%ecx,%esi
1248	shrl	$9,%ecx
1249	movl	%edx,%edi
1250	shrl	$9,%edx
1251	movl	%ecx,%ebx
1252	shll	$14,%esi
1253	movl	%edx,%eax
1254	shll	$14,%edi
1255	xorl	%esi,%ebx
1256	shrl	$5,%ecx
1257	xorl	%edi,%eax
1258	shrl	$5,%edx
1259	xorl	%ecx,%eax
1260	shll	$4,%esi
1261	xorl	%edx,%ebx
1262	shll	$4,%edi
1263	xorl	%esi,%ebx
1264	shrl	$4,%ecx
1265	xorl	%edi,%eax
1266	shrl	$4,%edx
1267	xorl	%ecx,%eax
1268	shll	$5,%esi
1269	xorl	%edx,%ebx
1270	shll	$5,%edi
1271	xorl	%esi,%eax
1272	xorl	%edi,%ebx
1273	movl	48(%esp),%ecx
1274	movl	52(%esp),%edx
1275	movl	56(%esp),%esi
1276	movl	60(%esp),%edi
1277	addl	64(%esp),%eax
1278	adcl	68(%esp),%ebx
1279	xorl	%esi,%ecx
1280	xorl	%edi,%edx
1281	andl	40(%esp),%ecx
1282	andl	44(%esp),%edx
1283	addl	192(%esp),%eax
1284	adcl	196(%esp),%ebx
1285	xorl	%esi,%ecx
1286	xorl	%edi,%edx
1287	movl	(%ebp),%esi
1288	movl	4(%ebp),%edi
1289	addl	%ecx,%eax
1290	adcl	%edx,%ebx
1291	movl	32(%esp),%ecx
1292	movl	36(%esp),%edx
1293	addl	%esi,%eax
1294	adcl	%edi,%ebx
1295	movl	%eax,(%esp)
1296	movl	%ebx,4(%esp)
1297	addl	%ecx,%eax
1298	adcl	%edx,%ebx
1299	movl	8(%esp),%ecx
1300	movl	12(%esp),%edx
1301	movl	%eax,32(%esp)
1302	movl	%ebx,36(%esp)
1303	movl	%ecx,%esi
1304	shrl	$2,%ecx
1305	movl	%edx,%edi
1306	shrl	$2,%edx
1307	movl	%ecx,%ebx
1308	shll	$4,%esi
1309	movl	%edx,%eax
1310	shll	$4,%edi
1311	xorl	%esi,%ebx
1312	shrl	$5,%ecx
1313	xorl	%edi,%eax
1314	shrl	$5,%edx
1315	xorl	%ecx,%ebx
1316	shll	$21,%esi
1317	xorl	%edx,%eax
1318	shll	$21,%edi
1319	xorl	%esi,%eax
1320	shrl	$21,%ecx
1321	xorl	%edi,%ebx
1322	shrl	$21,%edx
1323	xorl	%ecx,%eax
1324	shll	$5,%esi
1325	xorl	%edx,%ebx
1326	shll	$5,%edi
1327	xorl	%esi,%eax
1328	xorl	%edi,%ebx
1329	movl	8(%esp),%ecx
1330	movl	12(%esp),%edx
1331	movl	16(%esp),%esi
1332	movl	20(%esp),%edi
1333	addl	(%esp),%eax
1334	adcl	4(%esp),%ebx
1335	orl	%esi,%ecx
1336	orl	%edi,%edx
1337	andl	24(%esp),%ecx
1338	andl	28(%esp),%edx
1339	andl	8(%esp),%esi
1340	andl	12(%esp),%edi
1341	orl	%esi,%ecx
1342	orl	%edi,%edx
1343	addl	%ecx,%eax
1344	adcl	%edx,%ebx
1345	movl	%eax,(%esp)
1346	movl	%ebx,4(%esp)
1347	movb	(%ebp),%dl
1348	subl	$8,%esp
1349	leal	8(%ebp),%ebp
1350	cmpb	$148,%dl
1351	jne	.L00600_15_x86
1352.align	16
1353.L00716_79_x86:
1354	movl	312(%esp),%ecx
1355	movl	316(%esp),%edx
1356	movl	%ecx,%esi
1357	shrl	$1,%ecx
1358	movl	%edx,%edi
1359	shrl	$1,%edx
1360	movl	%ecx,%eax
1361	shll	$24,%esi
1362	movl	%edx,%ebx
1363	shll	$24,%edi
1364	xorl	%esi,%ebx
1365	shrl	$6,%ecx
1366	xorl	%edi,%eax
1367	shrl	$6,%edx
1368	xorl	%ecx,%eax
1369	shll	$7,%esi
1370	xorl	%edx,%ebx
1371	shll	$1,%edi
1372	xorl	%esi,%ebx
1373	shrl	$1,%ecx
1374	xorl	%edi,%eax
1375	shrl	$1,%edx
1376	xorl	%ecx,%eax
1377	shll	$6,%edi
1378	xorl	%edx,%ebx
1379	xorl	%edi,%eax
1380	movl	%eax,(%esp)
1381	movl	%ebx,4(%esp)
1382	movl	208(%esp),%ecx
1383	movl	212(%esp),%edx
1384	movl	%ecx,%esi
1385	shrl	$6,%ecx
1386	movl	%edx,%edi
1387	shrl	$6,%edx
1388	movl	%ecx,%eax
1389	shll	$3,%esi
1390	movl	%edx,%ebx
1391	shll	$3,%edi
1392	xorl	%esi,%eax
1393	shrl	$13,%ecx
1394	xorl	%edi,%ebx
1395	shrl	$13,%edx
1396	xorl	%ecx,%eax
1397	shll	$10,%esi
1398	xorl	%edx,%ebx
1399	shll	$10,%edi
1400	xorl	%esi,%ebx
1401	shrl	$10,%ecx
1402	xorl	%edi,%eax
1403	shrl	$10,%edx
1404	xorl	%ecx,%ebx
1405	shll	$13,%edi
1406	xorl	%edx,%eax
1407	xorl	%edi,%eax
1408	movl	320(%esp),%ecx
1409	movl	324(%esp),%edx
1410	addl	(%esp),%eax
1411	adcl	4(%esp),%ebx
1412	movl	248(%esp),%esi
1413	movl	252(%esp),%edi
1414	addl	%ecx,%eax
1415	adcl	%edx,%ebx
1416	addl	%esi,%eax
1417	adcl	%edi,%ebx
1418	movl	%eax,192(%esp)
1419	movl	%ebx,196(%esp)
1420	movl	40(%esp),%ecx
1421	movl	44(%esp),%edx
1422	movl	%ecx,%esi
1423	shrl	$9,%ecx
1424	movl	%edx,%edi
1425	shrl	$9,%edx
1426	movl	%ecx,%ebx
1427	shll	$14,%esi
1428	movl	%edx,%eax
1429	shll	$14,%edi
1430	xorl	%esi,%ebx
1431	shrl	$5,%ecx
1432	xorl	%edi,%eax
1433	shrl	$5,%edx
1434	xorl	%ecx,%eax
1435	shll	$4,%esi
1436	xorl	%edx,%ebx
1437	shll	$4,%edi
1438	xorl	%esi,%ebx
1439	shrl	$4,%ecx
1440	xorl	%edi,%eax
1441	shrl	$4,%edx
1442	xorl	%ecx,%eax
1443	shll	$5,%esi
1444	xorl	%edx,%ebx
1445	shll	$5,%edi
1446	xorl	%esi,%eax
1447	xorl	%edi,%ebx
1448	movl	48(%esp),%ecx
1449	movl	52(%esp),%edx
1450	movl	56(%esp),%esi
1451	movl	60(%esp),%edi
1452	addl	64(%esp),%eax
1453	adcl	68(%esp),%ebx
1454	xorl	%esi,%ecx
1455	xorl	%edi,%edx
1456	andl	40(%esp),%ecx
1457	andl	44(%esp),%edx
1458	addl	192(%esp),%eax
1459	adcl	196(%esp),%ebx
1460	xorl	%esi,%ecx
1461	xorl	%edi,%edx
1462	movl	(%ebp),%esi
1463	movl	4(%ebp),%edi
1464	addl	%ecx,%eax
1465	adcl	%edx,%ebx
1466	movl	32(%esp),%ecx
1467	movl	36(%esp),%edx
1468	addl	%esi,%eax
1469	adcl	%edi,%ebx
1470	movl	%eax,(%esp)
1471	movl	%ebx,4(%esp)
1472	addl	%ecx,%eax
1473	adcl	%edx,%ebx
1474	movl	8(%esp),%ecx
1475	movl	12(%esp),%edx
1476	movl	%eax,32(%esp)
1477	movl	%ebx,36(%esp)
1478	movl	%ecx,%esi
1479	shrl	$2,%ecx
1480	movl	%edx,%edi
1481	shrl	$2,%edx
1482	movl	%ecx,%ebx
1483	shll	$4,%esi
1484	movl	%edx,%eax
1485	shll	$4,%edi
1486	xorl	%esi,%ebx
1487	shrl	$5,%ecx
1488	xorl	%edi,%eax
1489	shrl	$5,%edx
1490	xorl	%ecx,%ebx
1491	shll	$21,%esi
1492	xorl	%edx,%eax
1493	shll	$21,%edi
1494	xorl	%esi,%eax
1495	shrl	$21,%ecx
1496	xorl	%edi,%ebx
1497	shrl	$21,%edx
1498	xorl	%ecx,%eax
1499	shll	$5,%esi
1500	xorl	%edx,%ebx
1501	shll	$5,%edi
1502	xorl	%esi,%eax
1503	xorl	%edi,%ebx
1504	movl	8(%esp),%ecx
1505	movl	12(%esp),%edx
1506	movl	16(%esp),%esi
1507	movl	20(%esp),%edi
1508	addl	(%esp),%eax
1509	adcl	4(%esp),%ebx
1510	orl	%esi,%ecx
1511	orl	%edi,%edx
1512	andl	24(%esp),%ecx
1513	andl	28(%esp),%edx
1514	andl	8(%esp),%esi
1515	andl	12(%esp),%edi
1516	orl	%esi,%ecx
1517	orl	%edi,%edx
1518	addl	%ecx,%eax
1519	adcl	%edx,%ebx
1520	movl	%eax,(%esp)
1521	movl	%ebx,4(%esp)
1522	movb	(%ebp),%dl
1523	subl	$8,%esp
1524	leal	8(%ebp),%ebp
1525	cmpb	$23,%dl
1526	jne	.L00716_79_x86
1527	movl	840(%esp),%esi
1528	movl	844(%esp),%edi
1529	movl	(%esi),%eax
1530	movl	4(%esi),%ebx
1531	movl	8(%esi),%ecx
1532	movl	12(%esi),%edx
1533	addl	8(%esp),%eax
1534	adcl	12(%esp),%ebx
1535	movl	%eax,(%esi)
1536	movl	%ebx,4(%esi)
1537	addl	16(%esp),%ecx
1538	adcl	20(%esp),%edx
1539	movl	%ecx,8(%esi)
1540	movl	%edx,12(%esi)
1541	movl	16(%esi),%eax
1542	movl	20(%esi),%ebx
1543	movl	24(%esi),%ecx
1544	movl	28(%esi),%edx
1545	addl	24(%esp),%eax
1546	adcl	28(%esp),%ebx
1547	movl	%eax,16(%esi)
1548	movl	%ebx,20(%esi)
1549	addl	32(%esp),%ecx
1550	adcl	36(%esp),%edx
1551	movl	%ecx,24(%esi)
1552	movl	%edx,28(%esi)
1553	movl	32(%esi),%eax
1554	movl	36(%esi),%ebx
1555	movl	40(%esi),%ecx
1556	movl	44(%esi),%edx
1557	addl	40(%esp),%eax
1558	adcl	44(%esp),%ebx
1559	movl	%eax,32(%esi)
1560	movl	%ebx,36(%esi)
1561	addl	48(%esp),%ecx
1562	adcl	52(%esp),%edx
1563	movl	%ecx,40(%esi)
1564	movl	%edx,44(%esi)
1565	movl	48(%esi),%eax
1566	movl	52(%esi),%ebx
1567	movl	56(%esi),%ecx
1568	movl	60(%esi),%edx
1569	addl	56(%esp),%eax
1570	adcl	60(%esp),%ebx
1571	movl	%eax,48(%esi)
1572	movl	%ebx,52(%esi)
1573	addl	64(%esp),%ecx
1574	adcl	68(%esp),%edx
1575	movl	%ecx,56(%esi)
1576	movl	%edx,60(%esi)
1577	addl	$840,%esp
1578	subl	$640,%ebp
1579	cmpl	8(%esp),%edi
1580	jb	.L002loop_x86
1581	movl	12(%esp),%esp
1582	popl	%edi
1583	popl	%esi
1584	popl	%ebx
1585	popl	%ebp
1586	ret
1587.align	64
1588.L001K512:
1589.long	3609767458,1116352408
1590.long	602891725,1899447441
1591.long	3964484399,3049323471
1592.long	2173295548,3921009573
1593.long	4081628472,961987163
1594.long	3053834265,1508970993
1595.long	2937671579,2453635748
1596.long	3664609560,2870763221
1597.long	2734883394,3624381080
1598.long	1164996542,310598401
1599.long	1323610764,607225278
1600.long	3590304994,1426881987
1601.long	4068182383,1925078388
1602.long	991336113,2162078206
1603.long	633803317,2614888103
1604.long	3479774868,3248222580
1605.long	2666613458,3835390401
1606.long	944711139,4022224774
1607.long	2341262773,264347078
1608.long	2007800933,604807628
1609.long	1495990901,770255983
1610.long	1856431235,1249150122
1611.long	3175218132,1555081692
1612.long	2198950837,1996064986
1613.long	3999719339,2554220882
1614.long	766784016,2821834349
1615.long	2566594879,2952996808
1616.long	3203337956,3210313671
1617.long	1034457026,3336571891
1618.long	2466948901,3584528711
1619.long	3758326383,113926993
1620.long	168717936,338241895
1621.long	1188179964,666307205
1622.long	1546045734,773529912
1623.long	1522805485,1294757372
1624.long	2643833823,1396182291
1625.long	2343527390,1695183700
1626.long	1014477480,1986661051
1627.long	1206759142,2177026350
1628.long	344077627,2456956037
1629.long	1290863460,2730485921
1630.long	3158454273,2820302411
1631.long	3505952657,3259730800
1632.long	106217008,3345764771
1633.long	3606008344,3516065817
1634.long	1432725776,3600352804
1635.long	1467031594,4094571909
1636.long	851169720,275423344
1637.long	3100823752,430227734
1638.long	1363258195,506948616
1639.long	3750685593,659060556
1640.long	3785050280,883997877
1641.long	3318307427,958139571
1642.long	3812723403,1322822218
1643.long	2003034995,1537002063
1644.long	3602036899,1747873779
1645.long	1575990012,1955562222
1646.long	1125592928,2024104815
1647.long	2716904306,2227730452
1648.long	442776044,2361852424
1649.long	593698344,2428436474
1650.long	3733110249,2756734187
1651.long	2999351573,3204031479
1652.long	3815920427,3329325298
1653.long	3928383900,3391569614
1654.long	566280711,3515267271
1655.long	3454069534,3940187606
1656.long	4000239992,4118630271
1657.long	1914138554,116418474
1658.long	2731055270,174292421
1659.long	3203993006,289380356
1660.long	320620315,460393269
1661.long	587496836,685471733
1662.long	1086792851,852142971
1663.long	365543100,1017036298
1664.long	2618297676,1126000580
1665.long	3409855158,1288033470
1666.long	4234509866,1501505948
1667.long	987167468,1607167915
1668.long	1246189591,1816402316
1669.size	sha512_block_data_order,.-.L_sha512_block_data_order_begin
1670.byte	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
1671.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
1672.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
1673.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
1674.byte	62,0
1675.comm	OPENSSL_ia32cap_P,8,4
1676#endif
1677