1299966Sjkim# $FreeBSD$
2299966Sjkim# Do not modify. This file is auto-generated from sha512-586.pl.
3299966Sjkim#ifdef PIC
4299966Sjkim.file	"sha512-586.S"
5238405Sjkim.text
6238405Sjkim.globl	sha512_block_data_order
7238405Sjkim.type	sha512_block_data_order,@function
8238405Sjkim.align	16
9238405Sjkimsha512_block_data_order:
10238405Sjkim.L_sha512_block_data_order_begin:
11238405Sjkim	pushl	%ebp
12238405Sjkim	pushl	%ebx
13238405Sjkim	pushl	%esi
14238405Sjkim	pushl	%edi
15238405Sjkim	movl	20(%esp),%esi
16238405Sjkim	movl	24(%esp),%edi
17238405Sjkim	movl	28(%esp),%eax
18238405Sjkim	movl	%esp,%ebx
19238405Sjkim	call	.L000pic_point
20238405Sjkim.L000pic_point:
21238405Sjkim	popl	%ebp
22238405Sjkim	leal	.L001K512-.L000pic_point(%ebp),%ebp
23238405Sjkim	subl	$16,%esp
24238405Sjkim	andl	$-64,%esp
25238405Sjkim	shll	$7,%eax
26238405Sjkim	addl	%edi,%eax
27238405Sjkim	movl	%esi,(%esp)
28238405Sjkim	movl	%edi,4(%esp)
29238405Sjkim	movl	%eax,8(%esp)
30238405Sjkim	movl	%ebx,12(%esp)
31299966Sjkim	leal	_GLOBAL_OFFSET_TABLE_+[.-.L001K512](%ebp),%edx
32299966Sjkim	movl	OPENSSL_ia32cap_P@GOT(%edx),%edx
33299966Sjkim	btl	$26,(%edx)
34299966Sjkim	jnc	.L002loop_x86
35299966Sjkim	movq	(%esi),%mm0
36299966Sjkim	movq	8(%esi),%mm1
37299966Sjkim	movq	16(%esi),%mm2
38299966Sjkim	movq	24(%esi),%mm3
39299966Sjkim	movq	32(%esi),%mm4
40299966Sjkim	movq	40(%esi),%mm5
41299966Sjkim	movq	48(%esi),%mm6
42299966Sjkim	movq	56(%esi),%mm7
43299966Sjkim	subl	$80,%esp
44299966Sjkim.align	16
45299966Sjkim.L003loop_sse2:
46299966Sjkim	movq	%mm1,8(%esp)
47299966Sjkim	movq	%mm2,16(%esp)
48299966Sjkim	movq	%mm3,24(%esp)
49299966Sjkim	movq	%mm5,40(%esp)
50299966Sjkim	movq	%mm6,48(%esp)
51299966Sjkim	movq	%mm7,56(%esp)
52299966Sjkim	movl	(%edi),%ecx
53299966Sjkim	movl	4(%edi),%edx
54299966Sjkim	addl	$8,%edi
55299966Sjkim	bswap	%ecx
56299966Sjkim	bswap	%edx
57299966Sjkim	movl	%ecx,76(%esp)
58299966Sjkim	movl	%edx,72(%esp)
59299966Sjkim.align	16
60299966Sjkim.L00400_14_sse2:
61299966Sjkim	movl	(%edi),%eax
62299966Sjkim	movl	4(%edi),%ebx
63299966Sjkim	addl	$8,%edi
64299966Sjkim	bswap	%eax
65299966Sjkim	bswap	%ebx
66299966Sjkim	movl	%eax,68(%esp)
67299966Sjkim	movl	%ebx,64(%esp)
68299966Sjkim	movq	40(%esp),%mm5
69299966Sjkim	movq	48(%esp),%mm6
70299966Sjkim	movq	56(%esp),%mm7
71299966Sjkim	movq	%mm4,%mm1
72299966Sjkim	movq	%mm4,%mm2
73299966Sjkim	psrlq	$14,%mm1
74299966Sjkim	movq	%mm4,32(%esp)
75299966Sjkim	psllq	$23,%mm2
76299966Sjkim	movq	%mm1,%mm3
77299966Sjkim	psrlq	$4,%mm1
78299966Sjkim	pxor	%mm2,%mm3
79299966Sjkim	psllq	$23,%mm2
80299966Sjkim	pxor	%mm1,%mm3
81299966Sjkim	psrlq	$23,%mm1
82299966Sjkim	pxor	%mm2,%mm3
83299966Sjkim	psllq	$4,%mm2
84299966Sjkim	pxor	%mm1,%mm3
85299966Sjkim	paddq	(%ebp),%mm7
86299966Sjkim	pxor	%mm2,%mm3
87299966Sjkim	pxor	%mm6,%mm5
88299966Sjkim	movq	8(%esp),%mm1
89299966Sjkim	pand	%mm4,%mm5
90299966Sjkim	movq	16(%esp),%mm2
91299966Sjkim	pxor	%mm6,%mm5
92299966Sjkim	movq	24(%esp),%mm4
93299966Sjkim	paddq	%mm5,%mm3
94299966Sjkim	movq	%mm0,(%esp)
95299966Sjkim	paddq	%mm7,%mm3
96299966Sjkim	movq	%mm0,%mm5
97299966Sjkim	movq	%mm0,%mm6
98299966Sjkim	paddq	72(%esp),%mm3
99299966Sjkim	psrlq	$28,%mm5
100299966Sjkim	paddq	%mm3,%mm4
101299966Sjkim	psllq	$25,%mm6
102299966Sjkim	movq	%mm5,%mm7
103299966Sjkim	psrlq	$6,%mm5
104299966Sjkim	pxor	%mm6,%mm7
105299966Sjkim	psllq	$5,%mm6
106299966Sjkim	pxor	%mm5,%mm7
107299966Sjkim	psrlq	$5,%mm5
108299966Sjkim	pxor	%mm6,%mm7
109299966Sjkim	psllq	$6,%mm6
110299966Sjkim	pxor	%mm5,%mm7
111299966Sjkim	subl	$8,%esp
112299966Sjkim	pxor	%mm6,%mm7
113299966Sjkim	movq	%mm0,%mm5
114299966Sjkim	por	%mm2,%mm0
115299966Sjkim	pand	%mm2,%mm5
116299966Sjkim	pand	%mm1,%mm0
117299966Sjkim	por	%mm0,%mm5
118299966Sjkim	paddq	%mm5,%mm7
119299966Sjkim	movq	%mm3,%mm0
120299966Sjkim	movb	(%ebp),%dl
121299966Sjkim	paddq	%mm7,%mm0
122299966Sjkim	addl	$8,%ebp
123299966Sjkim	cmpb	$53,%dl
124299966Sjkim	jne	.L00400_14_sse2
125299966Sjkim	movq	40(%esp),%mm5
126299966Sjkim	movq	48(%esp),%mm6
127299966Sjkim	movq	56(%esp),%mm7
128299966Sjkim	movq	%mm4,%mm1
129299966Sjkim	movq	%mm4,%mm2
130299966Sjkim	psrlq	$14,%mm1
131299966Sjkim	movq	%mm4,32(%esp)
132299966Sjkim	psllq	$23,%mm2
133299966Sjkim	movq	%mm1,%mm3
134299966Sjkim	psrlq	$4,%mm1
135299966Sjkim	pxor	%mm2,%mm3
136299966Sjkim	psllq	$23,%mm2
137299966Sjkim	pxor	%mm1,%mm3
138299966Sjkim	psrlq	$23,%mm1
139299966Sjkim	pxor	%mm2,%mm3
140299966Sjkim	psllq	$4,%mm2
141299966Sjkim	pxor	%mm1,%mm3
142299966Sjkim	paddq	(%ebp),%mm7
143299966Sjkim	pxor	%mm2,%mm3
144299966Sjkim	pxor	%mm6,%mm5
145299966Sjkim	movq	8(%esp),%mm1
146299966Sjkim	pand	%mm4,%mm5
147299966Sjkim	movq	16(%esp),%mm2
148299966Sjkim	pxor	%mm6,%mm5
149299966Sjkim	movq	24(%esp),%mm4
150299966Sjkim	paddq	%mm5,%mm3
151299966Sjkim	movq	%mm0,(%esp)
152299966Sjkim	paddq	%mm7,%mm3
153299966Sjkim	movq	%mm0,%mm5
154299966Sjkim	movq	%mm0,%mm6
155299966Sjkim	paddq	72(%esp),%mm3
156299966Sjkim	psrlq	$28,%mm5
157299966Sjkim	paddq	%mm3,%mm4
158299966Sjkim	psllq	$25,%mm6
159299966Sjkim	movq	%mm5,%mm7
160299966Sjkim	psrlq	$6,%mm5
161299966Sjkim	pxor	%mm6,%mm7
162299966Sjkim	psllq	$5,%mm6
163299966Sjkim	pxor	%mm5,%mm7
164299966Sjkim	psrlq	$5,%mm5
165299966Sjkim	pxor	%mm6,%mm7
166299966Sjkim	psllq	$6,%mm6
167299966Sjkim	pxor	%mm5,%mm7
168299966Sjkim	subl	$8,%esp
169299966Sjkim	pxor	%mm6,%mm7
170299966Sjkim	movq	%mm0,%mm5
171299966Sjkim	por	%mm2,%mm0
172299966Sjkim	movq	88(%esp),%mm6
173299966Sjkim	pand	%mm2,%mm5
174299966Sjkim	pand	%mm1,%mm0
175299966Sjkim	movq	192(%esp),%mm2
176299966Sjkim	por	%mm0,%mm5
177299966Sjkim	paddq	%mm5,%mm7
178299966Sjkim	movq	%mm3,%mm0
179299966Sjkim	movb	(%ebp),%dl
180299966Sjkim	paddq	%mm7,%mm0
181299966Sjkim	addl	$8,%ebp
182299966Sjkim.align	16
183299966Sjkim.L00516_79_sse2:
184299966Sjkim	movq	%mm2,%mm1
185299966Sjkim	psrlq	$1,%mm2
186299966Sjkim	movq	%mm6,%mm7
187299966Sjkim	psrlq	$6,%mm6
188299966Sjkim	movq	%mm2,%mm3
189299966Sjkim	psrlq	$6,%mm2
190299966Sjkim	movq	%mm6,%mm5
191299966Sjkim	psrlq	$13,%mm6
192299966Sjkim	pxor	%mm2,%mm3
193299966Sjkim	psrlq	$1,%mm2
194299966Sjkim	pxor	%mm6,%mm5
195299966Sjkim	psrlq	$42,%mm6
196299966Sjkim	pxor	%mm2,%mm3
197299966Sjkim	movq	200(%esp),%mm2
198299966Sjkim	psllq	$56,%mm1
199299966Sjkim	pxor	%mm6,%mm5
200299966Sjkim	psllq	$3,%mm7
201299966Sjkim	pxor	%mm1,%mm3
202299966Sjkim	paddq	128(%esp),%mm2
203299966Sjkim	psllq	$7,%mm1
204299966Sjkim	pxor	%mm7,%mm5
205299966Sjkim	psllq	$42,%mm7
206299966Sjkim	pxor	%mm1,%mm3
207299966Sjkim	pxor	%mm7,%mm5
208299966Sjkim	paddq	%mm5,%mm3
209299966Sjkim	paddq	%mm2,%mm3
210299966Sjkim	movq	%mm3,72(%esp)
211299966Sjkim	movq	40(%esp),%mm5
212299966Sjkim	movq	48(%esp),%mm6
213299966Sjkim	movq	56(%esp),%mm7
214299966Sjkim	movq	%mm4,%mm1
215299966Sjkim	movq	%mm4,%mm2
216299966Sjkim	psrlq	$14,%mm1
217299966Sjkim	movq	%mm4,32(%esp)
218299966Sjkim	psllq	$23,%mm2
219299966Sjkim	movq	%mm1,%mm3
220299966Sjkim	psrlq	$4,%mm1
221299966Sjkim	pxor	%mm2,%mm3
222299966Sjkim	psllq	$23,%mm2
223299966Sjkim	pxor	%mm1,%mm3
224299966Sjkim	psrlq	$23,%mm1
225299966Sjkim	pxor	%mm2,%mm3
226299966Sjkim	psllq	$4,%mm2
227299966Sjkim	pxor	%mm1,%mm3
228299966Sjkim	paddq	(%ebp),%mm7
229299966Sjkim	pxor	%mm2,%mm3
230299966Sjkim	pxor	%mm6,%mm5
231299966Sjkim	movq	8(%esp),%mm1
232299966Sjkim	pand	%mm4,%mm5
233299966Sjkim	movq	16(%esp),%mm2
234299966Sjkim	pxor	%mm6,%mm5
235299966Sjkim	movq	24(%esp),%mm4
236299966Sjkim	paddq	%mm5,%mm3
237299966Sjkim	movq	%mm0,(%esp)
238299966Sjkim	paddq	%mm7,%mm3
239299966Sjkim	movq	%mm0,%mm5
240299966Sjkim	movq	%mm0,%mm6
241299966Sjkim	paddq	72(%esp),%mm3
242299966Sjkim	psrlq	$28,%mm5
243299966Sjkim	paddq	%mm3,%mm4
244299966Sjkim	psllq	$25,%mm6
245299966Sjkim	movq	%mm5,%mm7
246299966Sjkim	psrlq	$6,%mm5
247299966Sjkim	pxor	%mm6,%mm7
248299966Sjkim	psllq	$5,%mm6
249299966Sjkim	pxor	%mm5,%mm7
250299966Sjkim	psrlq	$5,%mm5
251299966Sjkim	pxor	%mm6,%mm7
252299966Sjkim	psllq	$6,%mm6
253299966Sjkim	pxor	%mm5,%mm7
254299966Sjkim	subl	$8,%esp
255299966Sjkim	pxor	%mm6,%mm7
256299966Sjkim	movq	%mm0,%mm5
257299966Sjkim	por	%mm2,%mm0
258299966Sjkim	movq	88(%esp),%mm6
259299966Sjkim	pand	%mm2,%mm5
260299966Sjkim	pand	%mm1,%mm0
261299966Sjkim	movq	192(%esp),%mm2
262299966Sjkim	por	%mm0,%mm5
263299966Sjkim	paddq	%mm5,%mm7
264299966Sjkim	movq	%mm3,%mm0
265299966Sjkim	movb	(%ebp),%dl
266299966Sjkim	paddq	%mm7,%mm0
267299966Sjkim	addl	$8,%ebp
268299966Sjkim	cmpb	$23,%dl
269299966Sjkim	jne	.L00516_79_sse2
270299966Sjkim	movq	8(%esp),%mm1
271299966Sjkim	movq	16(%esp),%mm2
272299966Sjkim	movq	24(%esp),%mm3
273299966Sjkim	movq	40(%esp),%mm5
274299966Sjkim	movq	48(%esp),%mm6
275299966Sjkim	movq	56(%esp),%mm7
276299966Sjkim	paddq	(%esi),%mm0
277299966Sjkim	paddq	8(%esi),%mm1
278299966Sjkim	paddq	16(%esi),%mm2
279299966Sjkim	paddq	24(%esi),%mm3
280299966Sjkim	paddq	32(%esi),%mm4
281299966Sjkim	paddq	40(%esi),%mm5
282299966Sjkim	paddq	48(%esi),%mm6
283299966Sjkim	paddq	56(%esi),%mm7
284299966Sjkim	movq	%mm0,(%esi)
285299966Sjkim	movq	%mm1,8(%esi)
286299966Sjkim	movq	%mm2,16(%esi)
287299966Sjkim	movq	%mm3,24(%esi)
288299966Sjkim	movq	%mm4,32(%esi)
289299966Sjkim	movq	%mm5,40(%esi)
290299966Sjkim	movq	%mm6,48(%esi)
291299966Sjkim	movq	%mm7,56(%esi)
292299966Sjkim	addl	$640,%esp
293299966Sjkim	subl	$640,%ebp
294299966Sjkim	cmpl	88(%esp),%edi
295299966Sjkim	jb	.L003loop_sse2
296299966Sjkim	emms
297299966Sjkim	movl	92(%esp),%esp
298299966Sjkim	popl	%edi
299299966Sjkim	popl	%esi
300299966Sjkim	popl	%ebx
301299966Sjkim	popl	%ebp
302299966Sjkim	ret
303299966Sjkim.align	16
304299966Sjkim.L002loop_x86:
305299966Sjkim	movl	(%edi),%eax
306299966Sjkim	movl	4(%edi),%ebx
307299966Sjkim	movl	8(%edi),%ecx
308299966Sjkim	movl	12(%edi),%edx
309299966Sjkim	bswap	%eax
310299966Sjkim	bswap	%ebx
311299966Sjkim	bswap	%ecx
312299966Sjkim	bswap	%edx
313299966Sjkim	pushl	%eax
314299966Sjkim	pushl	%ebx
315299966Sjkim	pushl	%ecx
316299966Sjkim	pushl	%edx
317299966Sjkim	movl	16(%edi),%eax
318299966Sjkim	movl	20(%edi),%ebx
319299966Sjkim	movl	24(%edi),%ecx
320299966Sjkim	movl	28(%edi),%edx
321299966Sjkim	bswap	%eax
322299966Sjkim	bswap	%ebx
323299966Sjkim	bswap	%ecx
324299966Sjkim	bswap	%edx
325299966Sjkim	pushl	%eax
326299966Sjkim	pushl	%ebx
327299966Sjkim	pushl	%ecx
328299966Sjkim	pushl	%edx
329299966Sjkim	movl	32(%edi),%eax
330299966Sjkim	movl	36(%edi),%ebx
331299966Sjkim	movl	40(%edi),%ecx
332299966Sjkim	movl	44(%edi),%edx
333299966Sjkim	bswap	%eax
334299966Sjkim	bswap	%ebx
335299966Sjkim	bswap	%ecx
336299966Sjkim	bswap	%edx
337299966Sjkim	pushl	%eax
338299966Sjkim	pushl	%ebx
339299966Sjkim	pushl	%ecx
340299966Sjkim	pushl	%edx
341299966Sjkim	movl	48(%edi),%eax
342299966Sjkim	movl	52(%edi),%ebx
343299966Sjkim	movl	56(%edi),%ecx
344299966Sjkim	movl	60(%edi),%edx
345299966Sjkim	bswap	%eax
346299966Sjkim	bswap	%ebx
347299966Sjkim	bswap	%ecx
348299966Sjkim	bswap	%edx
349299966Sjkim	pushl	%eax
350299966Sjkim	pushl	%ebx
351299966Sjkim	pushl	%ecx
352299966Sjkim	pushl	%edx
353299966Sjkim	movl	64(%edi),%eax
354299966Sjkim	movl	68(%edi),%ebx
355299966Sjkim	movl	72(%edi),%ecx
356299966Sjkim	movl	76(%edi),%edx
357299966Sjkim	bswap	%eax
358299966Sjkim	bswap	%ebx
359299966Sjkim	bswap	%ecx
360299966Sjkim	bswap	%edx
361299966Sjkim	pushl	%eax
362299966Sjkim	pushl	%ebx
363299966Sjkim	pushl	%ecx
364299966Sjkim	pushl	%edx
365299966Sjkim	movl	80(%edi),%eax
366299966Sjkim	movl	84(%edi),%ebx
367299966Sjkim	movl	88(%edi),%ecx
368299966Sjkim	movl	92(%edi),%edx
369299966Sjkim	bswap	%eax
370299966Sjkim	bswap	%ebx
371299966Sjkim	bswap	%ecx
372299966Sjkim	bswap	%edx
373299966Sjkim	pushl	%eax
374299966Sjkim	pushl	%ebx
375299966Sjkim	pushl	%ecx
376299966Sjkim	pushl	%edx
377299966Sjkim	movl	96(%edi),%eax
378299966Sjkim	movl	100(%edi),%ebx
379299966Sjkim	movl	104(%edi),%ecx
380299966Sjkim	movl	108(%edi),%edx
381299966Sjkim	bswap	%eax
382299966Sjkim	bswap	%ebx
383299966Sjkim	bswap	%ecx
384299966Sjkim	bswap	%edx
385299966Sjkim	pushl	%eax
386299966Sjkim	pushl	%ebx
387299966Sjkim	pushl	%ecx
388299966Sjkim	pushl	%edx
389299966Sjkim	movl	112(%edi),%eax
390299966Sjkim	movl	116(%edi),%ebx
391299966Sjkim	movl	120(%edi),%ecx
392299966Sjkim	movl	124(%edi),%edx
393299966Sjkim	bswap	%eax
394299966Sjkim	bswap	%ebx
395299966Sjkim	bswap	%ecx
396299966Sjkim	bswap	%edx
397299966Sjkim	pushl	%eax
398299966Sjkim	pushl	%ebx
399299966Sjkim	pushl	%ecx
400299966Sjkim	pushl	%edx
401299966Sjkim	addl	$128,%edi
402299966Sjkim	subl	$72,%esp
403299966Sjkim	movl	%edi,204(%esp)
404299966Sjkim	leal	8(%esp),%edi
405299966Sjkim	movl	$16,%ecx
406299966Sjkim.long	2784229001
407299966Sjkim.align	16
408299966Sjkim.L00600_15_x86:
409299966Sjkim	movl	40(%esp),%ecx
410299966Sjkim	movl	44(%esp),%edx
411299966Sjkim	movl	%ecx,%esi
412299966Sjkim	shrl	$9,%ecx
413299966Sjkim	movl	%edx,%edi
414299966Sjkim	shrl	$9,%edx
415299966Sjkim	movl	%ecx,%ebx
416299966Sjkim	shll	$14,%esi
417299966Sjkim	movl	%edx,%eax
418299966Sjkim	shll	$14,%edi
419299966Sjkim	xorl	%esi,%ebx
420299966Sjkim	shrl	$5,%ecx
421299966Sjkim	xorl	%edi,%eax
422299966Sjkim	shrl	$5,%edx
423299966Sjkim	xorl	%ecx,%eax
424299966Sjkim	shll	$4,%esi
425299966Sjkim	xorl	%edx,%ebx
426299966Sjkim	shll	$4,%edi
427299966Sjkim	xorl	%esi,%ebx
428299966Sjkim	shrl	$4,%ecx
429299966Sjkim	xorl	%edi,%eax
430299966Sjkim	shrl	$4,%edx
431299966Sjkim	xorl	%ecx,%eax
432299966Sjkim	shll	$5,%esi
433299966Sjkim	xorl	%edx,%ebx
434299966Sjkim	shll	$5,%edi
435299966Sjkim	xorl	%esi,%eax
436299966Sjkim	xorl	%edi,%ebx
437299966Sjkim	movl	48(%esp),%ecx
438299966Sjkim	movl	52(%esp),%edx
439299966Sjkim	movl	56(%esp),%esi
440299966Sjkim	movl	60(%esp),%edi
441299966Sjkim	addl	64(%esp),%eax
442299966Sjkim	adcl	68(%esp),%ebx
443299966Sjkim	xorl	%esi,%ecx
444299966Sjkim	xorl	%edi,%edx
445299966Sjkim	andl	40(%esp),%ecx
446299966Sjkim	andl	44(%esp),%edx
447299966Sjkim	addl	192(%esp),%eax
448299966Sjkim	adcl	196(%esp),%ebx
449299966Sjkim	xorl	%esi,%ecx
450299966Sjkim	xorl	%edi,%edx
451299966Sjkim	movl	(%ebp),%esi
452299966Sjkim	movl	4(%ebp),%edi
453299966Sjkim	addl	%ecx,%eax
454299966Sjkim	adcl	%edx,%ebx
455299966Sjkim	movl	32(%esp),%ecx
456299966Sjkim	movl	36(%esp),%edx
457299966Sjkim	addl	%esi,%eax
458299966Sjkim	adcl	%edi,%ebx
459299966Sjkim	movl	%eax,(%esp)
460299966Sjkim	movl	%ebx,4(%esp)
461299966Sjkim	addl	%ecx,%eax
462299966Sjkim	adcl	%edx,%ebx
463299966Sjkim	movl	8(%esp),%ecx
464299966Sjkim	movl	12(%esp),%edx
465299966Sjkim	movl	%eax,32(%esp)
466299966Sjkim	movl	%ebx,36(%esp)
467299966Sjkim	movl	%ecx,%esi
468299966Sjkim	shrl	$2,%ecx
469299966Sjkim	movl	%edx,%edi
470299966Sjkim	shrl	$2,%edx
471299966Sjkim	movl	%ecx,%ebx
472299966Sjkim	shll	$4,%esi
473299966Sjkim	movl	%edx,%eax
474299966Sjkim	shll	$4,%edi
475299966Sjkim	xorl	%esi,%ebx
476299966Sjkim	shrl	$5,%ecx
477299966Sjkim	xorl	%edi,%eax
478299966Sjkim	shrl	$5,%edx
479299966Sjkim	xorl	%ecx,%ebx
480299966Sjkim	shll	$21,%esi
481299966Sjkim	xorl	%edx,%eax
482299966Sjkim	shll	$21,%edi
483299966Sjkim	xorl	%esi,%eax
484299966Sjkim	shrl	$21,%ecx
485299966Sjkim	xorl	%edi,%ebx
486299966Sjkim	shrl	$21,%edx
487299966Sjkim	xorl	%ecx,%eax
488299966Sjkim	shll	$5,%esi
489299966Sjkim	xorl	%edx,%ebx
490299966Sjkim	shll	$5,%edi
491299966Sjkim	xorl	%esi,%eax
492299966Sjkim	xorl	%edi,%ebx
493299966Sjkim	movl	8(%esp),%ecx
494299966Sjkim	movl	12(%esp),%edx
495299966Sjkim	movl	16(%esp),%esi
496299966Sjkim	movl	20(%esp),%edi
497299966Sjkim	addl	(%esp),%eax
498299966Sjkim	adcl	4(%esp),%ebx
499299966Sjkim	orl	%esi,%ecx
500299966Sjkim	orl	%edi,%edx
501299966Sjkim	andl	24(%esp),%ecx
502299966Sjkim	andl	28(%esp),%edx
503299966Sjkim	andl	8(%esp),%esi
504299966Sjkim	andl	12(%esp),%edi
505299966Sjkim	orl	%esi,%ecx
506299966Sjkim	orl	%edi,%edx
507299966Sjkim	addl	%ecx,%eax
508299966Sjkim	adcl	%edx,%ebx
509299966Sjkim	movl	%eax,(%esp)
510299966Sjkim	movl	%ebx,4(%esp)
511299966Sjkim	movb	(%ebp),%dl
512299966Sjkim	subl	$8,%esp
513299966Sjkim	leal	8(%ebp),%ebp
514299966Sjkim	cmpb	$148,%dl
515299966Sjkim	jne	.L00600_15_x86
516299966Sjkim.align	16
517299966Sjkim.L00716_79_x86:
518299966Sjkim	movl	312(%esp),%ecx
519299966Sjkim	movl	316(%esp),%edx
520299966Sjkim	movl	%ecx,%esi
521299966Sjkim	shrl	$1,%ecx
522299966Sjkim	movl	%edx,%edi
523299966Sjkim	shrl	$1,%edx
524299966Sjkim	movl	%ecx,%eax
525299966Sjkim	shll	$24,%esi
526299966Sjkim	movl	%edx,%ebx
527299966Sjkim	shll	$24,%edi
528299966Sjkim	xorl	%esi,%ebx
529299966Sjkim	shrl	$6,%ecx
530299966Sjkim	xorl	%edi,%eax
531299966Sjkim	shrl	$6,%edx
532299966Sjkim	xorl	%ecx,%eax
533299966Sjkim	shll	$7,%esi
534299966Sjkim	xorl	%edx,%ebx
535299966Sjkim	shll	$1,%edi
536299966Sjkim	xorl	%esi,%ebx
537299966Sjkim	shrl	$1,%ecx
538299966Sjkim	xorl	%edi,%eax
539299966Sjkim	shrl	$1,%edx
540299966Sjkim	xorl	%ecx,%eax
541299966Sjkim	shll	$6,%edi
542299966Sjkim	xorl	%edx,%ebx
543299966Sjkim	xorl	%edi,%eax
544299966Sjkim	movl	%eax,(%esp)
545299966Sjkim	movl	%ebx,4(%esp)
546299966Sjkim	movl	208(%esp),%ecx
547299966Sjkim	movl	212(%esp),%edx
548299966Sjkim	movl	%ecx,%esi
549299966Sjkim	shrl	$6,%ecx
550299966Sjkim	movl	%edx,%edi
551299966Sjkim	shrl	$6,%edx
552299966Sjkim	movl	%ecx,%eax
553299966Sjkim	shll	$3,%esi
554299966Sjkim	movl	%edx,%ebx
555299966Sjkim	shll	$3,%edi
556299966Sjkim	xorl	%esi,%eax
557299966Sjkim	shrl	$13,%ecx
558299966Sjkim	xorl	%edi,%ebx
559299966Sjkim	shrl	$13,%edx
560299966Sjkim	xorl	%ecx,%eax
561299966Sjkim	shll	$10,%esi
562299966Sjkim	xorl	%edx,%ebx
563299966Sjkim	shll	$10,%edi
564299966Sjkim	xorl	%esi,%ebx
565299966Sjkim	shrl	$10,%ecx
566299966Sjkim	xorl	%edi,%eax
567299966Sjkim	shrl	$10,%edx
568299966Sjkim	xorl	%ecx,%ebx
569299966Sjkim	shll	$13,%edi
570299966Sjkim	xorl	%edx,%eax
571299966Sjkim	xorl	%edi,%eax
572299966Sjkim	movl	320(%esp),%ecx
573299966Sjkim	movl	324(%esp),%edx
574299966Sjkim	addl	(%esp),%eax
575299966Sjkim	adcl	4(%esp),%ebx
576299966Sjkim	movl	248(%esp),%esi
577299966Sjkim	movl	252(%esp),%edi
578299966Sjkim	addl	%ecx,%eax
579299966Sjkim	adcl	%edx,%ebx
580299966Sjkim	addl	%esi,%eax
581299966Sjkim	adcl	%edi,%ebx
582299966Sjkim	movl	%eax,192(%esp)
583299966Sjkim	movl	%ebx,196(%esp)
584299966Sjkim	movl	40(%esp),%ecx
585299966Sjkim	movl	44(%esp),%edx
586299966Sjkim	movl	%ecx,%esi
587299966Sjkim	shrl	$9,%ecx
588299966Sjkim	movl	%edx,%edi
589299966Sjkim	shrl	$9,%edx
590299966Sjkim	movl	%ecx,%ebx
591299966Sjkim	shll	$14,%esi
592299966Sjkim	movl	%edx,%eax
593299966Sjkim	shll	$14,%edi
594299966Sjkim	xorl	%esi,%ebx
595299966Sjkim	shrl	$5,%ecx
596299966Sjkim	xorl	%edi,%eax
597299966Sjkim	shrl	$5,%edx
598299966Sjkim	xorl	%ecx,%eax
599299966Sjkim	shll	$4,%esi
600299966Sjkim	xorl	%edx,%ebx
601299966Sjkim	shll	$4,%edi
602299966Sjkim	xorl	%esi,%ebx
603299966Sjkim	shrl	$4,%ecx
604299966Sjkim	xorl	%edi,%eax
605299966Sjkim	shrl	$4,%edx
606299966Sjkim	xorl	%ecx,%eax
607299966Sjkim	shll	$5,%esi
608299966Sjkim	xorl	%edx,%ebx
609299966Sjkim	shll	$5,%edi
610299966Sjkim	xorl	%esi,%eax
611299966Sjkim	xorl	%edi,%ebx
612299966Sjkim	movl	48(%esp),%ecx
613299966Sjkim	movl	52(%esp),%edx
614299966Sjkim	movl	56(%esp),%esi
615299966Sjkim	movl	60(%esp),%edi
616299966Sjkim	addl	64(%esp),%eax
617299966Sjkim	adcl	68(%esp),%ebx
618299966Sjkim	xorl	%esi,%ecx
619299966Sjkim	xorl	%edi,%edx
620299966Sjkim	andl	40(%esp),%ecx
621299966Sjkim	andl	44(%esp),%edx
622299966Sjkim	addl	192(%esp),%eax
623299966Sjkim	adcl	196(%esp),%ebx
624299966Sjkim	xorl	%esi,%ecx
625299966Sjkim	xorl	%edi,%edx
626299966Sjkim	movl	(%ebp),%esi
627299966Sjkim	movl	4(%ebp),%edi
628299966Sjkim	addl	%ecx,%eax
629299966Sjkim	adcl	%edx,%ebx
630299966Sjkim	movl	32(%esp),%ecx
631299966Sjkim	movl	36(%esp),%edx
632299966Sjkim	addl	%esi,%eax
633299966Sjkim	adcl	%edi,%ebx
634299966Sjkim	movl	%eax,(%esp)
635299966Sjkim	movl	%ebx,4(%esp)
636299966Sjkim	addl	%ecx,%eax
637299966Sjkim	adcl	%edx,%ebx
638299966Sjkim	movl	8(%esp),%ecx
639299966Sjkim	movl	12(%esp),%edx
640299966Sjkim	movl	%eax,32(%esp)
641299966Sjkim	movl	%ebx,36(%esp)
642299966Sjkim	movl	%ecx,%esi
643299966Sjkim	shrl	$2,%ecx
644299966Sjkim	movl	%edx,%edi
645299966Sjkim	shrl	$2,%edx
646299966Sjkim	movl	%ecx,%ebx
647299966Sjkim	shll	$4,%esi
648299966Sjkim	movl	%edx,%eax
649299966Sjkim	shll	$4,%edi
650299966Sjkim	xorl	%esi,%ebx
651299966Sjkim	shrl	$5,%ecx
652299966Sjkim	xorl	%edi,%eax
653299966Sjkim	shrl	$5,%edx
654299966Sjkim	xorl	%ecx,%ebx
655299966Sjkim	shll	$21,%esi
656299966Sjkim	xorl	%edx,%eax
657299966Sjkim	shll	$21,%edi
658299966Sjkim	xorl	%esi,%eax
659299966Sjkim	shrl	$21,%ecx
660299966Sjkim	xorl	%edi,%ebx
661299966Sjkim	shrl	$21,%edx
662299966Sjkim	xorl	%ecx,%eax
663299966Sjkim	shll	$5,%esi
664299966Sjkim	xorl	%edx,%ebx
665299966Sjkim	shll	$5,%edi
666299966Sjkim	xorl	%esi,%eax
667299966Sjkim	xorl	%edi,%ebx
668299966Sjkim	movl	8(%esp),%ecx
669299966Sjkim	movl	12(%esp),%edx
670299966Sjkim	movl	16(%esp),%esi
671299966Sjkim	movl	20(%esp),%edi
672299966Sjkim	addl	(%esp),%eax
673299966Sjkim	adcl	4(%esp),%ebx
674299966Sjkim	orl	%esi,%ecx
675299966Sjkim	orl	%edi,%edx
676299966Sjkim	andl	24(%esp),%ecx
677299966Sjkim	andl	28(%esp),%edx
678299966Sjkim	andl	8(%esp),%esi
679299966Sjkim	andl	12(%esp),%edi
680299966Sjkim	orl	%esi,%ecx
681299966Sjkim	orl	%edi,%edx
682299966Sjkim	addl	%ecx,%eax
683299966Sjkim	adcl	%edx,%ebx
684299966Sjkim	movl	%eax,(%esp)
685299966Sjkim	movl	%ebx,4(%esp)
686299966Sjkim	movb	(%ebp),%dl
687299966Sjkim	subl	$8,%esp
688299966Sjkim	leal	8(%ebp),%ebp
689299966Sjkim	cmpb	$23,%dl
690299966Sjkim	jne	.L00716_79_x86
691299966Sjkim	movl	840(%esp),%esi
692299966Sjkim	movl	844(%esp),%edi
693299966Sjkim	movl	(%esi),%eax
694299966Sjkim	movl	4(%esi),%ebx
695299966Sjkim	movl	8(%esi),%ecx
696299966Sjkim	movl	12(%esi),%edx
697299966Sjkim	addl	8(%esp),%eax
698299966Sjkim	adcl	12(%esp),%ebx
699299966Sjkim	movl	%eax,(%esi)
700299966Sjkim	movl	%ebx,4(%esi)
701299966Sjkim	addl	16(%esp),%ecx
702299966Sjkim	adcl	20(%esp),%edx
703299966Sjkim	movl	%ecx,8(%esi)
704299966Sjkim	movl	%edx,12(%esi)
705299966Sjkim	movl	16(%esi),%eax
706299966Sjkim	movl	20(%esi),%ebx
707299966Sjkim	movl	24(%esi),%ecx
708299966Sjkim	movl	28(%esi),%edx
709299966Sjkim	addl	24(%esp),%eax
710299966Sjkim	adcl	28(%esp),%ebx
711299966Sjkim	movl	%eax,16(%esi)
712299966Sjkim	movl	%ebx,20(%esi)
713299966Sjkim	addl	32(%esp),%ecx
714299966Sjkim	adcl	36(%esp),%edx
715299966Sjkim	movl	%ecx,24(%esi)
716299966Sjkim	movl	%edx,28(%esi)
717299966Sjkim	movl	32(%esi),%eax
718299966Sjkim	movl	36(%esi),%ebx
719299966Sjkim	movl	40(%esi),%ecx
720299966Sjkim	movl	44(%esi),%edx
721299966Sjkim	addl	40(%esp),%eax
722299966Sjkim	adcl	44(%esp),%ebx
723299966Sjkim	movl	%eax,32(%esi)
724299966Sjkim	movl	%ebx,36(%esi)
725299966Sjkim	addl	48(%esp),%ecx
726299966Sjkim	adcl	52(%esp),%edx
727299966Sjkim	movl	%ecx,40(%esi)
728299966Sjkim	movl	%edx,44(%esi)
729299966Sjkim	movl	48(%esi),%eax
730299966Sjkim	movl	52(%esi),%ebx
731299966Sjkim	movl	56(%esi),%ecx
732299966Sjkim	movl	60(%esi),%edx
733299966Sjkim	addl	56(%esp),%eax
734299966Sjkim	adcl	60(%esp),%ebx
735299966Sjkim	movl	%eax,48(%esi)
736299966Sjkim	movl	%ebx,52(%esi)
737299966Sjkim	addl	64(%esp),%ecx
738299966Sjkim	adcl	68(%esp),%edx
739299966Sjkim	movl	%ecx,56(%esi)
740299966Sjkim	movl	%edx,60(%esi)
741299966Sjkim	addl	$840,%esp
742299966Sjkim	subl	$640,%ebp
743299966Sjkim	cmpl	8(%esp),%edi
744299966Sjkim	jb	.L002loop_x86
745299966Sjkim	movl	12(%esp),%esp
746299966Sjkim	popl	%edi
747299966Sjkim	popl	%esi
748299966Sjkim	popl	%ebx
749299966Sjkim	popl	%ebp
750299966Sjkim	ret
751299966Sjkim.align	64
752299966Sjkim.L001K512:
753299966Sjkim.long	3609767458,1116352408
754299966Sjkim.long	602891725,1899447441
755299966Sjkim.long	3964484399,3049323471
756299966Sjkim.long	2173295548,3921009573
757299966Sjkim.long	4081628472,961987163
758299966Sjkim.long	3053834265,1508970993
759299966Sjkim.long	2937671579,2453635748
760299966Sjkim.long	3664609560,2870763221
761299966Sjkim.long	2734883394,3624381080
762299966Sjkim.long	1164996542,310598401
763299966Sjkim.long	1323610764,607225278
764299966Sjkim.long	3590304994,1426881987
765299966Sjkim.long	4068182383,1925078388
766299966Sjkim.long	991336113,2162078206
767299966Sjkim.long	633803317,2614888103
768299966Sjkim.long	3479774868,3248222580
769299966Sjkim.long	2666613458,3835390401
770299966Sjkim.long	944711139,4022224774
771299966Sjkim.long	2341262773,264347078
772299966Sjkim.long	2007800933,604807628
773299966Sjkim.long	1495990901,770255983
774299966Sjkim.long	1856431235,1249150122
775299966Sjkim.long	3175218132,1555081692
776299966Sjkim.long	2198950837,1996064986
777299966Sjkim.long	3999719339,2554220882
778299966Sjkim.long	766784016,2821834349
779299966Sjkim.long	2566594879,2952996808
780299966Sjkim.long	3203337956,3210313671
781299966Sjkim.long	1034457026,3336571891
782299966Sjkim.long	2466948901,3584528711
783299966Sjkim.long	3758326383,113926993
784299966Sjkim.long	168717936,338241895
785299966Sjkim.long	1188179964,666307205
786299966Sjkim.long	1546045734,773529912
787299966Sjkim.long	1522805485,1294757372
788299966Sjkim.long	2643833823,1396182291
789299966Sjkim.long	2343527390,1695183700
790299966Sjkim.long	1014477480,1986661051
791299966Sjkim.long	1206759142,2177026350
792299966Sjkim.long	344077627,2456956037
793299966Sjkim.long	1290863460,2730485921
794299966Sjkim.long	3158454273,2820302411
795299966Sjkim.long	3505952657,3259730800
796299966Sjkim.long	106217008,3345764771
797299966Sjkim.long	3606008344,3516065817
798299966Sjkim.long	1432725776,3600352804
799299966Sjkim.long	1467031594,4094571909
800299966Sjkim.long	851169720,275423344
801299966Sjkim.long	3100823752,430227734
802299966Sjkim.long	1363258195,506948616
803299966Sjkim.long	3750685593,659060556
804299966Sjkim.long	3785050280,883997877
805299966Sjkim.long	3318307427,958139571
806299966Sjkim.long	3812723403,1322822218
807299966Sjkim.long	2003034995,1537002063
808299966Sjkim.long	3602036899,1747873779
809299966Sjkim.long	1575990012,1955562222
810299966Sjkim.long	1125592928,2024104815
811299966Sjkim.long	2716904306,2227730452
812299966Sjkim.long	442776044,2361852424
813299966Sjkim.long	593698344,2428436474
814299966Sjkim.long	3733110249,2756734187
815299966Sjkim.long	2999351573,3204031479
816299966Sjkim.long	3815920427,3329325298
817299966Sjkim.long	3928383900,3391569614
818299966Sjkim.long	566280711,3515267271
819299966Sjkim.long	3454069534,3940187606
820299966Sjkim.long	4000239992,4118630271
821299966Sjkim.long	1914138554,116418474
822299966Sjkim.long	2731055270,174292421
823299966Sjkim.long	3203993006,289380356
824299966Sjkim.long	320620315,460393269
825299966Sjkim.long	587496836,685471733
826299966Sjkim.long	1086792851,852142971
827299966Sjkim.long	365543100,1017036298
828299966Sjkim.long	2618297676,1126000580
829299966Sjkim.long	3409855158,1288033470
830299966Sjkim.long	4234509866,1501505948
831299966Sjkim.long	987167468,1607167915
832299966Sjkim.long	1246189591,1816402316
833299966Sjkim.size	sha512_block_data_order,.-.L_sha512_block_data_order_begin
834299966Sjkim.byte	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
835299966Sjkim.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
836299966Sjkim.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
837299966Sjkim.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
838299966Sjkim.byte	62,0
839299966Sjkim.comm	OPENSSL_ia32cap_P,8,4
840299966Sjkim#else
841299966Sjkim.file	"sha512-586.S"
842299966Sjkim.text
843299966Sjkim.globl	sha512_block_data_order
844299966Sjkim.type	sha512_block_data_order,@function
845299966Sjkim.align	16
846299966Sjkimsha512_block_data_order:
847299966Sjkim.L_sha512_block_data_order_begin:
848299966Sjkim	pushl	%ebp
849299966Sjkim	pushl	%ebx
850299966Sjkim	pushl	%esi
851299966Sjkim	pushl	%edi
852299966Sjkim	movl	20(%esp),%esi
853299966Sjkim	movl	24(%esp),%edi
854299966Sjkim	movl	28(%esp),%eax
855299966Sjkim	movl	%esp,%ebx
856299966Sjkim	call	.L000pic_point
857299966Sjkim.L000pic_point:
858299966Sjkim	popl	%ebp
859299966Sjkim	leal	.L001K512-.L000pic_point(%ebp),%ebp
860299966Sjkim	subl	$16,%esp
861299966Sjkim	andl	$-64,%esp
862299966Sjkim	shll	$7,%eax
863299966Sjkim	addl	%edi,%eax
864299966Sjkim	movl	%esi,(%esp)
865299966Sjkim	movl	%edi,4(%esp)
866299966Sjkim	movl	%eax,8(%esp)
867299966Sjkim	movl	%ebx,12(%esp)
868238405Sjkim	leal	OPENSSL_ia32cap_P,%edx
869238405Sjkim	btl	$26,(%edx)
870238405Sjkim	jnc	.L002loop_x86
871238405Sjkim	movq	(%esi),%mm0
872238405Sjkim	movq	8(%esi),%mm1
873238405Sjkim	movq	16(%esi),%mm2
874238405Sjkim	movq	24(%esi),%mm3
875238405Sjkim	movq	32(%esi),%mm4
876238405Sjkim	movq	40(%esi),%mm5
877238405Sjkim	movq	48(%esi),%mm6
878238405Sjkim	movq	56(%esi),%mm7
879238405Sjkim	subl	$80,%esp
880238405Sjkim.align	16
881238405Sjkim.L003loop_sse2:
882238405Sjkim	movq	%mm1,8(%esp)
883238405Sjkim	movq	%mm2,16(%esp)
884238405Sjkim	movq	%mm3,24(%esp)
885238405Sjkim	movq	%mm5,40(%esp)
886238405Sjkim	movq	%mm6,48(%esp)
887238405Sjkim	movq	%mm7,56(%esp)
888238405Sjkim	movl	(%edi),%ecx
889238405Sjkim	movl	4(%edi),%edx
890238405Sjkim	addl	$8,%edi
891238405Sjkim	bswap	%ecx
892238405Sjkim	bswap	%edx
893238405Sjkim	movl	%ecx,76(%esp)
894238405Sjkim	movl	%edx,72(%esp)
895238405Sjkim.align	16
896238405Sjkim.L00400_14_sse2:
897238405Sjkim	movl	(%edi),%eax
898238405Sjkim	movl	4(%edi),%ebx
899238405Sjkim	addl	$8,%edi
900238405Sjkim	bswap	%eax
901238405Sjkim	bswap	%ebx
902238405Sjkim	movl	%eax,68(%esp)
903238405Sjkim	movl	%ebx,64(%esp)
904238405Sjkim	movq	40(%esp),%mm5
905238405Sjkim	movq	48(%esp),%mm6
906238405Sjkim	movq	56(%esp),%mm7
907238405Sjkim	movq	%mm4,%mm1
908238405Sjkim	movq	%mm4,%mm2
909238405Sjkim	psrlq	$14,%mm1
910238405Sjkim	movq	%mm4,32(%esp)
911238405Sjkim	psllq	$23,%mm2
912238405Sjkim	movq	%mm1,%mm3
913238405Sjkim	psrlq	$4,%mm1
914238405Sjkim	pxor	%mm2,%mm3
915238405Sjkim	psllq	$23,%mm2
916238405Sjkim	pxor	%mm1,%mm3
917238405Sjkim	psrlq	$23,%mm1
918238405Sjkim	pxor	%mm2,%mm3
919238405Sjkim	psllq	$4,%mm2
920238405Sjkim	pxor	%mm1,%mm3
921238405Sjkim	paddq	(%ebp),%mm7
922238405Sjkim	pxor	%mm2,%mm3
923238405Sjkim	pxor	%mm6,%mm5
924238405Sjkim	movq	8(%esp),%mm1
925238405Sjkim	pand	%mm4,%mm5
926238405Sjkim	movq	16(%esp),%mm2
927238405Sjkim	pxor	%mm6,%mm5
928238405Sjkim	movq	24(%esp),%mm4
929238405Sjkim	paddq	%mm5,%mm3
930238405Sjkim	movq	%mm0,(%esp)
931238405Sjkim	paddq	%mm7,%mm3
932238405Sjkim	movq	%mm0,%mm5
933238405Sjkim	movq	%mm0,%mm6
934238405Sjkim	paddq	72(%esp),%mm3
935238405Sjkim	psrlq	$28,%mm5
936238405Sjkim	paddq	%mm3,%mm4
937238405Sjkim	psllq	$25,%mm6
938238405Sjkim	movq	%mm5,%mm7
939238405Sjkim	psrlq	$6,%mm5
940238405Sjkim	pxor	%mm6,%mm7
941238405Sjkim	psllq	$5,%mm6
942238405Sjkim	pxor	%mm5,%mm7
943238405Sjkim	psrlq	$5,%mm5
944238405Sjkim	pxor	%mm6,%mm7
945238405Sjkim	psllq	$6,%mm6
946238405Sjkim	pxor	%mm5,%mm7
947238405Sjkim	subl	$8,%esp
948238405Sjkim	pxor	%mm6,%mm7
949238405Sjkim	movq	%mm0,%mm5
950238405Sjkim	por	%mm2,%mm0
951238405Sjkim	pand	%mm2,%mm5
952238405Sjkim	pand	%mm1,%mm0
953238405Sjkim	por	%mm0,%mm5
954238405Sjkim	paddq	%mm5,%mm7
955238405Sjkim	movq	%mm3,%mm0
956238405Sjkim	movb	(%ebp),%dl
957238405Sjkim	paddq	%mm7,%mm0
958238405Sjkim	addl	$8,%ebp
959238405Sjkim	cmpb	$53,%dl
960238405Sjkim	jne	.L00400_14_sse2
961238405Sjkim	movq	40(%esp),%mm5
962238405Sjkim	movq	48(%esp),%mm6
963238405Sjkim	movq	56(%esp),%mm7
964238405Sjkim	movq	%mm4,%mm1
965238405Sjkim	movq	%mm4,%mm2
966238405Sjkim	psrlq	$14,%mm1
967238405Sjkim	movq	%mm4,32(%esp)
968238405Sjkim	psllq	$23,%mm2
969238405Sjkim	movq	%mm1,%mm3
970238405Sjkim	psrlq	$4,%mm1
971238405Sjkim	pxor	%mm2,%mm3
972238405Sjkim	psllq	$23,%mm2
973238405Sjkim	pxor	%mm1,%mm3
974238405Sjkim	psrlq	$23,%mm1
975238405Sjkim	pxor	%mm2,%mm3
976238405Sjkim	psllq	$4,%mm2
977238405Sjkim	pxor	%mm1,%mm3
978238405Sjkim	paddq	(%ebp),%mm7
979238405Sjkim	pxor	%mm2,%mm3
980238405Sjkim	pxor	%mm6,%mm5
981238405Sjkim	movq	8(%esp),%mm1
982238405Sjkim	pand	%mm4,%mm5
983238405Sjkim	movq	16(%esp),%mm2
984238405Sjkim	pxor	%mm6,%mm5
985238405Sjkim	movq	24(%esp),%mm4
986238405Sjkim	paddq	%mm5,%mm3
987238405Sjkim	movq	%mm0,(%esp)
988238405Sjkim	paddq	%mm7,%mm3
989238405Sjkim	movq	%mm0,%mm5
990238405Sjkim	movq	%mm0,%mm6
991238405Sjkim	paddq	72(%esp),%mm3
992238405Sjkim	psrlq	$28,%mm5
993238405Sjkim	paddq	%mm3,%mm4
994238405Sjkim	psllq	$25,%mm6
995238405Sjkim	movq	%mm5,%mm7
996238405Sjkim	psrlq	$6,%mm5
997238405Sjkim	pxor	%mm6,%mm7
998238405Sjkim	psllq	$5,%mm6
999238405Sjkim	pxor	%mm5,%mm7
1000238405Sjkim	psrlq	$5,%mm5
1001238405Sjkim	pxor	%mm6,%mm7
1002238405Sjkim	psllq	$6,%mm6
1003238405Sjkim	pxor	%mm5,%mm7
1004238405Sjkim	subl	$8,%esp
1005238405Sjkim	pxor	%mm6,%mm7
1006238405Sjkim	movq	%mm0,%mm5
1007238405Sjkim	por	%mm2,%mm0
1008238405Sjkim	movq	88(%esp),%mm6
1009238405Sjkim	pand	%mm2,%mm5
1010238405Sjkim	pand	%mm1,%mm0
1011238405Sjkim	movq	192(%esp),%mm2
1012238405Sjkim	por	%mm0,%mm5
1013238405Sjkim	paddq	%mm5,%mm7
1014238405Sjkim	movq	%mm3,%mm0
1015238405Sjkim	movb	(%ebp),%dl
1016238405Sjkim	paddq	%mm7,%mm0
1017238405Sjkim	addl	$8,%ebp
1018238405Sjkim.align	16
1019238405Sjkim.L00516_79_sse2:
1020238405Sjkim	movq	%mm2,%mm1
1021238405Sjkim	psrlq	$1,%mm2
1022238405Sjkim	movq	%mm6,%mm7
1023238405Sjkim	psrlq	$6,%mm6
1024238405Sjkim	movq	%mm2,%mm3
1025238405Sjkim	psrlq	$6,%mm2
1026238405Sjkim	movq	%mm6,%mm5
1027238405Sjkim	psrlq	$13,%mm6
1028238405Sjkim	pxor	%mm2,%mm3
1029238405Sjkim	psrlq	$1,%mm2
1030238405Sjkim	pxor	%mm6,%mm5
1031238405Sjkim	psrlq	$42,%mm6
1032238405Sjkim	pxor	%mm2,%mm3
1033238405Sjkim	movq	200(%esp),%mm2
1034238405Sjkim	psllq	$56,%mm1
1035238405Sjkim	pxor	%mm6,%mm5
1036238405Sjkim	psllq	$3,%mm7
1037238405Sjkim	pxor	%mm1,%mm3
1038238405Sjkim	paddq	128(%esp),%mm2
1039238405Sjkim	psllq	$7,%mm1
1040238405Sjkim	pxor	%mm7,%mm5
1041238405Sjkim	psllq	$42,%mm7
1042238405Sjkim	pxor	%mm1,%mm3
1043238405Sjkim	pxor	%mm7,%mm5
1044238405Sjkim	paddq	%mm5,%mm3
1045238405Sjkim	paddq	%mm2,%mm3
1046238405Sjkim	movq	%mm3,72(%esp)
1047238405Sjkim	movq	40(%esp),%mm5
1048238405Sjkim	movq	48(%esp),%mm6
1049238405Sjkim	movq	56(%esp),%mm7
1050238405Sjkim	movq	%mm4,%mm1
1051238405Sjkim	movq	%mm4,%mm2
1052238405Sjkim	psrlq	$14,%mm1
1053238405Sjkim	movq	%mm4,32(%esp)
1054238405Sjkim	psllq	$23,%mm2
1055238405Sjkim	movq	%mm1,%mm3
1056238405Sjkim	psrlq	$4,%mm1
1057238405Sjkim	pxor	%mm2,%mm3
1058238405Sjkim	psllq	$23,%mm2
1059238405Sjkim	pxor	%mm1,%mm3
1060238405Sjkim	psrlq	$23,%mm1
1061238405Sjkim	pxor	%mm2,%mm3
1062238405Sjkim	psllq	$4,%mm2
1063238405Sjkim	pxor	%mm1,%mm3
1064238405Sjkim	paddq	(%ebp),%mm7
1065238405Sjkim	pxor	%mm2,%mm3
1066238405Sjkim	pxor	%mm6,%mm5
1067238405Sjkim	movq	8(%esp),%mm1
1068238405Sjkim	pand	%mm4,%mm5
1069238405Sjkim	movq	16(%esp),%mm2
1070238405Sjkim	pxor	%mm6,%mm5
1071238405Sjkim	movq	24(%esp),%mm4
1072238405Sjkim	paddq	%mm5,%mm3
1073238405Sjkim	movq	%mm0,(%esp)
1074238405Sjkim	paddq	%mm7,%mm3
1075238405Sjkim	movq	%mm0,%mm5
1076238405Sjkim	movq	%mm0,%mm6
1077238405Sjkim	paddq	72(%esp),%mm3
1078238405Sjkim	psrlq	$28,%mm5
1079238405Sjkim	paddq	%mm3,%mm4
1080238405Sjkim	psllq	$25,%mm6
1081238405Sjkim	movq	%mm5,%mm7
1082238405Sjkim	psrlq	$6,%mm5
1083238405Sjkim	pxor	%mm6,%mm7
1084238405Sjkim	psllq	$5,%mm6
1085238405Sjkim	pxor	%mm5,%mm7
1086238405Sjkim	psrlq	$5,%mm5
1087238405Sjkim	pxor	%mm6,%mm7
1088238405Sjkim	psllq	$6,%mm6
1089238405Sjkim	pxor	%mm5,%mm7
1090238405Sjkim	subl	$8,%esp
1091238405Sjkim	pxor	%mm6,%mm7
1092238405Sjkim	movq	%mm0,%mm5
1093238405Sjkim	por	%mm2,%mm0
1094238405Sjkim	movq	88(%esp),%mm6
1095238405Sjkim	pand	%mm2,%mm5
1096238405Sjkim	pand	%mm1,%mm0
1097238405Sjkim	movq	192(%esp),%mm2
1098238405Sjkim	por	%mm0,%mm5
1099238405Sjkim	paddq	%mm5,%mm7
1100238405Sjkim	movq	%mm3,%mm0
1101238405Sjkim	movb	(%ebp),%dl
1102238405Sjkim	paddq	%mm7,%mm0
1103238405Sjkim	addl	$8,%ebp
1104238405Sjkim	cmpb	$23,%dl
1105238405Sjkim	jne	.L00516_79_sse2
1106238405Sjkim	movq	8(%esp),%mm1
1107238405Sjkim	movq	16(%esp),%mm2
1108238405Sjkim	movq	24(%esp),%mm3
1109238405Sjkim	movq	40(%esp),%mm5
1110238405Sjkim	movq	48(%esp),%mm6
1111238405Sjkim	movq	56(%esp),%mm7
1112238405Sjkim	paddq	(%esi),%mm0
1113238405Sjkim	paddq	8(%esi),%mm1
1114238405Sjkim	paddq	16(%esi),%mm2
1115238405Sjkim	paddq	24(%esi),%mm3
1116238405Sjkim	paddq	32(%esi),%mm4
1117238405Sjkim	paddq	40(%esi),%mm5
1118238405Sjkim	paddq	48(%esi),%mm6
1119238405Sjkim	paddq	56(%esi),%mm7
1120238405Sjkim	movq	%mm0,(%esi)
1121238405Sjkim	movq	%mm1,8(%esi)
1122238405Sjkim	movq	%mm2,16(%esi)
1123238405Sjkim	movq	%mm3,24(%esi)
1124238405Sjkim	movq	%mm4,32(%esi)
1125238405Sjkim	movq	%mm5,40(%esi)
1126238405Sjkim	movq	%mm6,48(%esi)
1127238405Sjkim	movq	%mm7,56(%esi)
1128238405Sjkim	addl	$640,%esp
1129238405Sjkim	subl	$640,%ebp
1130238405Sjkim	cmpl	88(%esp),%edi
1131238405Sjkim	jb	.L003loop_sse2
1132238405Sjkim	emms
1133238405Sjkim	movl	92(%esp),%esp
1134238405Sjkim	popl	%edi
1135238405Sjkim	popl	%esi
1136238405Sjkim	popl	%ebx
1137238405Sjkim	popl	%ebp
1138238405Sjkim	ret
1139238405Sjkim.align	16
1140238405Sjkim.L002loop_x86:
1141238405Sjkim	movl	(%edi),%eax
1142238405Sjkim	movl	4(%edi),%ebx
1143238405Sjkim	movl	8(%edi),%ecx
1144238405Sjkim	movl	12(%edi),%edx
1145238405Sjkim	bswap	%eax
1146238405Sjkim	bswap	%ebx
1147238405Sjkim	bswap	%ecx
1148238405Sjkim	bswap	%edx
1149238405Sjkim	pushl	%eax
1150238405Sjkim	pushl	%ebx
1151238405Sjkim	pushl	%ecx
1152238405Sjkim	pushl	%edx
1153238405Sjkim	movl	16(%edi),%eax
1154238405Sjkim	movl	20(%edi),%ebx
1155238405Sjkim	movl	24(%edi),%ecx
1156238405Sjkim	movl	28(%edi),%edx
1157238405Sjkim	bswap	%eax
1158238405Sjkim	bswap	%ebx
1159238405Sjkim	bswap	%ecx
1160238405Sjkim	bswap	%edx
1161238405Sjkim	pushl	%eax
1162238405Sjkim	pushl	%ebx
1163238405Sjkim	pushl	%ecx
1164238405Sjkim	pushl	%edx
1165238405Sjkim	movl	32(%edi),%eax
1166238405Sjkim	movl	36(%edi),%ebx
1167238405Sjkim	movl	40(%edi),%ecx
1168238405Sjkim	movl	44(%edi),%edx
1169238405Sjkim	bswap	%eax
1170238405Sjkim	bswap	%ebx
1171238405Sjkim	bswap	%ecx
1172238405Sjkim	bswap	%edx
1173238405Sjkim	pushl	%eax
1174238405Sjkim	pushl	%ebx
1175238405Sjkim	pushl	%ecx
1176238405Sjkim	pushl	%edx
1177238405Sjkim	movl	48(%edi),%eax
1178238405Sjkim	movl	52(%edi),%ebx
1179238405Sjkim	movl	56(%edi),%ecx
1180238405Sjkim	movl	60(%edi),%edx
1181238405Sjkim	bswap	%eax
1182238405Sjkim	bswap	%ebx
1183238405Sjkim	bswap	%ecx
1184238405Sjkim	bswap	%edx
1185238405Sjkim	pushl	%eax
1186238405Sjkim	pushl	%ebx
1187238405Sjkim	pushl	%ecx
1188238405Sjkim	pushl	%edx
1189238405Sjkim	movl	64(%edi),%eax
1190238405Sjkim	movl	68(%edi),%ebx
1191238405Sjkim	movl	72(%edi),%ecx
1192238405Sjkim	movl	76(%edi),%edx
1193238405Sjkim	bswap	%eax
1194238405Sjkim	bswap	%ebx
1195238405Sjkim	bswap	%ecx
1196238405Sjkim	bswap	%edx
1197238405Sjkim	pushl	%eax
1198238405Sjkim	pushl	%ebx
1199238405Sjkim	pushl	%ecx
1200238405Sjkim	pushl	%edx
1201238405Sjkim	movl	80(%edi),%eax
1202238405Sjkim	movl	84(%edi),%ebx
1203238405Sjkim	movl	88(%edi),%ecx
1204238405Sjkim	movl	92(%edi),%edx
1205238405Sjkim	bswap	%eax
1206238405Sjkim	bswap	%ebx
1207238405Sjkim	bswap	%ecx
1208238405Sjkim	bswap	%edx
1209238405Sjkim	pushl	%eax
1210238405Sjkim	pushl	%ebx
1211238405Sjkim	pushl	%ecx
1212238405Sjkim	pushl	%edx
1213238405Sjkim	movl	96(%edi),%eax
1214238405Sjkim	movl	100(%edi),%ebx
1215238405Sjkim	movl	104(%edi),%ecx
1216238405Sjkim	movl	108(%edi),%edx
1217238405Sjkim	bswap	%eax
1218238405Sjkim	bswap	%ebx
1219238405Sjkim	bswap	%ecx
1220238405Sjkim	bswap	%edx
1221238405Sjkim	pushl	%eax
1222238405Sjkim	pushl	%ebx
1223238405Sjkim	pushl	%ecx
1224238405Sjkim	pushl	%edx
1225238405Sjkim	movl	112(%edi),%eax
1226238405Sjkim	movl	116(%edi),%ebx
1227238405Sjkim	movl	120(%edi),%ecx
1228238405Sjkim	movl	124(%edi),%edx
1229238405Sjkim	bswap	%eax
1230238405Sjkim	bswap	%ebx
1231238405Sjkim	bswap	%ecx
1232238405Sjkim	bswap	%edx
1233238405Sjkim	pushl	%eax
1234238405Sjkim	pushl	%ebx
1235238405Sjkim	pushl	%ecx
1236238405Sjkim	pushl	%edx
1237238405Sjkim	addl	$128,%edi
1238238405Sjkim	subl	$72,%esp
1239238405Sjkim	movl	%edi,204(%esp)
1240238405Sjkim	leal	8(%esp),%edi
1241238405Sjkim	movl	$16,%ecx
1242238405Sjkim.long	2784229001
1243238405Sjkim.align	16
1244238405Sjkim.L00600_15_x86:
1245238405Sjkim	movl	40(%esp),%ecx
1246238405Sjkim	movl	44(%esp),%edx
1247238405Sjkim	movl	%ecx,%esi
1248238405Sjkim	shrl	$9,%ecx
1249238405Sjkim	movl	%edx,%edi
1250238405Sjkim	shrl	$9,%edx
1251238405Sjkim	movl	%ecx,%ebx
1252238405Sjkim	shll	$14,%esi
1253238405Sjkim	movl	%edx,%eax
1254238405Sjkim	shll	$14,%edi
1255238405Sjkim	xorl	%esi,%ebx
1256238405Sjkim	shrl	$5,%ecx
1257238405Sjkim	xorl	%edi,%eax
1258238405Sjkim	shrl	$5,%edx
1259238405Sjkim	xorl	%ecx,%eax
1260238405Sjkim	shll	$4,%esi
1261238405Sjkim	xorl	%edx,%ebx
1262238405Sjkim	shll	$4,%edi
1263238405Sjkim	xorl	%esi,%ebx
1264238405Sjkim	shrl	$4,%ecx
1265238405Sjkim	xorl	%edi,%eax
1266238405Sjkim	shrl	$4,%edx
1267238405Sjkim	xorl	%ecx,%eax
1268238405Sjkim	shll	$5,%esi
1269238405Sjkim	xorl	%edx,%ebx
1270238405Sjkim	shll	$5,%edi
1271238405Sjkim	xorl	%esi,%eax
1272238405Sjkim	xorl	%edi,%ebx
1273238405Sjkim	movl	48(%esp),%ecx
1274238405Sjkim	movl	52(%esp),%edx
1275238405Sjkim	movl	56(%esp),%esi
1276238405Sjkim	movl	60(%esp),%edi
1277238405Sjkim	addl	64(%esp),%eax
1278238405Sjkim	adcl	68(%esp),%ebx
1279238405Sjkim	xorl	%esi,%ecx
1280238405Sjkim	xorl	%edi,%edx
1281238405Sjkim	andl	40(%esp),%ecx
1282238405Sjkim	andl	44(%esp),%edx
1283238405Sjkim	addl	192(%esp),%eax
1284238405Sjkim	adcl	196(%esp),%ebx
1285238405Sjkim	xorl	%esi,%ecx
1286238405Sjkim	xorl	%edi,%edx
1287238405Sjkim	movl	(%ebp),%esi
1288238405Sjkim	movl	4(%ebp),%edi
1289238405Sjkim	addl	%ecx,%eax
1290238405Sjkim	adcl	%edx,%ebx
1291238405Sjkim	movl	32(%esp),%ecx
1292238405Sjkim	movl	36(%esp),%edx
1293238405Sjkim	addl	%esi,%eax
1294238405Sjkim	adcl	%edi,%ebx
1295238405Sjkim	movl	%eax,(%esp)
1296238405Sjkim	movl	%ebx,4(%esp)
1297238405Sjkim	addl	%ecx,%eax
1298238405Sjkim	adcl	%edx,%ebx
1299238405Sjkim	movl	8(%esp),%ecx
1300238405Sjkim	movl	12(%esp),%edx
1301238405Sjkim	movl	%eax,32(%esp)
1302238405Sjkim	movl	%ebx,36(%esp)
1303238405Sjkim	movl	%ecx,%esi
1304238405Sjkim	shrl	$2,%ecx
1305238405Sjkim	movl	%edx,%edi
1306238405Sjkim	shrl	$2,%edx
1307238405Sjkim	movl	%ecx,%ebx
1308238405Sjkim	shll	$4,%esi
1309238405Sjkim	movl	%edx,%eax
1310238405Sjkim	shll	$4,%edi
1311238405Sjkim	xorl	%esi,%ebx
1312238405Sjkim	shrl	$5,%ecx
1313238405Sjkim	xorl	%edi,%eax
1314238405Sjkim	shrl	$5,%edx
1315238405Sjkim	xorl	%ecx,%ebx
1316238405Sjkim	shll	$21,%esi
1317238405Sjkim	xorl	%edx,%eax
1318238405Sjkim	shll	$21,%edi
1319238405Sjkim	xorl	%esi,%eax
1320238405Sjkim	shrl	$21,%ecx
1321238405Sjkim	xorl	%edi,%ebx
1322238405Sjkim	shrl	$21,%edx
1323238405Sjkim	xorl	%ecx,%eax
1324238405Sjkim	shll	$5,%esi
1325238405Sjkim	xorl	%edx,%ebx
1326238405Sjkim	shll	$5,%edi
1327238405Sjkim	xorl	%esi,%eax
1328238405Sjkim	xorl	%edi,%ebx
1329238405Sjkim	movl	8(%esp),%ecx
1330238405Sjkim	movl	12(%esp),%edx
1331238405Sjkim	movl	16(%esp),%esi
1332238405Sjkim	movl	20(%esp),%edi
1333238405Sjkim	addl	(%esp),%eax
1334238405Sjkim	adcl	4(%esp),%ebx
1335238405Sjkim	orl	%esi,%ecx
1336238405Sjkim	orl	%edi,%edx
1337238405Sjkim	andl	24(%esp),%ecx
1338238405Sjkim	andl	28(%esp),%edx
1339238405Sjkim	andl	8(%esp),%esi
1340238405Sjkim	andl	12(%esp),%edi
1341238405Sjkim	orl	%esi,%ecx
1342238405Sjkim	orl	%edi,%edx
1343238405Sjkim	addl	%ecx,%eax
1344238405Sjkim	adcl	%edx,%ebx
1345238405Sjkim	movl	%eax,(%esp)
1346238405Sjkim	movl	%ebx,4(%esp)
1347238405Sjkim	movb	(%ebp),%dl
1348238405Sjkim	subl	$8,%esp
1349238405Sjkim	leal	8(%ebp),%ebp
1350238405Sjkim	cmpb	$148,%dl
1351238405Sjkim	jne	.L00600_15_x86
1352238405Sjkim.align	16
1353238405Sjkim.L00716_79_x86:
1354238405Sjkim	movl	312(%esp),%ecx
1355238405Sjkim	movl	316(%esp),%edx
1356238405Sjkim	movl	%ecx,%esi
1357238405Sjkim	shrl	$1,%ecx
1358238405Sjkim	movl	%edx,%edi
1359238405Sjkim	shrl	$1,%edx
1360238405Sjkim	movl	%ecx,%eax
1361238405Sjkim	shll	$24,%esi
1362238405Sjkim	movl	%edx,%ebx
1363238405Sjkim	shll	$24,%edi
1364238405Sjkim	xorl	%esi,%ebx
1365238405Sjkim	shrl	$6,%ecx
1366238405Sjkim	xorl	%edi,%eax
1367238405Sjkim	shrl	$6,%edx
1368238405Sjkim	xorl	%ecx,%eax
1369238405Sjkim	shll	$7,%esi
1370238405Sjkim	xorl	%edx,%ebx
1371238405Sjkim	shll	$1,%edi
1372238405Sjkim	xorl	%esi,%ebx
1373238405Sjkim	shrl	$1,%ecx
1374238405Sjkim	xorl	%edi,%eax
1375238405Sjkim	shrl	$1,%edx
1376238405Sjkim	xorl	%ecx,%eax
1377238405Sjkim	shll	$6,%edi
1378238405Sjkim	xorl	%edx,%ebx
1379238405Sjkim	xorl	%edi,%eax
1380238405Sjkim	movl	%eax,(%esp)
1381238405Sjkim	movl	%ebx,4(%esp)
1382238405Sjkim	movl	208(%esp),%ecx
1383238405Sjkim	movl	212(%esp),%edx
1384238405Sjkim	movl	%ecx,%esi
1385238405Sjkim	shrl	$6,%ecx
1386238405Sjkim	movl	%edx,%edi
1387238405Sjkim	shrl	$6,%edx
1388238405Sjkim	movl	%ecx,%eax
1389238405Sjkim	shll	$3,%esi
1390238405Sjkim	movl	%edx,%ebx
1391238405Sjkim	shll	$3,%edi
1392238405Sjkim	xorl	%esi,%eax
1393238405Sjkim	shrl	$13,%ecx
1394238405Sjkim	xorl	%edi,%ebx
1395238405Sjkim	shrl	$13,%edx
1396238405Sjkim	xorl	%ecx,%eax
1397238405Sjkim	shll	$10,%esi
1398238405Sjkim	xorl	%edx,%ebx
1399238405Sjkim	shll	$10,%edi
1400238405Sjkim	xorl	%esi,%ebx
1401238405Sjkim	shrl	$10,%ecx
1402238405Sjkim	xorl	%edi,%eax
1403238405Sjkim	shrl	$10,%edx
1404238405Sjkim	xorl	%ecx,%ebx
1405238405Sjkim	shll	$13,%edi
1406238405Sjkim	xorl	%edx,%eax
1407238405Sjkim	xorl	%edi,%eax
1408238405Sjkim	movl	320(%esp),%ecx
1409238405Sjkim	movl	324(%esp),%edx
1410238405Sjkim	addl	(%esp),%eax
1411238405Sjkim	adcl	4(%esp),%ebx
1412238405Sjkim	movl	248(%esp),%esi
1413238405Sjkim	movl	252(%esp),%edi
1414238405Sjkim	addl	%ecx,%eax
1415238405Sjkim	adcl	%edx,%ebx
1416238405Sjkim	addl	%esi,%eax
1417238405Sjkim	adcl	%edi,%ebx
1418238405Sjkim	movl	%eax,192(%esp)
1419238405Sjkim	movl	%ebx,196(%esp)
1420238405Sjkim	movl	40(%esp),%ecx
1421238405Sjkim	movl	44(%esp),%edx
1422238405Sjkim	movl	%ecx,%esi
1423238405Sjkim	shrl	$9,%ecx
1424238405Sjkim	movl	%edx,%edi
1425238405Sjkim	shrl	$9,%edx
1426238405Sjkim	movl	%ecx,%ebx
1427238405Sjkim	shll	$14,%esi
1428238405Sjkim	movl	%edx,%eax
1429238405Sjkim	shll	$14,%edi
1430238405Sjkim	xorl	%esi,%ebx
1431238405Sjkim	shrl	$5,%ecx
1432238405Sjkim	xorl	%edi,%eax
1433238405Sjkim	shrl	$5,%edx
1434238405Sjkim	xorl	%ecx,%eax
1435238405Sjkim	shll	$4,%esi
1436238405Sjkim	xorl	%edx,%ebx
1437238405Sjkim	shll	$4,%edi
1438238405Sjkim	xorl	%esi,%ebx
1439238405Sjkim	shrl	$4,%ecx
1440238405Sjkim	xorl	%edi,%eax
1441238405Sjkim	shrl	$4,%edx
1442238405Sjkim	xorl	%ecx,%eax
1443238405Sjkim	shll	$5,%esi
1444238405Sjkim	xorl	%edx,%ebx
1445238405Sjkim	shll	$5,%edi
1446238405Sjkim	xorl	%esi,%eax
1447238405Sjkim	xorl	%edi,%ebx
1448238405Sjkim	movl	48(%esp),%ecx
1449238405Sjkim	movl	52(%esp),%edx
1450238405Sjkim	movl	56(%esp),%esi
1451238405Sjkim	movl	60(%esp),%edi
1452238405Sjkim	addl	64(%esp),%eax
1453238405Sjkim	adcl	68(%esp),%ebx
1454238405Sjkim	xorl	%esi,%ecx
1455238405Sjkim	xorl	%edi,%edx
1456238405Sjkim	andl	40(%esp),%ecx
1457238405Sjkim	andl	44(%esp),%edx
1458238405Sjkim	addl	192(%esp),%eax
1459238405Sjkim	adcl	196(%esp),%ebx
1460238405Sjkim	xorl	%esi,%ecx
1461238405Sjkim	xorl	%edi,%edx
1462238405Sjkim	movl	(%ebp),%esi
1463238405Sjkim	movl	4(%ebp),%edi
1464238405Sjkim	addl	%ecx,%eax
1465238405Sjkim	adcl	%edx,%ebx
1466238405Sjkim	movl	32(%esp),%ecx
1467238405Sjkim	movl	36(%esp),%edx
1468238405Sjkim	addl	%esi,%eax
1469238405Sjkim	adcl	%edi,%ebx
1470238405Sjkim	movl	%eax,(%esp)
1471238405Sjkim	movl	%ebx,4(%esp)
1472238405Sjkim	addl	%ecx,%eax
1473238405Sjkim	adcl	%edx,%ebx
1474238405Sjkim	movl	8(%esp),%ecx
1475238405Sjkim	movl	12(%esp),%edx
1476238405Sjkim	movl	%eax,32(%esp)
1477238405Sjkim	movl	%ebx,36(%esp)
1478238405Sjkim	movl	%ecx,%esi
1479238405Sjkim	shrl	$2,%ecx
1480238405Sjkim	movl	%edx,%edi
1481238405Sjkim	shrl	$2,%edx
1482238405Sjkim	movl	%ecx,%ebx
1483238405Sjkim	shll	$4,%esi
1484238405Sjkim	movl	%edx,%eax
1485238405Sjkim	shll	$4,%edi
1486238405Sjkim	xorl	%esi,%ebx
1487238405Sjkim	shrl	$5,%ecx
1488238405Sjkim	xorl	%edi,%eax
1489238405Sjkim	shrl	$5,%edx
1490238405Sjkim	xorl	%ecx,%ebx
1491238405Sjkim	shll	$21,%esi
1492238405Sjkim	xorl	%edx,%eax
1493238405Sjkim	shll	$21,%edi
1494238405Sjkim	xorl	%esi,%eax
1495238405Sjkim	shrl	$21,%ecx
1496238405Sjkim	xorl	%edi,%ebx
1497238405Sjkim	shrl	$21,%edx
1498238405Sjkim	xorl	%ecx,%eax
1499238405Sjkim	shll	$5,%esi
1500238405Sjkim	xorl	%edx,%ebx
1501238405Sjkim	shll	$5,%edi
1502238405Sjkim	xorl	%esi,%eax
1503238405Sjkim	xorl	%edi,%ebx
1504238405Sjkim	movl	8(%esp),%ecx
1505238405Sjkim	movl	12(%esp),%edx
1506238405Sjkim	movl	16(%esp),%esi
1507238405Sjkim	movl	20(%esp),%edi
1508238405Sjkim	addl	(%esp),%eax
1509238405Sjkim	adcl	4(%esp),%ebx
1510238405Sjkim	orl	%esi,%ecx
1511238405Sjkim	orl	%edi,%edx
1512238405Sjkim	andl	24(%esp),%ecx
1513238405Sjkim	andl	28(%esp),%edx
1514238405Sjkim	andl	8(%esp),%esi
1515238405Sjkim	andl	12(%esp),%edi
1516238405Sjkim	orl	%esi,%ecx
1517238405Sjkim	orl	%edi,%edx
1518238405Sjkim	addl	%ecx,%eax
1519238405Sjkim	adcl	%edx,%ebx
1520238405Sjkim	movl	%eax,(%esp)
1521238405Sjkim	movl	%ebx,4(%esp)
1522238405Sjkim	movb	(%ebp),%dl
1523238405Sjkim	subl	$8,%esp
1524238405Sjkim	leal	8(%ebp),%ebp
1525238405Sjkim	cmpb	$23,%dl
1526238405Sjkim	jne	.L00716_79_x86
1527238405Sjkim	movl	840(%esp),%esi
1528238405Sjkim	movl	844(%esp),%edi
1529238405Sjkim	movl	(%esi),%eax
1530238405Sjkim	movl	4(%esi),%ebx
1531238405Sjkim	movl	8(%esi),%ecx
1532238405Sjkim	movl	12(%esi),%edx
1533238405Sjkim	addl	8(%esp),%eax
1534238405Sjkim	adcl	12(%esp),%ebx
1535238405Sjkim	movl	%eax,(%esi)
1536238405Sjkim	movl	%ebx,4(%esi)
1537238405Sjkim	addl	16(%esp),%ecx
1538238405Sjkim	adcl	20(%esp),%edx
1539238405Sjkim	movl	%ecx,8(%esi)
1540238405Sjkim	movl	%edx,12(%esi)
1541238405Sjkim	movl	16(%esi),%eax
1542238405Sjkim	movl	20(%esi),%ebx
1543238405Sjkim	movl	24(%esi),%ecx
1544238405Sjkim	movl	28(%esi),%edx
1545238405Sjkim	addl	24(%esp),%eax
1546238405Sjkim	adcl	28(%esp),%ebx
1547238405Sjkim	movl	%eax,16(%esi)
1548238405Sjkim	movl	%ebx,20(%esi)
1549238405Sjkim	addl	32(%esp),%ecx
1550238405Sjkim	adcl	36(%esp),%edx
1551238405Sjkim	movl	%ecx,24(%esi)
1552238405Sjkim	movl	%edx,28(%esi)
1553238405Sjkim	movl	32(%esi),%eax
1554238405Sjkim	movl	36(%esi),%ebx
1555238405Sjkim	movl	40(%esi),%ecx
1556238405Sjkim	movl	44(%esi),%edx
1557238405Sjkim	addl	40(%esp),%eax
1558238405Sjkim	adcl	44(%esp),%ebx
1559238405Sjkim	movl	%eax,32(%esi)
1560238405Sjkim	movl	%ebx,36(%esi)
1561238405Sjkim	addl	48(%esp),%ecx
1562238405Sjkim	adcl	52(%esp),%edx
1563238405Sjkim	movl	%ecx,40(%esi)
1564238405Sjkim	movl	%edx,44(%esi)
1565238405Sjkim	movl	48(%esi),%eax
1566238405Sjkim	movl	52(%esi),%ebx
1567238405Sjkim	movl	56(%esi),%ecx
1568238405Sjkim	movl	60(%esi),%edx
1569238405Sjkim	addl	56(%esp),%eax
1570238405Sjkim	adcl	60(%esp),%ebx
1571238405Sjkim	movl	%eax,48(%esi)
1572238405Sjkim	movl	%ebx,52(%esi)
1573238405Sjkim	addl	64(%esp),%ecx
1574238405Sjkim	adcl	68(%esp),%edx
1575238405Sjkim	movl	%ecx,56(%esi)
1576238405Sjkim	movl	%edx,60(%esi)
1577238405Sjkim	addl	$840,%esp
1578238405Sjkim	subl	$640,%ebp
1579238405Sjkim	cmpl	8(%esp),%edi
1580238405Sjkim	jb	.L002loop_x86
1581238405Sjkim	movl	12(%esp),%esp
1582238405Sjkim	popl	%edi
1583238405Sjkim	popl	%esi
1584238405Sjkim	popl	%ebx
1585238405Sjkim	popl	%ebp
1586238405Sjkim	ret
1587238405Sjkim.align	64
1588238405Sjkim.L001K512:
1589238405Sjkim.long	3609767458,1116352408
1590238405Sjkim.long	602891725,1899447441
1591238405Sjkim.long	3964484399,3049323471
1592238405Sjkim.long	2173295548,3921009573
1593238405Sjkim.long	4081628472,961987163
1594238405Sjkim.long	3053834265,1508970993
1595238405Sjkim.long	2937671579,2453635748
1596238405Sjkim.long	3664609560,2870763221
1597238405Sjkim.long	2734883394,3624381080
1598238405Sjkim.long	1164996542,310598401
1599238405Sjkim.long	1323610764,607225278
1600238405Sjkim.long	3590304994,1426881987
1601238405Sjkim.long	4068182383,1925078388
1602238405Sjkim.long	991336113,2162078206
1603238405Sjkim.long	633803317,2614888103
1604238405Sjkim.long	3479774868,3248222580
1605238405Sjkim.long	2666613458,3835390401
1606238405Sjkim.long	944711139,4022224774
1607238405Sjkim.long	2341262773,264347078
1608238405Sjkim.long	2007800933,604807628
1609238405Sjkim.long	1495990901,770255983
1610238405Sjkim.long	1856431235,1249150122
1611238405Sjkim.long	3175218132,1555081692
1612238405Sjkim.long	2198950837,1996064986
1613238405Sjkim.long	3999719339,2554220882
1614238405Sjkim.long	766784016,2821834349
1615238405Sjkim.long	2566594879,2952996808
1616238405Sjkim.long	3203337956,3210313671
1617238405Sjkim.long	1034457026,3336571891
1618238405Sjkim.long	2466948901,3584528711
1619238405Sjkim.long	3758326383,113926993
1620238405Sjkim.long	168717936,338241895
1621238405Sjkim.long	1188179964,666307205
1622238405Sjkim.long	1546045734,773529912
1623238405Sjkim.long	1522805485,1294757372
1624238405Sjkim.long	2643833823,1396182291
1625238405Sjkim.long	2343527390,1695183700
1626238405Sjkim.long	1014477480,1986661051
1627238405Sjkim.long	1206759142,2177026350
1628238405Sjkim.long	344077627,2456956037
1629238405Sjkim.long	1290863460,2730485921
1630238405Sjkim.long	3158454273,2820302411
1631238405Sjkim.long	3505952657,3259730800
1632238405Sjkim.long	106217008,3345764771
1633238405Sjkim.long	3606008344,3516065817
1634238405Sjkim.long	1432725776,3600352804
1635238405Sjkim.long	1467031594,4094571909
1636238405Sjkim.long	851169720,275423344
1637238405Sjkim.long	3100823752,430227734
1638238405Sjkim.long	1363258195,506948616
1639238405Sjkim.long	3750685593,659060556
1640238405Sjkim.long	3785050280,883997877
1641238405Sjkim.long	3318307427,958139571
1642238405Sjkim.long	3812723403,1322822218
1643238405Sjkim.long	2003034995,1537002063
1644238405Sjkim.long	3602036899,1747873779
1645238405Sjkim.long	1575990012,1955562222
1646238405Sjkim.long	1125592928,2024104815
1647238405Sjkim.long	2716904306,2227730452
1648238405Sjkim.long	442776044,2361852424
1649238405Sjkim.long	593698344,2428436474
1650238405Sjkim.long	3733110249,2756734187
1651238405Sjkim.long	2999351573,3204031479
1652238405Sjkim.long	3815920427,3329325298
1653238405Sjkim.long	3928383900,3391569614
1654238405Sjkim.long	566280711,3515267271
1655238405Sjkim.long	3454069534,3940187606
1656238405Sjkim.long	4000239992,4118630271
1657238405Sjkim.long	1914138554,116418474
1658238405Sjkim.long	2731055270,174292421
1659238405Sjkim.long	3203993006,289380356
1660238405Sjkim.long	320620315,460393269
1661238405Sjkim.long	587496836,685471733
1662238405Sjkim.long	1086792851,852142971
1663238405Sjkim.long	365543100,1017036298
1664238405Sjkim.long	2618297676,1126000580
1665238405Sjkim.long	3409855158,1288033470
1666238405Sjkim.long	4234509866,1501505948
1667238405Sjkim.long	987167468,1607167915
1668238405Sjkim.long	1246189591,1816402316
1669238405Sjkim.size	sha512_block_data_order,.-.L_sha512_block_data_order_begin
1670238405Sjkim.byte	83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
1671238405Sjkim.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
1672238405Sjkim.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
1673238405Sjkim.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
1674238405Sjkim.byte	62,0
1675238405Sjkim.comm	OPENSSL_ia32cap_P,8,4
1676299966Sjkim#endif
1677