1238405Sjkim	# $FreeBSD$
2238405Sjkim.file	"sha512-586.s"
3238405Sjkim.text
4238405Sjkim.globl	sha512_block_data_order
5238405Sjkim.type	sha512_block_data_order,@function
6238405Sjkim.align	16
7238405Sjkimsha512_block_data_order:
8238405Sjkim.L_sha512_block_data_order_begin:
9238405Sjkim	pushl	%ebp
10238405Sjkim	pushl	%ebx
11238405Sjkim	pushl	%esi
12238405Sjkim	pushl	%edi
13238405Sjkim	movl	20(%esp),%esi
14238405Sjkim	movl	24(%esp),%edi
15238405Sjkim	movl	28(%esp),%eax
16238405Sjkim	movl	%esp,%ebx
17238405Sjkim	call	.L000pic_point
18238405Sjkim.L000pic_point:
19238405Sjkim	popl	%ebp
20238405Sjkim	leal	.L001K512-.L000pic_point(%ebp),%ebp
21238405Sjkim	subl	$16,%esp
22238405Sjkim	andl	$-64,%esp
23238405Sjkim	shll	$7,%eax
24238405Sjkim	addl	%edi,%eax
25238405Sjkim	movl	%esi,(%esp)
26238405Sjkim	movl	%edi,4(%esp)
27238405Sjkim	movl	%eax,8(%esp)
28238405Sjkim	movl	%ebx,12(%esp)
29238405Sjkim	leal	OPENSSL_ia32cap_P,%edx
30238405Sjkim	btl	$26,(%edx)
31238405Sjkim	jnc	.L002loop_x86
32238405Sjkim	movq	(%esi),%mm0
33238405Sjkim	movq	8(%esi),%mm1
34238405Sjkim	movq	16(%esi),%mm2
35238405Sjkim	movq	24(%esi),%mm3
36238405Sjkim	movq	32(%esi),%mm4
37238405Sjkim	movq	40(%esi),%mm5
38238405Sjkim	movq	48(%esi),%mm6
39238405Sjkim	movq	56(%esi),%mm7
40238405Sjkim	subl	$80,%esp
41238405Sjkim.align	16
42238405Sjkim.L003loop_sse2:
43238405Sjkim	movq	%mm1,8(%esp)
44238405Sjkim	movq	%mm2,16(%esp)
45238405Sjkim	movq	%mm3,24(%esp)
46238405Sjkim	movq	%mm5,40(%esp)
47238405Sjkim	movq	%mm6,48(%esp)
48238405Sjkim	movq	%mm7,56(%esp)
49238405Sjkim	movl	(%edi),%ecx
50238405Sjkim	movl	4(%edi),%edx
51238405Sjkim	addl	$8,%edi
52238405Sjkim	bswap	%ecx
53238405Sjkim	bswap	%edx
54238405Sjkim	movl	%ecx,76(%esp)
55238405Sjkim	movl	%edx,72(%esp)
56238405Sjkim.align	16
57238405Sjkim.L00400_14_sse2:
58238405Sjkim	movl	(%edi),%eax
59238405Sjkim	movl	4(%edi),%ebx
60238405Sjkim	addl	$8,%edi
61238405Sjkim	bswap	%eax
62238405Sjkim	bswap	%ebx
63238405Sjkim	movl	%eax,68(%esp)
64238405Sjkim	movl	%ebx,64(%esp)
65238405Sjkim	movq	40(%esp),%mm5
66238405Sjkim	movq	48(%esp),%mm6
67238405Sjkim	movq	56(%esp),%mm7
68238405Sjkim	movq	%mm4,%mm1
69238405Sjkim	movq	%mm4,%mm2
70238405Sjkim	psrlq	$14,%mm1
71238405Sjkim	movq	%mm4,32(%esp)
72238405Sjkim	psllq	$23,%mm2
73238405Sjkim	movq	%mm1,%mm3
74238405Sjkim	psrlq	$4,%mm1
75238405Sjkim	pxor	%mm2,%mm3
76238405Sjkim	psllq	$23,%mm2
77238405Sjkim	pxor	%mm1,%mm3
78238405Sjkim	psrlq	$23,%mm1
79238405Sjkim	pxor	%mm2,%mm3
80238405Sjkim	psllq	$4,%mm2
81238405Sjkim	pxor	%mm1,%mm3
82238405Sjkim	paddq	(%ebp),%mm7
83238405Sjkim	pxor	%mm2,%mm3
84238405Sjkim	pxor	%mm6,%mm5
85238405Sjkim	movq	8(%esp),%mm1
86238405Sjkim	pand	%mm4,%mm5
87238405Sjkim	movq	16(%esp),%mm2
88238405Sjkim	pxor	%mm6,%mm5
89238405Sjkim	movq	24(%esp),%mm4
90238405Sjkim	paddq	%mm5,%mm3
91238405Sjkim	movq	%mm0,(%esp)
92238405Sjkim	paddq	%mm7,%mm3
93238405Sjkim	movq	%mm0,%mm5
94238405Sjkim	movq	%mm0,%mm6
95238405Sjkim	paddq	72(%esp),%mm3
96238405Sjkim	psrlq	$28,%mm5
97238405Sjkim	paddq	%mm3,%mm4
98238405Sjkim	psllq	$25,%mm6
99238405Sjkim	movq	%mm5,%mm7
100238405Sjkim	psrlq	$6,%mm5
101238405Sjkim	pxor	%mm6,%mm7
102238405Sjkim	psllq	$5,%mm6
103238405Sjkim	pxor	%mm5,%mm7
104238405Sjkim	psrlq	$5,%mm5
105238405Sjkim	pxor	%mm6,%mm7
106238405Sjkim	psllq	$6,%mm6
107238405Sjkim	pxor	%mm5,%mm7
108238405Sjkim	subl	$8,%esp
109238405Sjkim	pxor	%mm6,%mm7
110238405Sjkim	movq	%mm0,%mm5
111238405Sjkim	por	%mm2,%mm0
112238405Sjkim	pand	%mm2,%mm5
113238405Sjkim	pand	%mm1,%mm0
114238405Sjkim	por	%mm0,%mm5
115238405Sjkim	paddq	%mm5,%mm7
116238405Sjkim	movq	%mm3,%mm0
117238405Sjkim	movb	(%ebp),%dl
118238405Sjkim	paddq	%mm7,%mm0
119238405Sjkim	addl	$8,%ebp
120238405Sjkim	cmpb	$53,%dl
121238405Sjkim	jne	.L00400_14_sse2
122238405Sjkim	movq	40(%esp),%mm5
123238405Sjkim	movq	48(%esp),%mm6
124238405Sjkim	movq	56(%esp),%mm7
125238405Sjkim	movq	%mm4,%mm1
126238405Sjkim	movq	%mm4,%mm2
127238405Sjkim	psrlq	$14,%mm1
128238405Sjkim	movq	%mm4,32(%esp)
129238405Sjkim	psllq	$23,%mm2
130238405Sjkim	movq	%mm1,%mm3
131238405Sjkim	psrlq	$4,%mm1
132238405Sjkim	pxor	%mm2,%mm3
133238405Sjkim	psllq	$23,%mm2
134238405Sjkim	pxor	%mm1,%mm3
135238405Sjkim	psrlq	$23,%mm1
136238405Sjkim	pxor	%mm2,%mm3
137238405Sjkim	psllq	$4,%mm2
138238405Sjkim	pxor	%mm1,%mm3
139238405Sjkim	paddq	(%ebp),%mm7
140238405Sjkim	pxor	%mm2,%mm3
141238405Sjkim	pxor	%mm6,%mm5
142238405Sjkim	movq	8(%esp),%mm1
143238405Sjkim	pand	%mm4,%mm5
144238405Sjkim	movq	16(%esp),%mm2
145238405Sjkim	pxor	%mm6,%mm5
146238405Sjkim	movq	24(%esp),%mm4
147238405Sjkim	paddq	%mm5,%mm3
148238405Sjkim	movq	%mm0,(%esp)
149238405Sjkim	paddq	%mm7,%mm3
150238405Sjkim	movq	%mm0,%mm5
151238405Sjkim	movq	%mm0,%mm6
152238405Sjkim	paddq	72(%esp),%mm3
153238405Sjkim	psrlq	$28,%mm5
154238405Sjkim	paddq	%mm3,%mm4
155238405Sjkim	psllq	$25,%mm6
156238405Sjkim	movq	%mm5,%mm7
157238405Sjkim	psrlq	$6,%mm5
158238405Sjkim	pxor	%mm6,%mm7
159238405Sjkim	psllq	$5,%mm6
160238405Sjkim	pxor	%mm5,%mm7
161238405Sjkim	psrlq	$5,%mm5
162238405Sjkim	pxor	%mm6,%mm7
163238405Sjkim	psllq	$6,%mm6
164238405Sjkim	pxor	%mm5,%mm7
165238405Sjkim	subl	$8,%esp
166238405Sjkim	pxor	%mm6,%mm7
167238405Sjkim	movq	%mm0,%mm5
168238405Sjkim	por	%mm2,%mm0
169238405Sjkim	movq	88(%esp),%mm6
170238405Sjkim	pand	%mm2,%mm5
171238405Sjkim	pand	%mm1,%mm0
172238405Sjkim	movq	192(%esp),%mm2
173238405Sjkim	por	%mm0,%mm5
174238405Sjkim	paddq	%mm5,%mm7
175238405Sjkim	movq	%mm3,%mm0
176238405Sjkim	movb	(%ebp),%dl
177238405Sjkim	paddq	%mm7,%mm0
178238405Sjkim	addl	$8,%ebp
179238405Sjkim.align	16
180238405Sjkim.L00516_79_sse2:
181238405Sjkim	movq	%mm2,%mm1
182238405Sjkim	psrlq	$1,%mm2
183238405Sjkim	movq	%mm6,%mm7
184238405Sjkim	psrlq	$6,%mm6
185238405Sjkim	movq	%mm2,%mm3
186238405Sjkim	psrlq	$6,%mm2
187238405Sjkim	movq	%mm6,%mm5
188238405Sjkim	psrlq	$13,%mm6
189238405Sjkim	pxor	%mm2,%mm3
190238405Sjkim	psrlq	$1,%mm2
191238405Sjkim	pxor	%mm6,%mm5
192238405Sjkim	psrlq	$42,%mm6
193238405Sjkim	pxor	%mm2,%mm3
194238405Sjkim	movq	200(%esp),%mm2
195238405Sjkim	psllq	$56,%mm1
196238405Sjkim	pxor	%mm6,%mm5
197238405Sjkim	psllq	$3,%mm7
198238405Sjkim	pxor	%mm1,%mm3
199238405Sjkim	paddq	128(%esp),%mm2
200238405Sjkim	psllq	$7,%mm1
201238405Sjkim	pxor	%mm7,%mm5
202238405Sjkim	psllq	$42,%mm7
203238405Sjkim	pxor	%mm1,%mm3
204238405Sjkim	pxor	%mm7,%mm5
205238405Sjkim	paddq	%mm5,%mm3
206238405Sjkim	paddq	%mm2,%mm3
207238405Sjkim	movq	%mm3,72(%esp)
208238405Sjkim	movq	40(%esp),%mm5
209238405Sjkim	movq	48(%esp),%mm6
210238405Sjkim	movq	56(%esp),%mm7
211238405Sjkim	movq	%mm4,%mm1
212238405Sjkim	movq	%mm4,%mm2
213238405Sjkim	psrlq	$14,%mm1
214238405Sjkim	movq	%mm4,32(%esp)
215238405Sjkim	psllq	$23,%mm2
216238405Sjkim	movq	%mm1,%mm3
217238405Sjkim	psrlq	$4,%mm1
218238405Sjkim	pxor	%mm2,%mm3
219238405Sjkim	psllq	$23,%mm2
220238405Sjkim	pxor	%mm1,%mm3
221238405Sjkim	psrlq	$23,%mm1
222238405Sjkim	pxor	%mm2,%mm3
223238405Sjkim	psllq	$4,%mm2
224238405Sjkim	pxor	%mm1,%mm3
225238405Sjkim	paddq	(%ebp),%mm7
226238405Sjkim	pxor	%mm2,%mm3
227238405Sjkim	pxor	%mm6,%mm5
228238405Sjkim	movq	8(%esp),%mm1
229238405Sjkim	pand	%mm4,%mm5
230238405Sjkim	movq	16(%esp),%mm2
231238405Sjkim	pxor	%mm6,%mm5
232238405Sjkim	movq	24(%esp),%mm4
233238405Sjkim	paddq	%mm5,%mm3
234238405Sjkim	movq	%mm0,(%esp)
235238405Sjkim	paddq	%mm7,%mm3
236238405Sjkim	movq	%mm0,%mm5
237238405Sjkim	movq	%mm0,%mm6
238238405Sjkim	paddq	72(%esp),%mm3
239238405Sjkim	psrlq	$28,%mm5
240238405Sjkim	paddq	%mm3,%mm4
241238405Sjkim	psllq	$25,%mm6
242238405Sjkim	movq	%mm5,%mm7
243238405Sjkim	psrlq	$6,%mm5
244238405Sjkim	pxor	%mm6,%mm7
245238405Sjkim	psllq	$5,%mm6
246238405Sjkim	pxor	%mm5,%mm7
247238405Sjkim	psrlq	$5,%mm5
248238405Sjkim	pxor	%mm6,%mm7
249238405Sjkim	psllq	$6,%mm6
250238405Sjkim	pxor	%mm5,%mm7
251238405Sjkim	subl	$8,%esp
252238405Sjkim	pxor	%mm6,%mm7
253238405Sjkim	movq	%mm0,%mm5
254238405Sjkim	por	%mm2,%mm0
255238405Sjkim	movq	88(%esp),%mm6
256238405Sjkim	pand	%mm2,%mm5
257238405Sjkim	pand	%mm1,%mm0
258238405Sjkim	movq	192(%esp),%mm2
259238405Sjkim	por	%mm0,%mm5
260238405Sjkim	paddq	%mm5,%mm7
261238405Sjkim	movq	%mm3,%mm0
262238405Sjkim	movb	(%ebp),%dl
263238405Sjkim	paddq	%mm7,%mm0
264238405Sjkim	addl	$8,%ebp
265238405Sjkim	cmpb	$23,%dl
266238405Sjkim	jne	.L00516_79_sse2
267238405Sjkim	movq	8(%esp),%mm1
268238405Sjkim	movq	16(%esp),%mm2
269238405Sjkim	movq	24(%esp),%mm3
270238405Sjkim	movq	40(%esp),%mm5
271238405Sjkim	movq	48(%esp),%mm6
272238405Sjkim	movq	56(%esp),%mm7
273238405Sjkim	paddq	(%esi),%mm0
274238405Sjkim	paddq	8(%esi),%mm1
275238405Sjkim	paddq	16(%esi),%mm2
276238405Sjkim	paddq	24(%esi),%mm3
277238405Sjkim	paddq	32(%esi),%mm4
278238405Sjkim	paddq	40(%esi),%mm5
279238405Sjkim	paddq	48(%esi),%mm6
280238405Sjkim	paddq	56(%esi),%mm7
281238405Sjkim	movq	%mm0,(%esi)
282238405Sjkim	movq	%mm1,8(%esi)
283238405Sjkim	movq	%mm2,16(%esi)
284238405Sjkim	movq	%mm3,24(%esi)
285238405Sjkim	movq	%mm4,32(%esi)
286238405Sjkim	movq	%mm5,40(%esi)
287238405Sjkim	movq	%mm6,48(%esi)
288238405Sjkim	movq	%mm7,56(%esi)
289238405Sjkim	addl	$640,%esp
290238405Sjkim	subl	$640,%ebp
291238405Sjkim	cmpl	88(%esp),%edi
292238405Sjkim	jb	.L003loop_sse2
293238405Sjkim	emms
294238405Sjkim	movl	92(%esp),%esp
295238405Sjkim	popl	%edi
296238405Sjkim	popl	%esi
297238405Sjkim	popl	%ebx
298238405Sjkim	popl	%ebp
299238405Sjkim	ret
300238405Sjkim.align	16
301238405Sjkim.L002loop_x86:
302238405Sjkim	movl	(%edi),%eax
303238405Sjkim	movl	4(%edi),%ebx
304238405Sjkim	movl	8(%edi),%ecx
305238405Sjkim	movl	12(%edi),%edx
306238405Sjkim	bswap	%eax
307238405Sjkim	bswap	%ebx
308238405Sjkim	bswap	%ecx
309238405Sjkim	bswap	%edx
310238405Sjkim	pushl	%eax
311238405Sjkim	pushl	%ebx
312238405Sjkim	pushl	%ecx
313238405Sjkim	pushl	%edx
314238405Sjkim	movl	16(%edi),%eax
315238405Sjkim	movl	20(%edi),%ebx
316238405Sjkim	movl	24(%edi),%ecx
317238405Sjkim	movl	28(%edi),%edx
318238405Sjkim	bswap	%eax
319238405Sjkim	bswap	%ebx
320238405Sjkim	bswap	%ecx
321238405Sjkim	bswap	%edx
322238405Sjkim	pushl	%eax
323238405Sjkim	pushl	%ebx
324238405Sjkim	pushl	%ecx
325238405Sjkim	pushl	%edx
326238405Sjkim	movl	32(%edi),%eax
327238405Sjkim	movl	36(%edi),%ebx
328238405Sjkim	movl	40(%edi),%ecx
329238405Sjkim	movl	44(%edi),%edx
330238405Sjkim	bswap	%eax
331238405Sjkim	bswap	%ebx
332238405Sjkim	bswap	%ecx
333238405Sjkim	bswap	%edx
334238405Sjkim	pushl	%eax
335238405Sjkim	pushl	%ebx
336238405Sjkim	pushl	%ecx
337238405Sjkim	pushl	%edx
338238405Sjkim	movl	48(%edi),%eax
339238405Sjkim	movl	52(%edi),%ebx
340238405Sjkim	movl	56(%edi),%ecx
341238405Sjkim	movl	60(%edi),%edx
342238405Sjkim	bswap	%eax
343238405Sjkim	bswap	%ebx
344238405Sjkim	bswap	%ecx
345238405Sjkim	bswap	%edx
346238405Sjkim	pushl	%eax
347238405Sjkim	pushl	%ebx
348238405Sjkim	pushl	%ecx
349238405Sjkim	pushl	%edx
350238405Sjkim	movl	64(%edi),%eax
351238405Sjkim	movl	68(%edi),%ebx
352238405Sjkim	movl	72(%edi),%ecx
353238405Sjkim	movl	76(%edi),%edx
354238405Sjkim	bswap	%eax
355238405Sjkim	bswap	%ebx
356238405Sjkim	bswap	%ecx
357238405Sjkim	bswap	%edx
358238405Sjkim	pushl	%eax
359238405Sjkim	pushl	%ebx
360238405Sjkim	pushl	%ecx
361238405Sjkim	pushl	%edx
362238405Sjkim	movl	80(%edi),%eax
363238405Sjkim	movl	84(%edi),%ebx
364238405Sjkim	movl	88(%edi),%ecx
365238405Sjkim	movl	92(%edi),%edx
366238405Sjkim	bswap	%eax
367238405Sjkim	bswap	%ebx
368238405Sjkim	bswap	%ecx
369238405Sjkim	bswap	%edx
370238405Sjkim	pushl	%eax
371238405Sjkim	pushl	%ebx
372238405Sjkim	pushl	%ecx
373238405Sjkim	pushl	%edx
374238405Sjkim	movl	96(%edi),%eax
375238405Sjkim	movl	100(%edi),%ebx
376238405Sjkim	movl	104(%edi),%ecx
377238405Sjkim	movl	108(%edi),%edx
378238405Sjkim	bswap	%eax
379238405Sjkim	bswap	%ebx
380238405Sjkim	bswap	%ecx
381238405Sjkim	bswap	%edx
382238405Sjkim	pushl	%eax
383238405Sjkim	pushl	%ebx
384238405Sjkim	pushl	%ecx
385238405Sjkim	pushl	%edx
386238405Sjkim	movl	112(%edi),%eax
387238405Sjkim	movl	116(%edi),%ebx
388238405Sjkim	movl	120(%edi),%ecx
389238405Sjkim	movl	124(%edi),%edx
390238405Sjkim	bswap	%eax
391238405Sjkim	bswap	%ebx
392238405Sjkim	bswap	%ecx
393238405Sjkim	bswap	%edx
394238405Sjkim	pushl	%eax
395238405Sjkim	pushl	%ebx
396238405Sjkim	pushl	%ecx
397238405Sjkim	pushl	%edx
398238405Sjkim	addl	$128,%edi
399238405Sjkim	subl	$72,%esp
400238405Sjkim	movl	%edi,204(%esp)
401238405Sjkim	leal	8(%esp),%edi
402238405Sjkim	movl	$16,%ecx
403238405Sjkim.long	2784229001
404238405Sjkim.align	16
405238405Sjkim.L00600_15_x86:
406238405Sjkim	movl	40(%esp),%ecx
407238405Sjkim	movl	44(%esp),%edx
408238405Sjkim	movl	%ecx,%esi
409238405Sjkim	shrl	$9,%ecx
410238405Sjkim	movl	%edx,%edi
411238405Sjkim	shrl	$9,%edx
412238405Sjkim	movl	%ecx,%ebx
413238405Sjkim	shll	$14,%esi
414238405Sjkim	movl	%edx,%eax
415238405Sjkim	shll	$14,%edi
416238405Sjkim	xorl	%esi,%ebx
417238405Sjkim	shrl	$5,%ecx
418238405Sjkim	xorl	%edi,%eax
419238405Sjkim	shrl	$5,%edx
420238405Sjkim	xorl	%ecx,%eax
421238405Sjkim	shll	$4,%esi
422238405Sjkim	xorl	%edx,%ebx
423238405Sjkim	shll	$4,%edi
424238405Sjkim	xorl	%esi,%ebx
425238405Sjkim	shrl	$4,%ecx
426238405Sjkim	xorl	%edi,%eax
427238405Sjkim	shrl	$4,%edx
428238405Sjkim	xorl	%ecx,%eax
429238405Sjkim	shll	$5,%esi
430238405Sjkim	xorl	%edx,%ebx
431238405Sjkim	shll	$5,%edi
432238405Sjkim	xorl	%esi,%eax
433238405Sjkim	xorl	%edi,%ebx
434238405Sjkim	movl	48(%esp),%ecx
435238405Sjkim	movl	52(%esp),%edx
436238405Sjkim	movl	56(%esp),%esi
437238405Sjkim	movl	60(%esp),%edi
438238405Sjkim	addl	64(%esp),%eax
439238405Sjkim	adcl	68(%esp),%ebx
440238405Sjkim	xorl	%esi,%ecx
441238405Sjkim	xorl	%edi,%edx
442238405Sjkim	andl	40(%esp),%ecx
443238405Sjkim	andl	44(%esp),%edx
444238405Sjkim	addl	192(%esp),%eax
445238405Sjkim	adcl	196(%esp),%ebx
446238405Sjkim	xorl	%esi,%ecx
447238405Sjkim	xorl	%edi,%edx
448238405Sjkim	movl	(%ebp),%esi
449238405Sjkim	movl	4(%ebp),%edi
450238405Sjkim	addl	%ecx,%eax
451238405Sjkim	adcl	%edx,%ebx
452238405Sjkim	movl	32(%esp),%ecx
453238405Sjkim	movl	36(%esp),%edx
454238405Sjkim	addl	%esi,%eax
455238405Sjkim	adcl	%edi,%ebx
456238405Sjkim	movl	%eax,(%esp)
457238405Sjkim	movl	%ebx,4(%esp)
458238405Sjkim	addl	%ecx,%eax
459238405Sjkim	adcl	%edx,%ebx
460238405Sjkim	movl	8(%esp),%ecx
461238405Sjkim	movl	12(%esp),%edx
462238405Sjkim	movl	%eax,32(%esp)
463238405Sjkim	movl	%ebx,36(%esp)
464238405Sjkim	movl	%ecx,%esi
465238405Sjkim	shrl	$2,%ecx
466238405Sjkim	movl	%edx,%edi
467238405Sjkim	shrl	$2,%edx
468238405Sjkim	movl	%ecx,%ebx
469238405Sjkim	shll	$4,%esi
470238405Sjkim	movl	%edx,%eax
471238405Sjkim	shll	$4,%edi
472238405Sjkim	xorl	%esi,%ebx
473238405Sjkim	shrl	$5,%ecx
474238405Sjkim	xorl	%edi,%eax
475238405Sjkim	shrl	$5,%edx
476238405Sjkim	xorl	%ecx,%ebx
477238405Sjkim	shll	$21,%esi
478238405Sjkim	xorl	%edx,%eax
479238405Sjkim	shll	$21,%edi
480238405Sjkim	xorl	%esi,%eax
481238405Sjkim	shrl	$21,%ecx
482238405Sjkim	xorl	%edi,%ebx
483238405Sjkim	shrl	$21,%edx
484238405Sjkim	xorl	%ecx,%eax
485238405Sjkim	shll	$5,%esi
486238405Sjkim	xorl	%edx,%ebx
487238405Sjkim	shll	$5,%edi
488238405Sjkim	xorl	%esi,%eax
489238405Sjkim	xorl	%edi,%ebx
490238405Sjkim	movl	8(%esp),%ecx
491238405Sjkim	movl	12(%esp),%edx
492238405Sjkim	movl	16(%esp),%esi
493238405Sjkim	movl	20(%esp),%edi
494238405Sjkim	addl	(%esp),%eax
495238405Sjkim	adcl	4(%esp),%ebx
496238405Sjkim	orl	%esi,%ecx
497238405Sjkim	orl	%edi,%edx
498238405Sjkim	andl	24(%esp),%ecx
499238405Sjkim	andl	28(%esp),%edx
500238405Sjkim	andl	8(%esp),%esi
501238405Sjkim	andl	12(%esp),%edi
502238405Sjkim	orl	%esi,%ecx
503238405Sjkim	orl	%edi,%edx
504238405Sjkim	addl	%ecx,%eax
505238405Sjkim	adcl	%edx,%ebx
506238405Sjkim	movl	%eax,(%esp)
507238405Sjkim	movl	%ebx,4(%esp)
508238405Sjkim	movb	(%ebp),%dl
509238405Sjkim	subl	$8,%esp
510238405Sjkim	leal	8(%ebp),%ebp
511238405Sjkim	cmpb	$148,%dl
512238405Sjkim	jne	.L00600_15_x86
513238405Sjkim.align	16
514238405Sjkim.L00716_79_x86:
515238405Sjkim	movl	312(%esp),%ecx
516238405Sjkim	movl	316(%esp),%edx
517238405Sjkim	movl	%ecx,%esi
518238405Sjkim	shrl	$1,%ecx
519238405Sjkim	movl	%edx,%edi
520238405Sjkim	shrl	$1,%edx
521238405Sjkim	movl	%ecx,%eax
522238405Sjkim	shll	$24,%esi
523238405Sjkim	movl	%edx,%ebx
524238405Sjkim	shll	$24,%edi
525238405Sjkim	xorl	%esi,%ebx
526238405Sjkim	shrl	$6,%ecx
527238405Sjkim	xorl	%edi,%eax
528238405Sjkim	shrl	$6,%edx
529238405Sjkim	xorl	%ecx,%eax
530238405Sjkim	shll	$7,%esi
531238405Sjkim	xorl	%edx,%ebx
532238405Sjkim	shll	$1,%edi
533238405Sjkim	xorl	%esi,%ebx
534238405Sjkim	shrl	$1,%ecx
535238405Sjkim	xorl	%edi,%eax
536238405Sjkim	shrl	$1,%edx
537238405Sjkim	xorl	%ecx,%eax
538238405Sjkim	shll	$6,%edi
539238405Sjkim	xorl	%edx,%ebx
540238405Sjkim	xorl	%edi,%eax
541238405Sjkim	movl	%eax,(%esp)
542238405Sjkim	movl	%ebx,4(%esp)
543238405Sjkim	movl	208(%esp),%ecx
544238405Sjkim	movl	212(%esp),%edx
545238405Sjkim	movl	%ecx,%esi
546238405Sjkim	shrl	$6,%ecx
547238405Sjkim	movl	%edx,%edi
548238405Sjkim	shrl	$6,%edx
549238405Sjkim	movl	%ecx,%eax
550238405Sjkim	shll	$3,%esi
551238405Sjkim	movl	%edx,%ebx
552238405Sjkim	shll	$3,%edi
553238405Sjkim	xorl	%esi,%eax
554238405Sjkim	shrl	$13,%ecx
555238405Sjkim	xorl	%edi,%ebx
556238405Sjkim	shrl	$13,%edx
557238405Sjkim	xorl	%ecx,%eax
558238405Sjkim	shll	$10,%esi
559238405Sjkim	xorl	%edx,%ebx
560238405Sjkim	shll	$10,%edi
561238405Sjkim	xorl	%esi,%ebx
562238405Sjkim	shrl	$10,%ecx
563238405Sjkim	xorl	%edi,%eax
564238405Sjkim	shrl	$10,%edx
565238405Sjkim	xorl	%ecx,%ebx
566238405Sjkim	shll	$13,%edi
567238405Sjkim	xorl	%edx,%eax
568238405Sjkim	xorl	%edi,%eax
569238405Sjkim	movl	320(%esp),%ecx
570238405Sjkim	movl	324(%esp),%edx
571238405Sjkim	addl	(%esp),%eax
572238405Sjkim	adcl	4(%esp),%ebx
573238405Sjkim	movl	248(%esp),%esi
574238405Sjkim	movl	252(%esp),%edi
575238405Sjkim	addl	%ecx,%eax
576238405Sjkim	adcl	%edx,%ebx
577238405Sjkim	addl	%esi,%eax
578238405Sjkim	adcl	%edi,%ebx
579238405Sjkim	movl	%eax,192(%esp)
580238405Sjkim	movl	%ebx,196(%esp)
581238405Sjkim	movl	40(%esp),%ecx
582238405Sjkim	movl	44(%esp),%edx
583238405Sjkim	movl	%ecx,%esi
584238405Sjkim	shrl	$9,%ecx
585238405Sjkim	movl	%edx,%edi
586238405Sjkim	shrl	$9,%edx
587238405Sjkim	movl	%ecx,%ebx
588238405Sjkim	shll	$14,%esi
589238405Sjkim	movl	%edx,%eax
590238405Sjkim	shll	$14,%edi
591238405Sjkim	xorl	%esi,%ebx
592238405Sjkim	shrl	$5,%ecx
593238405Sjkim	xorl	%edi,%eax
594238405Sjkim	shrl	$5,%edx
595238405Sjkim	xorl	%ecx,%eax
596238405Sjkim	shll	$4,%esi
597238405Sjkim	xorl	%edx,%ebx
598238405Sjkim	shll	$4,%edi
599238405Sjkim	xorl	%esi,%ebx
600238405Sjkim	shrl	$4,%ecx
601238405Sjkim	xorl	%edi,%eax
602238405Sjkim	shrl	$4,%edx
603238405Sjkim	xorl	%ecx,%eax
604238405Sjkim	shll	$5,%esi
605238405Sjkim	xorl	%edx,%ebx
606238405Sjkim	shll	$5,%edi
607238405Sjkim	xorl	%esi,%eax
608238405Sjkim	xorl	%edi,%ebx
609238405Sjkim	movl	48(%esp),%ecx
610238405Sjkim	movl	52(%esp),%edx
611238405Sjkim	movl	56(%esp),%esi
612238405Sjkim	movl	60(%esp),%edi
613238405Sjkim	addl	64(%esp),%eax
614238405Sjkim	adcl	68(%esp),%ebx
615238405Sjkim	xorl	%esi,%ecx
616238405Sjkim	xorl	%edi,%edx
617238405Sjkim	andl	40(%esp),%ecx
618238405Sjkim	andl	44(%esp),%edx
619238405Sjkim	addl	192(%esp),%eax
620238405Sjkim	adcl	196(%esp),%ebx
621238405Sjkim	xorl	%esi,%ecx
622238405Sjkim	xorl	%edi,%edx
623238405Sjkim	movl	(%ebp),%esi
624238405Sjkim	movl	4(%ebp),%edi
625238405Sjkim	addl	%ecx,%eax
626238405Sjkim	adcl	%edx,%ebx
627238405Sjkim	movl	32(%esp),%ecx
628238405Sjkim	movl	36(%esp),%edx
629238405Sjkim	addl	%esi,%eax
630238405Sjkim	adcl	%edi,%ebx
631238405Sjkim	movl	%eax,(%esp)
632238405Sjkim	movl	%ebx,4(%esp)
633238405Sjkim	addl	%ecx,%eax
634238405Sjkim	adcl	%edx,%ebx
635238405Sjkim	movl	8(%esp),%ecx
636238405Sjkim	movl	12(%esp),%edx
637238405Sjkim	movl	%eax,32(%esp)
638238405Sjkim	movl	%ebx,36(%esp)
639238405Sjkim	movl	%ecx,%esi
640238405Sjkim	shrl	$2,%ecx
641238405Sjkim	movl	%edx,%edi
642238405Sjkim	shrl	$2,%edx
643238405Sjkim	movl	%ecx,%ebx
644238405Sjkim	shll	$4,%esi
645238405Sjkim	movl	%edx,%eax
646238405Sjkim	shll	$4,%edi
647238405Sjkim	xorl	%esi,%ebx
648238405Sjkim	shrl	$5,%ecx
649238405Sjkim	xorl	%edi,%eax
650238405Sjkim	shrl	$5,%edx
651238405Sjkim	xorl	%ecx,%ebx
652238405Sjkim	shll	$21,%esi
653238405Sjkim	xorl	%edx,%eax
654238405Sjkim	shll	$21,%edi
655238405Sjkim	xorl	%esi,%eax
656238405Sjkim	shrl	$21,%ecx
657238405Sjkim	xorl	%edi,%ebx
658238405Sjkim	shrl	$21,%edx
659238405Sjkim	xorl	%ecx,%eax
660238405Sjkim	shll	$5,%esi
661238405Sjkim	xorl	%edx,%ebx
662238405Sjkim	shll	$5,%edi
663238405Sjkim	xorl	%esi,%eax
664238405Sjkim	xorl	%edi,%ebx
665238405Sjkim	movl	8(%esp),%ecx
666238405Sjkim	movl	12(%esp),%edx
667238405Sjkim	movl	16(%esp),%esi
668238405Sjkim	movl	20(%esp),%edi
669238405Sjkim	addl	(%esp),%eax
670238405Sjkim	adcl	4(%esp),%ebx
671238405Sjkim	orl	%esi,%ecx
672238405Sjkim	orl	%edi,%edx
673238405Sjkim	andl	24(%esp),%ecx
674238405Sjkim	andl	28(%esp),%edx
675238405Sjkim	andl	8(%esp),%esi
676238405Sjkim	andl	12(%esp),%edi
677238405Sjkim	orl	%esi,%ecx
678238405Sjkim	orl	%edi,%edx
679238405Sjkim	addl	%ecx,%eax
680238405Sjkim	adcl	%edx,%ebx
681238405Sjkim	movl	%eax,(%esp)
682238405Sjkim	movl	%ebx,4(%esp)
683238405Sjkim	movb	(%ebp),%dl
684238405Sjkim	subl	$8,%esp
685238405Sjkim	leal	8(%ebp),%ebp
686238405Sjkim	cmpb	$23,%dl
687238405Sjkim	jne	.L00716_79_x86
688238405Sjkim	movl	840(%esp),%esi
689238405Sjkim	movl	844(%esp),%edi
690238405Sjkim	movl	(%esi),%eax
691238405Sjkim	movl	4(%esi),%ebx
692238405Sjkim	movl	8(%esi),%ecx
693238405Sjkim	movl	12(%esi),%edx
694238405Sjkim	addl	8(%esp),%eax
695238405Sjkim	adcl	12(%esp),%ebx
696238405Sjkim	movl	%eax,(%esi)
697238405Sjkim	movl	%ebx,4(%esi)
698238405Sjkim	addl	16(%esp),%ecx
699238405Sjkim	adcl	20(%esp),%edx
700238405Sjkim	movl	%ecx,8(%esi)
701238405Sjkim	movl	%edx,12(%esi)
702238405Sjkim	movl	16(%esi),%eax
703238405Sjkim	movl	20(%esi),%ebx
704238405Sjkim	movl	24(%esi),%ecx
705238405Sjkim	movl	28(%esi),%edx
706238405Sjkim	addl	24(%esp),%eax
707238405Sjkim	adcl	28(%esp),%ebx
708238405Sjkim	movl	%eax,16(%esi)
709238405Sjkim	movl	%ebx,20(%esi)
710238405Sjkim	addl	32(%esp),%ecx
711238405Sjkim	adcl	36(%esp),%edx
712238405Sjkim	movl	%ecx,24(%esi)
713238405Sjkim	movl	%edx,28(%esi)
714238405Sjkim	movl	32(%esi),%eax
715238405Sjkim	movl	36(%esi),%ebx
716238405Sjkim	movl	40(%esi),%ecx
717238405Sjkim	movl	44(%esi),%edx
718238405Sjkim	addl	40(%esp),%eax
719238405Sjkim	adcl	44(%esp),%ebx
720238405Sjkim	movl	%eax,32(%esi)
721238405Sjkim	movl	%ebx,36(%esi)
722238405Sjkim	addl	48(%esp),%ecx
723238405Sjkim	adcl	52(%esp),%edx
724238405Sjkim	movl	%ecx,40(%esi)
725238405Sjkim	movl	%edx,44(%esi)
726238405Sjkim	movl	48(%esi),%eax
727238405Sjkim	movl	52(%esi),%ebx
728238405Sjkim	movl	56(%esi),%ecx
729238405Sjkim	movl	60(%esi),%edx
730238405Sjkim	addl	56(%esp),%eax
731238405Sjkim	adcl	60(%esp),%ebx
732238405Sjkim	movl	%eax,48(%esi)
733238405Sjkim	movl	%ebx,52(%esi)
734238405Sjkim	addl	64(%esp),%ecx
735238405Sjkim	adcl	68(%esp),%edx
736238405Sjkim	movl	%ecx,56(%esi)
737238405Sjkim	movl	%edx,60(%esi)
738238405Sjkim	addl	$840,%esp
739238405Sjkim	subl	$640,%ebp
740238405Sjkim	cmpl	8(%esp),%edi
741238405Sjkim	jb	.L002loop_x86
742238405Sjkim	movl	12(%esp),%esp
743238405Sjkim	popl	%edi
744238405Sjkim	popl	%esi
745238405Sjkim	popl	%ebx
746238405Sjkim	popl	%ebp
747238405Sjkim	ret
748238405Sjkim.align	64
749238405Sjkim.L001K512:
750238405Sjkim.long	3609767458,1116352408
751238405Sjkim.long	602891725,1899447441
752238405Sjkim.long	3964484399,3049323471
753238405Sjkim.long	2173295548,3921009573
754238405Sjkim.long	4081628472,961987163
755238405Sjkim.long	3053834265,1508970993
756238405Sjkim.long	2937671579,2453635748
757238405Sjkim.long	3664609560,2870763221
758238405Sjkim.long	2734883394,3624381080
759238405Sjkim.long	1164996542,310598401
760238405Sjkim.long	1323610764,607225278
761238405Sjkim.long	3590304994,1426881987
762238405Sjkim.long	4068182383,1925078388
763238405Sjkim.long	991336113,2162078206
764238405Sjkim.long	633803317,2614888103
765238405Sjkim.long	3479774868,3248222580
766238405Sjkim.long	2666613458,3835390401
767238405Sjkim.long	944711139,4022224774
768238405Sjkim.long	2341262773,264347078
769238405Sjkim.long	2007800933,604807628
770238405Sjkim.long	1495990901,770255983
771238405Sjkim.long	1856431235,1249150122
772238405Sjkim.long	3175218132,1555081692
773238405Sjkim.long	2198950837,1996064986
774238405Sjkim.long	3999719339,2554220882
775238405Sjkim.long	766784016,2821834349
776238405Sjkim.long	2566594879,2952996808
777238405Sjkim.long	3203337956,3210313671
778238405Sjkim.long	1034457026,3336571891
779238405Sjkim.long	2466948901,3584528711
780238405Sjkim.long	3758326383,113926993
781238405Sjkim.long	168717936,338241895
782238405Sjkim.long	1188179964,666307205
783238405Sjkim.long	1546045734,773529912
784238405Sjkim.long	1522805485,1294757372
785238405Sjkim.long	2643833823,1396182291
786238405Sjkim.long	2343527390,1695183700
787238405Sjkim.long	1014477480,1986661051
788238405Sjkim.long	1206759142,2177026350
789238405Sjkim.long	344077627,2456956037
790238405Sjkim.long	1290863460,2730485921
791238405Sjkim.long	3158454273,2820302411
792238405Sjkim.long	3505952657,3259730800
793238405Sjkim.long	106217008,3345764771
794238405Sjkim.long	3606008344,3516065817
795238405Sjkim.long	1432725776,3600352804
796238405Sjkim.long	1467031594,4094571909
797238405Sjkim.long	851169720,275423344
798238405Sjkim.long	3100823752,430227734
799238405Sjkim.long	1363258195,506948616
800238405Sjkim.long	3750685593,659060556
801238405Sjkim.long	3785050280,883997877
802238405Sjkim.long	3318307427,958139571
803238405Sjkim.long	3812723403,1322822218
804238405Sjkim.long	2003034995,1537002063
805238405Sjkim.long	3602036899,1747873779
806238405Sjkim.long	1575990012,1955562222
807238405Sjkim.long	1125592928,2024104815
808238405Sjkim.long	2716904306,2227730452
809238405Sjkim.long	442776044,2361852424
810238405Sjkim.long	593698344,2428436474
811238405Sjkim.long	3733110249,2756734187
812238405Sjkim.long	2999351573,3204031479
813238405Sjkim.long	3815920427,3329325298
814238405Sjkim.long	3928383900,3391569614
815238405Sjkim.long	566280711,3515267271
816238405Sjkim.long	3454069534,3940187606
817238405Sjkim.long	4000239992,4118630271
818238405Sjkim.long	1914138554,116418474
819238405Sjkim.long	2731055270,174292421
820238405Sjkim.long	3203993006,289380356
821238405Sjkim.long	320620315,460393269
822238405Sjkim.long	587496836,685471733
823238405Sjkim.long	1086792851,852142971
824238405Sjkim.long	365543100,1017036298
825238405Sjkim.long	2618297676,1126000580
826238405Sjkim.long	3409855158,1288033470
827238405Sjkim.long	4234509866,1501505948
828238405Sjkim.long	987167468,1607167915
829238405Sjkim.long	1246189591,1816402316
830238405Sjkim.size	sha512_block_data_order,.-.L_sha512_block_data_order_begin
831238405Sjkim.byte	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
832238405Sjkim.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
833238405Sjkim.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
834238405Sjkim.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
835238405Sjkim.byte	62,0
836238405Sjkim.comm	OPENSSL_ia32cap_P,8,4
837