sha256-586.S revision 299966
1# $FreeBSD: stable/10/secure/lib/libcrypto/i386/sha256-586.S 299966 2016-05-16 19:30:27Z jkim $
2# Do not modify. This file is auto-generated from sha256-586.pl.
3#ifdef PIC
4.file	"sha256-586.S"
5.text
6.globl	sha256_block_data_order
7.type	sha256_block_data_order,@function
8.align	16
9sha256_block_data_order:
10.L_sha256_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	.L001K256-.L000pic_point(%ebp),%ebp
23	subl	$16,%esp
24	andl	$-64,%esp
25	shll	$6,%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.align	16
32.L002loop:
33	movl	(%edi),%eax
34	movl	4(%edi),%ebx
35	movl	8(%edi),%ecx
36	movl	12(%edi),%edx
37	bswap	%eax
38	bswap	%ebx
39	bswap	%ecx
40	bswap	%edx
41	pushl	%eax
42	pushl	%ebx
43	pushl	%ecx
44	pushl	%edx
45	movl	16(%edi),%eax
46	movl	20(%edi),%ebx
47	movl	24(%edi),%ecx
48	movl	28(%edi),%edx
49	bswap	%eax
50	bswap	%ebx
51	bswap	%ecx
52	bswap	%edx
53	pushl	%eax
54	pushl	%ebx
55	pushl	%ecx
56	pushl	%edx
57	movl	32(%edi),%eax
58	movl	36(%edi),%ebx
59	movl	40(%edi),%ecx
60	movl	44(%edi),%edx
61	bswap	%eax
62	bswap	%ebx
63	bswap	%ecx
64	bswap	%edx
65	pushl	%eax
66	pushl	%ebx
67	pushl	%ecx
68	pushl	%edx
69	movl	48(%edi),%eax
70	movl	52(%edi),%ebx
71	movl	56(%edi),%ecx
72	movl	60(%edi),%edx
73	bswap	%eax
74	bswap	%ebx
75	bswap	%ecx
76	bswap	%edx
77	pushl	%eax
78	pushl	%ebx
79	pushl	%ecx
80	pushl	%edx
81	addl	$64,%edi
82	subl	$32,%esp
83	movl	%edi,100(%esp)
84	movl	(%esi),%eax
85	movl	4(%esi),%ebx
86	movl	8(%esi),%ecx
87	movl	12(%esi),%edi
88	movl	%ebx,4(%esp)
89	movl	%ecx,8(%esp)
90	movl	%edi,12(%esp)
91	movl	16(%esi),%edx
92	movl	20(%esi),%ebx
93	movl	24(%esi),%ecx
94	movl	28(%esi),%edi
95	movl	%ebx,20(%esp)
96	movl	%ecx,24(%esp)
97	movl	%edi,28(%esp)
98.align	16
99.L00300_15:
100	movl	92(%esp),%ebx
101	movl	%edx,%ecx
102	rorl	$14,%ecx
103	movl	20(%esp),%esi
104	xorl	%edx,%ecx
105	rorl	$5,%ecx
106	xorl	%edx,%ecx
107	rorl	$6,%ecx
108	movl	24(%esp),%edi
109	addl	%ecx,%ebx
110	xorl	%edi,%esi
111	movl	%edx,16(%esp)
112	movl	%eax,%ecx
113	andl	%edx,%esi
114	movl	12(%esp),%edx
115	xorl	%edi,%esi
116	movl	%eax,%edi
117	addl	%esi,%ebx
118	rorl	$9,%ecx
119	addl	28(%esp),%ebx
120	xorl	%eax,%ecx
121	rorl	$11,%ecx
122	movl	4(%esp),%esi
123	xorl	%eax,%ecx
124	rorl	$2,%ecx
125	addl	%ebx,%edx
126	movl	8(%esp),%edi
127	addl	%ecx,%ebx
128	movl	%eax,(%esp)
129	movl	%eax,%ecx
130	subl	$4,%esp
131	orl	%esi,%eax
132	andl	%esi,%ecx
133	andl	%edi,%eax
134	movl	(%ebp),%esi
135	orl	%ecx,%eax
136	addl	$4,%ebp
137	addl	%ebx,%eax
138	addl	%esi,%edx
139	addl	%esi,%eax
140	cmpl	$3248222580,%esi
141	jne	.L00300_15
142	movl	152(%esp),%ebx
143.align	16
144.L00416_63:
145	movl	%ebx,%esi
146	movl	100(%esp),%ecx
147	rorl	$11,%esi
148	movl	%ecx,%edi
149	xorl	%ebx,%esi
150	rorl	$7,%esi
151	shrl	$3,%ebx
152	rorl	$2,%edi
153	xorl	%esi,%ebx
154	xorl	%ecx,%edi
155	rorl	$17,%edi
156	shrl	$10,%ecx
157	addl	156(%esp),%ebx
158	xorl	%ecx,%edi
159	addl	120(%esp),%ebx
160	movl	%edx,%ecx
161	addl	%edi,%ebx
162	rorl	$14,%ecx
163	movl	20(%esp),%esi
164	xorl	%edx,%ecx
165	rorl	$5,%ecx
166	movl	%ebx,92(%esp)
167	xorl	%edx,%ecx
168	rorl	$6,%ecx
169	movl	24(%esp),%edi
170	addl	%ecx,%ebx
171	xorl	%edi,%esi
172	movl	%edx,16(%esp)
173	movl	%eax,%ecx
174	andl	%edx,%esi
175	movl	12(%esp),%edx
176	xorl	%edi,%esi
177	movl	%eax,%edi
178	addl	%esi,%ebx
179	rorl	$9,%ecx
180	addl	28(%esp),%ebx
181	xorl	%eax,%ecx
182	rorl	$11,%ecx
183	movl	4(%esp),%esi
184	xorl	%eax,%ecx
185	rorl	$2,%ecx
186	addl	%ebx,%edx
187	movl	8(%esp),%edi
188	addl	%ecx,%ebx
189	movl	%eax,(%esp)
190	movl	%eax,%ecx
191	subl	$4,%esp
192	orl	%esi,%eax
193	andl	%esi,%ecx
194	andl	%edi,%eax
195	movl	(%ebp),%esi
196	orl	%ecx,%eax
197	addl	$4,%ebp
198	addl	%ebx,%eax
199	movl	152(%esp),%ebx
200	addl	%esi,%edx
201	addl	%esi,%eax
202	cmpl	$3329325298,%esi
203	jne	.L00416_63
204	movl	352(%esp),%esi
205	movl	4(%esp),%ebx
206	movl	8(%esp),%ecx
207	movl	12(%esp),%edi
208	addl	(%esi),%eax
209	addl	4(%esi),%ebx
210	addl	8(%esi),%ecx
211	addl	12(%esi),%edi
212	movl	%eax,(%esi)
213	movl	%ebx,4(%esi)
214	movl	%ecx,8(%esi)
215	movl	%edi,12(%esi)
216	movl	20(%esp),%eax
217	movl	24(%esp),%ebx
218	movl	28(%esp),%ecx
219	movl	356(%esp),%edi
220	addl	16(%esi),%edx
221	addl	20(%esi),%eax
222	addl	24(%esi),%ebx
223	addl	28(%esi),%ecx
224	movl	%edx,16(%esi)
225	movl	%eax,20(%esi)
226	movl	%ebx,24(%esi)
227	movl	%ecx,28(%esi)
228	addl	$352,%esp
229	subl	$256,%ebp
230	cmpl	8(%esp),%edi
231	jb	.L002loop
232	movl	12(%esp),%esp
233	popl	%edi
234	popl	%esi
235	popl	%ebx
236	popl	%ebp
237	ret
238.align	64
239.L001K256:
240.long	1116352408,1899447441,3049323471,3921009573
241.long	961987163,1508970993,2453635748,2870763221
242.long	3624381080,310598401,607225278,1426881987
243.long	1925078388,2162078206,2614888103,3248222580
244.long	3835390401,4022224774,264347078,604807628
245.long	770255983,1249150122,1555081692,1996064986
246.long	2554220882,2821834349,2952996808,3210313671
247.long	3336571891,3584528711,113926993,338241895
248.long	666307205,773529912,1294757372,1396182291
249.long	1695183700,1986661051,2177026350,2456956037
250.long	2730485921,2820302411,3259730800,3345764771
251.long	3516065817,3600352804,4094571909,275423344
252.long	430227734,506948616,659060556,883997877
253.long	958139571,1322822218,1537002063,1747873779
254.long	1955562222,2024104815,2227730452,2361852424
255.long	2428436474,2756734187,3204031479,3329325298
256.size	sha256_block_data_order,.-.L_sha256_block_data_order_begin
257.byte	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
258.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
259.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
260.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
261.byte	62,0
262#else
263.file	"sha256-586.S"
264.text
265.globl	sha256_block_data_order
266.type	sha256_block_data_order,@function
267.align	16
268sha256_block_data_order:
269.L_sha256_block_data_order_begin:
270	pushl	%ebp
271	pushl	%ebx
272	pushl	%esi
273	pushl	%edi
274	movl	20(%esp),%esi
275	movl	24(%esp),%edi
276	movl	28(%esp),%eax
277	movl	%esp,%ebx
278	call	.L000pic_point
279.L000pic_point:
280	popl	%ebp
281	leal	.L001K256-.L000pic_point(%ebp),%ebp
282	subl	$16,%esp
283	andl	$-64,%esp
284	shll	$6,%eax
285	addl	%edi,%eax
286	movl	%esi,(%esp)
287	movl	%edi,4(%esp)
288	movl	%eax,8(%esp)
289	movl	%ebx,12(%esp)
290.align	16
291.L002loop:
292	movl	(%edi),%eax
293	movl	4(%edi),%ebx
294	movl	8(%edi),%ecx
295	movl	12(%edi),%edx
296	bswap	%eax
297	bswap	%ebx
298	bswap	%ecx
299	bswap	%edx
300	pushl	%eax
301	pushl	%ebx
302	pushl	%ecx
303	pushl	%edx
304	movl	16(%edi),%eax
305	movl	20(%edi),%ebx
306	movl	24(%edi),%ecx
307	movl	28(%edi),%edx
308	bswap	%eax
309	bswap	%ebx
310	bswap	%ecx
311	bswap	%edx
312	pushl	%eax
313	pushl	%ebx
314	pushl	%ecx
315	pushl	%edx
316	movl	32(%edi),%eax
317	movl	36(%edi),%ebx
318	movl	40(%edi),%ecx
319	movl	44(%edi),%edx
320	bswap	%eax
321	bswap	%ebx
322	bswap	%ecx
323	bswap	%edx
324	pushl	%eax
325	pushl	%ebx
326	pushl	%ecx
327	pushl	%edx
328	movl	48(%edi),%eax
329	movl	52(%edi),%ebx
330	movl	56(%edi),%ecx
331	movl	60(%edi),%edx
332	bswap	%eax
333	bswap	%ebx
334	bswap	%ecx
335	bswap	%edx
336	pushl	%eax
337	pushl	%ebx
338	pushl	%ecx
339	pushl	%edx
340	addl	$64,%edi
341	subl	$32,%esp
342	movl	%edi,100(%esp)
343	movl	(%esi),%eax
344	movl	4(%esi),%ebx
345	movl	8(%esi),%ecx
346	movl	12(%esi),%edi
347	movl	%ebx,4(%esp)
348	movl	%ecx,8(%esp)
349	movl	%edi,12(%esp)
350	movl	16(%esi),%edx
351	movl	20(%esi),%ebx
352	movl	24(%esi),%ecx
353	movl	28(%esi),%edi
354	movl	%ebx,20(%esp)
355	movl	%ecx,24(%esp)
356	movl	%edi,28(%esp)
357.align	16
358.L00300_15:
359	movl	92(%esp),%ebx
360	movl	%edx,%ecx
361	rorl	$14,%ecx
362	movl	20(%esp),%esi
363	xorl	%edx,%ecx
364	rorl	$5,%ecx
365	xorl	%edx,%ecx
366	rorl	$6,%ecx
367	movl	24(%esp),%edi
368	addl	%ecx,%ebx
369	xorl	%edi,%esi
370	movl	%edx,16(%esp)
371	movl	%eax,%ecx
372	andl	%edx,%esi
373	movl	12(%esp),%edx
374	xorl	%edi,%esi
375	movl	%eax,%edi
376	addl	%esi,%ebx
377	rorl	$9,%ecx
378	addl	28(%esp),%ebx
379	xorl	%eax,%ecx
380	rorl	$11,%ecx
381	movl	4(%esp),%esi
382	xorl	%eax,%ecx
383	rorl	$2,%ecx
384	addl	%ebx,%edx
385	movl	8(%esp),%edi
386	addl	%ecx,%ebx
387	movl	%eax,(%esp)
388	movl	%eax,%ecx
389	subl	$4,%esp
390	orl	%esi,%eax
391	andl	%esi,%ecx
392	andl	%edi,%eax
393	movl	(%ebp),%esi
394	orl	%ecx,%eax
395	addl	$4,%ebp
396	addl	%ebx,%eax
397	addl	%esi,%edx
398	addl	%esi,%eax
399	cmpl	$3248222580,%esi
400	jne	.L00300_15
401	movl	152(%esp),%ebx
402.align	16
403.L00416_63:
404	movl	%ebx,%esi
405	movl	100(%esp),%ecx
406	rorl	$11,%esi
407	movl	%ecx,%edi
408	xorl	%ebx,%esi
409	rorl	$7,%esi
410	shrl	$3,%ebx
411	rorl	$2,%edi
412	xorl	%esi,%ebx
413	xorl	%ecx,%edi
414	rorl	$17,%edi
415	shrl	$10,%ecx
416	addl	156(%esp),%ebx
417	xorl	%ecx,%edi
418	addl	120(%esp),%ebx
419	movl	%edx,%ecx
420	addl	%edi,%ebx
421	rorl	$14,%ecx
422	movl	20(%esp),%esi
423	xorl	%edx,%ecx
424	rorl	$5,%ecx
425	movl	%ebx,92(%esp)
426	xorl	%edx,%ecx
427	rorl	$6,%ecx
428	movl	24(%esp),%edi
429	addl	%ecx,%ebx
430	xorl	%edi,%esi
431	movl	%edx,16(%esp)
432	movl	%eax,%ecx
433	andl	%edx,%esi
434	movl	12(%esp),%edx
435	xorl	%edi,%esi
436	movl	%eax,%edi
437	addl	%esi,%ebx
438	rorl	$9,%ecx
439	addl	28(%esp),%ebx
440	xorl	%eax,%ecx
441	rorl	$11,%ecx
442	movl	4(%esp),%esi
443	xorl	%eax,%ecx
444	rorl	$2,%ecx
445	addl	%ebx,%edx
446	movl	8(%esp),%edi
447	addl	%ecx,%ebx
448	movl	%eax,(%esp)
449	movl	%eax,%ecx
450	subl	$4,%esp
451	orl	%esi,%eax
452	andl	%esi,%ecx
453	andl	%edi,%eax
454	movl	(%ebp),%esi
455	orl	%ecx,%eax
456	addl	$4,%ebp
457	addl	%ebx,%eax
458	movl	152(%esp),%ebx
459	addl	%esi,%edx
460	addl	%esi,%eax
461	cmpl	$3329325298,%esi
462	jne	.L00416_63
463	movl	352(%esp),%esi
464	movl	4(%esp),%ebx
465	movl	8(%esp),%ecx
466	movl	12(%esp),%edi
467	addl	(%esi),%eax
468	addl	4(%esi),%ebx
469	addl	8(%esi),%ecx
470	addl	12(%esi),%edi
471	movl	%eax,(%esi)
472	movl	%ebx,4(%esi)
473	movl	%ecx,8(%esi)
474	movl	%edi,12(%esi)
475	movl	20(%esp),%eax
476	movl	24(%esp),%ebx
477	movl	28(%esp),%ecx
478	movl	356(%esp),%edi
479	addl	16(%esi),%edx
480	addl	20(%esi),%eax
481	addl	24(%esi),%ebx
482	addl	28(%esi),%ecx
483	movl	%edx,16(%esi)
484	movl	%eax,20(%esi)
485	movl	%ebx,24(%esi)
486	movl	%ecx,28(%esi)
487	addl	$352,%esp
488	subl	$256,%ebp
489	cmpl	8(%esp),%edi
490	jb	.L002loop
491	movl	12(%esp),%esp
492	popl	%edi
493	popl	%esi
494	popl	%ebx
495	popl	%ebp
496	ret
497.align	64
498.L001K256:
499.long	1116352408,1899447441,3049323471,3921009573
500.long	961987163,1508970993,2453635748,2870763221
501.long	3624381080,310598401,607225278,1426881987
502.long	1925078388,2162078206,2614888103,3248222580
503.long	3835390401,4022224774,264347078,604807628
504.long	770255983,1249150122,1555081692,1996064986
505.long	2554220882,2821834349,2952996808,3210313671
506.long	3336571891,3584528711,113926993,338241895
507.long	666307205,773529912,1294757372,1396182291
508.long	1695183700,1986661051,2177026350,2456956037
509.long	2730485921,2820302411,3259730800,3345764771
510.long	3516065817,3600352804,4094571909,275423344
511.long	430227734,506948616,659060556,883997877
512.long	958139571,1322822218,1537002063,1747873779
513.long	1955562222,2024104815,2227730452,2361852424
514.long	2428436474,2756734187,3204031479,3329325298
515.size	sha256_block_data_order,.-.L_sha256_block_data_order_begin
516.byte	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
517.byte	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
518.byte	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
519.byte	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
520.byte	62,0
521#endif
522