Sync usage with man page.
[netbsd-mini2440.git] / crypto / external / bsd / openssl / lib / libcrypto / arch / i386 / sha512-586.S
blob4b806f352e299a1f92c27af9c44e79391500f403
1 .file   "sha512-586.s"
2 .text
3 .globl  sha512_block_data_order
4 .type   sha512_block_data_order,@function
5 .align  16
6 sha512_block_data_order:
7 .L_sha512_block_data_order_begin:
8         pushl   %ebp
9         pushl   %ebx
10         pushl   %esi
11         pushl   %edi
12         movl    20(%esp),%esi
13         movl    24(%esp),%edi
14         movl    28(%esp),%eax
15         movl    %esp,%ebx
16         call    .L000pic_point
17 .L000pic_point:
18         popl    %ebp
19         leal    .L001K512-.L000pic_point(%ebp),%ebp
20         subl    $16,%esp
21         andl    $-64,%esp
22         shll    $7,%eax
23         addl    %edi,%eax
24         movl    %esi,(%esp)
25         movl    %edi,4(%esp)
26         movl    %eax,8(%esp)
27         movl    %ebx,12(%esp)
28 .align  16
29 .L002loop_x86:
30         movl    (%edi),%eax
31         movl    4(%edi),%ebx
32         movl    8(%edi),%ecx
33         movl    12(%edi),%edx
34         bswap   %eax
35         bswap   %ebx
36         bswap   %ecx
37         bswap   %edx
38         pushl   %eax
39         pushl   %ebx
40         pushl   %ecx
41         pushl   %edx
42         movl    16(%edi),%eax
43         movl    20(%edi),%ebx
44         movl    24(%edi),%ecx
45         movl    28(%edi),%edx
46         bswap   %eax
47         bswap   %ebx
48         bswap   %ecx
49         bswap   %edx
50         pushl   %eax
51         pushl   %ebx
52         pushl   %ecx
53         pushl   %edx
54         movl    32(%edi),%eax
55         movl    36(%edi),%ebx
56         movl    40(%edi),%ecx
57         movl    44(%edi),%edx
58         bswap   %eax
59         bswap   %ebx
60         bswap   %ecx
61         bswap   %edx
62         pushl   %eax
63         pushl   %ebx
64         pushl   %ecx
65         pushl   %edx
66         movl    48(%edi),%eax
67         movl    52(%edi),%ebx
68         movl    56(%edi),%ecx
69         movl    60(%edi),%edx
70         bswap   %eax
71         bswap   %ebx
72         bswap   %ecx
73         bswap   %edx
74         pushl   %eax
75         pushl   %ebx
76         pushl   %ecx
77         pushl   %edx
78         movl    64(%edi),%eax
79         movl    68(%edi),%ebx
80         movl    72(%edi),%ecx
81         movl    76(%edi),%edx
82         bswap   %eax
83         bswap   %ebx
84         bswap   %ecx
85         bswap   %edx
86         pushl   %eax
87         pushl   %ebx
88         pushl   %ecx
89         pushl   %edx
90         movl    80(%edi),%eax
91         movl    84(%edi),%ebx
92         movl    88(%edi),%ecx
93         movl    92(%edi),%edx
94         bswap   %eax
95         bswap   %ebx
96         bswap   %ecx
97         bswap   %edx
98         pushl   %eax
99         pushl   %ebx
100         pushl   %ecx
101         pushl   %edx
102         movl    96(%edi),%eax
103         movl    100(%edi),%ebx
104         movl    104(%edi),%ecx
105         movl    108(%edi),%edx
106         bswap   %eax
107         bswap   %ebx
108         bswap   %ecx
109         bswap   %edx
110         pushl   %eax
111         pushl   %ebx
112         pushl   %ecx
113         pushl   %edx
114         movl    112(%edi),%eax
115         movl    116(%edi),%ebx
116         movl    120(%edi),%ecx
117         movl    124(%edi),%edx
118         bswap   %eax
119         bswap   %ebx
120         bswap   %ecx
121         bswap   %edx
122         pushl   %eax
123         pushl   %ebx
124         pushl   %ecx
125         pushl   %edx
126         addl    $128,%edi
127         subl    $72,%esp
128         movl    %edi,204(%esp)
129         leal    8(%esp),%edi
130         movl    $16,%ecx
131 .long   2784229001
132 .align  16
133 .L00300_15_x86:
134         movl    40(%esp),%ecx
135         movl    44(%esp),%edx
136         movl    %ecx,%esi
137         shrl    $9,%ecx
138         movl    %edx,%edi
139         shrl    $9,%edx
140         movl    %ecx,%ebx
141         shll    $14,%esi
142         movl    %edx,%eax
143         shll    $14,%edi
144         xorl    %esi,%ebx
145         shrl    $5,%ecx
146         xorl    %edi,%eax
147         shrl    $5,%edx
148         xorl    %ecx,%eax
149         shll    $4,%esi
150         xorl    %edx,%ebx
151         shll    $4,%edi
152         xorl    %esi,%ebx
153         shrl    $4,%ecx
154         xorl    %edi,%eax
155         shrl    $4,%edx
156         xorl    %ecx,%eax
157         shll    $5,%esi
158         xorl    %edx,%ebx
159         shll    $5,%edi
160         xorl    %esi,%eax
161         xorl    %edi,%ebx
162         movl    48(%esp),%ecx
163         movl    52(%esp),%edx
164         movl    56(%esp),%esi
165         movl    60(%esp),%edi
166         addl    64(%esp),%eax
167         adcl    68(%esp),%ebx
168         xorl    %esi,%ecx
169         xorl    %edi,%edx
170         andl    40(%esp),%ecx
171         andl    44(%esp),%edx
172         addl    192(%esp),%eax
173         adcl    196(%esp),%ebx
174         xorl    %esi,%ecx
175         xorl    %edi,%edx
176         movl    (%ebp),%esi
177         movl    4(%ebp),%edi
178         addl    %ecx,%eax
179         adcl    %edx,%ebx
180         movl    32(%esp),%ecx
181         movl    36(%esp),%edx
182         addl    %esi,%eax
183         adcl    %edi,%ebx
184         movl    %eax,(%esp)
185         movl    %ebx,4(%esp)
186         addl    %ecx,%eax
187         adcl    %edx,%ebx
188         movl    8(%esp),%ecx
189         movl    12(%esp),%edx
190         movl    %eax,32(%esp)
191         movl    %ebx,36(%esp)
192         movl    %ecx,%esi
193         shrl    $2,%ecx
194         movl    %edx,%edi
195         shrl    $2,%edx
196         movl    %ecx,%ebx
197         shll    $4,%esi
198         movl    %edx,%eax
199         shll    $4,%edi
200         xorl    %esi,%ebx
201         shrl    $5,%ecx
202         xorl    %edi,%eax
203         shrl    $5,%edx
204         xorl    %ecx,%ebx
205         shll    $21,%esi
206         xorl    %edx,%eax
207         shll    $21,%edi
208         xorl    %esi,%eax
209         shrl    $21,%ecx
210         xorl    %edi,%ebx
211         shrl    $21,%edx
212         xorl    %ecx,%eax
213         shll    $5,%esi
214         xorl    %edx,%ebx
215         shll    $5,%edi
216         xorl    %esi,%eax
217         xorl    %edi,%ebx
218         movl    8(%esp),%ecx
219         movl    12(%esp),%edx
220         movl    16(%esp),%esi
221         movl    20(%esp),%edi
222         addl    (%esp),%eax
223         adcl    4(%esp),%ebx
224         orl     %esi,%ecx
225         orl     %edi,%edx
226         andl    24(%esp),%ecx
227         andl    28(%esp),%edx
228         andl    8(%esp),%esi
229         andl    12(%esp),%edi
230         orl     %esi,%ecx
231         orl     %edi,%edx
232         addl    %ecx,%eax
233         adcl    %edx,%ebx
234         movl    %eax,(%esp)
235         movl    %ebx,4(%esp)
236         movb    (%ebp),%dl
237         subl    $8,%esp
238         leal    8(%ebp),%ebp
239         cmpb    $148,%dl
240         jne     .L00300_15_x86
241 .align  16
242 .L00416_79_x86:
243         movl    312(%esp),%ecx
244         movl    316(%esp),%edx
245         movl    %ecx,%esi
246         shrl    $1,%ecx
247         movl    %edx,%edi
248         shrl    $1,%edx
249         movl    %ecx,%eax
250         shll    $24,%esi
251         movl    %edx,%ebx
252         shll    $24,%edi
253         xorl    %esi,%ebx
254         shrl    $6,%ecx
255         xorl    %edi,%eax
256         shrl    $6,%edx
257         xorl    %ecx,%eax
258         shll    $7,%esi
259         xorl    %edx,%ebx
260         shll    $1,%edi
261         xorl    %esi,%ebx
262         shrl    $1,%ecx
263         xorl    %edi,%eax
264         shrl    $1,%edx
265         xorl    %ecx,%eax
266         shll    $6,%edi
267         xorl    %edx,%ebx
268         xorl    %edi,%eax
269         movl    %eax,(%esp)
270         movl    %ebx,4(%esp)
271         movl    208(%esp),%ecx
272         movl    212(%esp),%edx
273         movl    %ecx,%esi
274         shrl    $6,%ecx
275         movl    %edx,%edi
276         shrl    $6,%edx
277         movl    %ecx,%eax
278         shll    $3,%esi
279         movl    %edx,%ebx
280         shll    $3,%edi
281         xorl    %esi,%eax
282         shrl    $13,%ecx
283         xorl    %edi,%ebx
284         shrl    $13,%edx
285         xorl    %ecx,%eax
286         shll    $10,%esi
287         xorl    %edx,%ebx
288         shll    $10,%edi
289         xorl    %esi,%ebx
290         shrl    $10,%ecx
291         xorl    %edi,%eax
292         shrl    $10,%edx
293         xorl    %ecx,%ebx
294         shll    $13,%edi
295         xorl    %edx,%eax
296         xorl    %edi,%eax
297         movl    320(%esp),%ecx
298         movl    324(%esp),%edx
299         addl    (%esp),%eax
300         adcl    4(%esp),%ebx
301         movl    248(%esp),%esi
302         movl    252(%esp),%edi
303         addl    %ecx,%eax
304         adcl    %edx,%ebx
305         addl    %esi,%eax
306         adcl    %edi,%ebx
307         movl    %eax,192(%esp)
308         movl    %ebx,196(%esp)
309         movl    40(%esp),%ecx
310         movl    44(%esp),%edx
311         movl    %ecx,%esi
312         shrl    $9,%ecx
313         movl    %edx,%edi
314         shrl    $9,%edx
315         movl    %ecx,%ebx
316         shll    $14,%esi
317         movl    %edx,%eax
318         shll    $14,%edi
319         xorl    %esi,%ebx
320         shrl    $5,%ecx
321         xorl    %edi,%eax
322         shrl    $5,%edx
323         xorl    %ecx,%eax
324         shll    $4,%esi
325         xorl    %edx,%ebx
326         shll    $4,%edi
327         xorl    %esi,%ebx
328         shrl    $4,%ecx
329         xorl    %edi,%eax
330         shrl    $4,%edx
331         xorl    %ecx,%eax
332         shll    $5,%esi
333         xorl    %edx,%ebx
334         shll    $5,%edi
335         xorl    %esi,%eax
336         xorl    %edi,%ebx
337         movl    48(%esp),%ecx
338         movl    52(%esp),%edx
339         movl    56(%esp),%esi
340         movl    60(%esp),%edi
341         addl    64(%esp),%eax
342         adcl    68(%esp),%ebx
343         xorl    %esi,%ecx
344         xorl    %edi,%edx
345         andl    40(%esp),%ecx
346         andl    44(%esp),%edx
347         addl    192(%esp),%eax
348         adcl    196(%esp),%ebx
349         xorl    %esi,%ecx
350         xorl    %edi,%edx
351         movl    (%ebp),%esi
352         movl    4(%ebp),%edi
353         addl    %ecx,%eax
354         adcl    %edx,%ebx
355         movl    32(%esp),%ecx
356         movl    36(%esp),%edx
357         addl    %esi,%eax
358         adcl    %edi,%ebx
359         movl    %eax,(%esp)
360         movl    %ebx,4(%esp)
361         addl    %ecx,%eax
362         adcl    %edx,%ebx
363         movl    8(%esp),%ecx
364         movl    12(%esp),%edx
365         movl    %eax,32(%esp)
366         movl    %ebx,36(%esp)
367         movl    %ecx,%esi
368         shrl    $2,%ecx
369         movl    %edx,%edi
370         shrl    $2,%edx
371         movl    %ecx,%ebx
372         shll    $4,%esi
373         movl    %edx,%eax
374         shll    $4,%edi
375         xorl    %esi,%ebx
376         shrl    $5,%ecx
377         xorl    %edi,%eax
378         shrl    $5,%edx
379         xorl    %ecx,%ebx
380         shll    $21,%esi
381         xorl    %edx,%eax
382         shll    $21,%edi
383         xorl    %esi,%eax
384         shrl    $21,%ecx
385         xorl    %edi,%ebx
386         shrl    $21,%edx
387         xorl    %ecx,%eax
388         shll    $5,%esi
389         xorl    %edx,%ebx
390         shll    $5,%edi
391         xorl    %esi,%eax
392         xorl    %edi,%ebx
393         movl    8(%esp),%ecx
394         movl    12(%esp),%edx
395         movl    16(%esp),%esi
396         movl    20(%esp),%edi
397         addl    (%esp),%eax
398         adcl    4(%esp),%ebx
399         orl     %esi,%ecx
400         orl     %edi,%edx
401         andl    24(%esp),%ecx
402         andl    28(%esp),%edx
403         andl    8(%esp),%esi
404         andl    12(%esp),%edi
405         orl     %esi,%ecx
406         orl     %edi,%edx
407         addl    %ecx,%eax
408         adcl    %edx,%ebx
409         movl    %eax,(%esp)
410         movl    %ebx,4(%esp)
411         movb    (%ebp),%dl
412         subl    $8,%esp
413         leal    8(%ebp),%ebp
414         cmpb    $23,%dl
415         jne     .L00416_79_x86
416         movl    840(%esp),%esi
417         movl    844(%esp),%edi
418         movl    (%esi),%eax
419         movl    4(%esi),%ebx
420         movl    8(%esi),%ecx
421         movl    12(%esi),%edx
422         addl    8(%esp),%eax
423         adcl    12(%esp),%ebx
424         movl    %eax,(%esi)
425         movl    %ebx,4(%esi)
426         addl    16(%esp),%ecx
427         adcl    20(%esp),%edx
428         movl    %ecx,8(%esi)
429         movl    %edx,12(%esi)
430         movl    16(%esi),%eax
431         movl    20(%esi),%ebx
432         movl    24(%esi),%ecx
433         movl    28(%esi),%edx
434         addl    24(%esp),%eax
435         adcl    28(%esp),%ebx
436         movl    %eax,16(%esi)
437         movl    %ebx,20(%esi)
438         addl    32(%esp),%ecx
439         adcl    36(%esp),%edx
440         movl    %ecx,24(%esi)
441         movl    %edx,28(%esi)
442         movl    32(%esi),%eax
443         movl    36(%esi),%ebx
444         movl    40(%esi),%ecx
445         movl    44(%esi),%edx
446         addl    40(%esp),%eax
447         adcl    44(%esp),%ebx
448         movl    %eax,32(%esi)
449         movl    %ebx,36(%esi)
450         addl    48(%esp),%ecx
451         adcl    52(%esp),%edx
452         movl    %ecx,40(%esi)
453         movl    %edx,44(%esi)
454         movl    48(%esi),%eax
455         movl    52(%esi),%ebx
456         movl    56(%esi),%ecx
457         movl    60(%esi),%edx
458         addl    56(%esp),%eax
459         adcl    60(%esp),%ebx
460         movl    %eax,48(%esi)
461         movl    %ebx,52(%esi)
462         addl    64(%esp),%ecx
463         adcl    68(%esp),%edx
464         movl    %ecx,56(%esi)
465         movl    %edx,60(%esi)
466         addl    $840,%esp
467         subl    $640,%ebp
468         cmpl    8(%esp),%edi
469         jb      .L002loop_x86
470         movl    12(%esp),%esp
471         popl    %edi
472         popl    %esi
473         popl    %ebx
474         popl    %ebp
475         ret
476 .align  64
477 .L001K512:
478 .long   3609767458,1116352408
479 .long   602891725,1899447441
480 .long   3964484399,3049323471
481 .long   2173295548,3921009573
482 .long   4081628472,961987163
483 .long   3053834265,1508970993
484 .long   2937671579,2453635748
485 .long   3664609560,2870763221
486 .long   2734883394,3624381080
487 .long   1164996542,310598401
488 .long   1323610764,607225278
489 .long   3590304994,1426881987
490 .long   4068182383,1925078388
491 .long   991336113,2162078206
492 .long   633803317,2614888103
493 .long   3479774868,3248222580
494 .long   2666613458,3835390401
495 .long   944711139,4022224774
496 .long   2341262773,264347078
497 .long   2007800933,604807628
498 .long   1495990901,770255983
499 .long   1856431235,1249150122
500 .long   3175218132,1555081692
501 .long   2198950837,1996064986
502 .long   3999719339,2554220882
503 .long   766784016,2821834349
504 .long   2566594879,2952996808
505 .long   3203337956,3210313671
506 .long   1034457026,3336571891
507 .long   2466948901,3584528711
508 .long   3758326383,113926993
509 .long   168717936,338241895
510 .long   1188179964,666307205
511 .long   1546045734,773529912
512 .long   1522805485,1294757372
513 .long   2643833823,1396182291
514 .long   2343527390,1695183700
515 .long   1014477480,1986661051
516 .long   1206759142,2177026350
517 .long   344077627,2456956037
518 .long   1290863460,2730485921
519 .long   3158454273,2820302411
520 .long   3505952657,3259730800
521 .long   106217008,3345764771
522 .long   3606008344,3516065817
523 .long   1432725776,3600352804
524 .long   1467031594,4094571909
525 .long   851169720,275423344
526 .long   3100823752,430227734
527 .long   1363258195,506948616
528 .long   3750685593,659060556
529 .long   3785050280,883997877
530 .long   3318307427,958139571
531 .long   3812723403,1322822218
532 .long   2003034995,1537002063
533 .long   3602036899,1747873779
534 .long   1575990012,1955562222
535 .long   1125592928,2024104815
536 .long   2716904306,2227730452
537 .long   442776044,2361852424
538 .long   593698344,2428436474
539 .long   3733110249,2756734187
540 .long   2999351573,3204031479
541 .long   3815920427,3329325298
542 .long   3928383900,3391569614
543 .long   566280711,3515267271
544 .long   3454069534,3940187606
545 .long   4000239992,4118630271
546 .long   1914138554,116418474
547 .long   2731055270,174292421
548 .long   3203993006,289380356
549 .long   320620315,460393269
550 .long   587496836,685471733
551 .long   1086792851,852142971
552 .long   365543100,1017036298
553 .long   2618297676,1126000580
554 .long   3409855158,1288033470
555 .long   4234509866,1501505948
556 .long   987167468,1607167915
557 .long   1246189591,1816402316
558 .size   sha512_block_data_order,.-.L_sha512_block_data_order_begin
559 .byte   83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
560 .byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
561 .byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
562 .byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
563 .byte   62,0