]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - secure/lib/libcrypto/i386/sha256-586.s
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / secure / lib / libcrypto / i386 / sha256-586.s
1         # $FreeBSD$
2 .file   "sha512-586.s"
3 .text
4 .globl  sha256_block_data_order
5 .type   sha256_block_data_order,@function
6 .align  16
7 sha256_block_data_order:
8 .L_sha256_block_data_order_begin:
9         pushl   %ebp
10         pushl   %ebx
11         pushl   %esi
12         pushl   %edi
13         movl    20(%esp),%esi
14         movl    24(%esp),%edi
15         movl    28(%esp),%eax
16         movl    %esp,%ebx
17         call    .L000pic_point
18 .L000pic_point:
19         popl    %ebp
20         leal    .L001K256-.L000pic_point(%ebp),%ebp
21         subl    $16,%esp
22         andl    $-64,%esp
23         shll    $6,%eax
24         addl    %edi,%eax
25         movl    %esi,(%esp)
26         movl    %edi,4(%esp)
27         movl    %eax,8(%esp)
28         movl    %ebx,12(%esp)
29 .align  16
30 .L002loop:
31         movl    (%edi),%eax
32         movl    4(%edi),%ebx
33         movl    8(%edi),%ecx
34         movl    12(%edi),%edx
35         bswap   %eax
36         bswap   %ebx
37         bswap   %ecx
38         bswap   %edx
39         pushl   %eax
40         pushl   %ebx
41         pushl   %ecx
42         pushl   %edx
43         movl    16(%edi),%eax
44         movl    20(%edi),%ebx
45         movl    24(%edi),%ecx
46         movl    28(%edi),%edx
47         bswap   %eax
48         bswap   %ebx
49         bswap   %ecx
50         bswap   %edx
51         pushl   %eax
52         pushl   %ebx
53         pushl   %ecx
54         pushl   %edx
55         movl    32(%edi),%eax
56         movl    36(%edi),%ebx
57         movl    40(%edi),%ecx
58         movl    44(%edi),%edx
59         bswap   %eax
60         bswap   %ebx
61         bswap   %ecx
62         bswap   %edx
63         pushl   %eax
64         pushl   %ebx
65         pushl   %ecx
66         pushl   %edx
67         movl    48(%edi),%eax
68         movl    52(%edi),%ebx
69         movl    56(%edi),%ecx
70         movl    60(%edi),%edx
71         bswap   %eax
72         bswap   %ebx
73         bswap   %ecx
74         bswap   %edx
75         pushl   %eax
76         pushl   %ebx
77         pushl   %ecx
78         pushl   %edx
79         addl    $64,%edi
80         subl    $32,%esp
81         movl    %edi,100(%esp)
82         movl    (%esi),%eax
83         movl    4(%esi),%ebx
84         movl    8(%esi),%ecx
85         movl    12(%esi),%edi
86         movl    %ebx,4(%esp)
87         movl    %ecx,8(%esp)
88         movl    %edi,12(%esp)
89         movl    16(%esi),%edx
90         movl    20(%esi),%ebx
91         movl    24(%esi),%ecx
92         movl    28(%esi),%edi
93         movl    %ebx,20(%esp)
94         movl    %ecx,24(%esp)
95         movl    %edi,28(%esp)
96 .align  16
97 .L00300_15:
98         movl    92(%esp),%ebx
99         movl    %edx,%ecx
100         rorl    $14,%ecx
101         movl    20(%esp),%esi
102         xorl    %edx,%ecx
103         rorl    $5,%ecx
104         xorl    %edx,%ecx
105         rorl    $6,%ecx
106         movl    24(%esp),%edi
107         addl    %ecx,%ebx
108         xorl    %edi,%esi
109         movl    %edx,16(%esp)
110         movl    %eax,%ecx
111         andl    %edx,%esi
112         movl    12(%esp),%edx
113         xorl    %edi,%esi
114         movl    %eax,%edi
115         addl    %esi,%ebx
116         rorl    $9,%ecx
117         addl    28(%esp),%ebx
118         xorl    %eax,%ecx
119         rorl    $11,%ecx
120         movl    4(%esp),%esi
121         xorl    %eax,%ecx
122         rorl    $2,%ecx
123         addl    %ebx,%edx
124         movl    8(%esp),%edi
125         addl    %ecx,%ebx
126         movl    %eax,(%esp)
127         movl    %eax,%ecx
128         subl    $4,%esp
129         orl     %esi,%eax
130         andl    %esi,%ecx
131         andl    %edi,%eax
132         movl    (%ebp),%esi
133         orl     %ecx,%eax
134         addl    $4,%ebp
135         addl    %ebx,%eax
136         addl    %esi,%edx
137         addl    %esi,%eax
138         cmpl    $3248222580,%esi
139         jne     .L00300_15
140         movl    152(%esp),%ebx
141 .align  16
142 .L00416_63:
143         movl    %ebx,%esi
144         movl    100(%esp),%ecx
145         rorl    $11,%esi
146         movl    %ecx,%edi
147         xorl    %ebx,%esi
148         rorl    $7,%esi
149         shrl    $3,%ebx
150         rorl    $2,%edi
151         xorl    %esi,%ebx
152         xorl    %ecx,%edi
153         rorl    $17,%edi
154         shrl    $10,%ecx
155         addl    156(%esp),%ebx
156         xorl    %ecx,%edi
157         addl    120(%esp),%ebx
158         movl    %edx,%ecx
159         addl    %edi,%ebx
160         rorl    $14,%ecx
161         movl    20(%esp),%esi
162         xorl    %edx,%ecx
163         rorl    $5,%ecx
164         movl    %ebx,92(%esp)
165         xorl    %edx,%ecx
166         rorl    $6,%ecx
167         movl    24(%esp),%edi
168         addl    %ecx,%ebx
169         xorl    %edi,%esi
170         movl    %edx,16(%esp)
171         movl    %eax,%ecx
172         andl    %edx,%esi
173         movl    12(%esp),%edx
174         xorl    %edi,%esi
175         movl    %eax,%edi
176         addl    %esi,%ebx
177         rorl    $9,%ecx
178         addl    28(%esp),%ebx
179         xorl    %eax,%ecx
180         rorl    $11,%ecx
181         movl    4(%esp),%esi
182         xorl    %eax,%ecx
183         rorl    $2,%ecx
184         addl    %ebx,%edx
185         movl    8(%esp),%edi
186         addl    %ecx,%ebx
187         movl    %eax,(%esp)
188         movl    %eax,%ecx
189         subl    $4,%esp
190         orl     %esi,%eax
191         andl    %esi,%ecx
192         andl    %edi,%eax
193         movl    (%ebp),%esi
194         orl     %ecx,%eax
195         addl    $4,%ebp
196         addl    %ebx,%eax
197         movl    152(%esp),%ebx
198         addl    %esi,%edx
199         addl    %esi,%eax
200         cmpl    $3329325298,%esi
201         jne     .L00416_63
202         movl    352(%esp),%esi
203         movl    4(%esp),%ebx
204         movl    8(%esp),%ecx
205         movl    12(%esp),%edi
206         addl    (%esi),%eax
207         addl    4(%esi),%ebx
208         addl    8(%esi),%ecx
209         addl    12(%esi),%edi
210         movl    %eax,(%esi)
211         movl    %ebx,4(%esi)
212         movl    %ecx,8(%esi)
213         movl    %edi,12(%esi)
214         movl    20(%esp),%eax
215         movl    24(%esp),%ebx
216         movl    28(%esp),%ecx
217         movl    356(%esp),%edi
218         addl    16(%esi),%edx
219         addl    20(%esi),%eax
220         addl    24(%esi),%ebx
221         addl    28(%esi),%ecx
222         movl    %edx,16(%esi)
223         movl    %eax,20(%esi)
224         movl    %ebx,24(%esi)
225         movl    %ecx,28(%esi)
226         addl    $352,%esp
227         subl    $256,%ebp
228         cmpl    8(%esp),%edi
229         jb      .L002loop
230         movl    12(%esp),%esp
231         popl    %edi
232         popl    %esi
233         popl    %ebx
234         popl    %ebp
235         ret
236 .align  64
237 .L001K256:
238 .long   1116352408,1899447441,3049323471,3921009573
239 .long   961987163,1508970993,2453635748,2870763221
240 .long   3624381080,310598401,607225278,1426881987
241 .long   1925078388,2162078206,2614888103,3248222580
242 .long   3835390401,4022224774,264347078,604807628
243 .long   770255983,1249150122,1555081692,1996064986
244 .long   2554220882,2821834349,2952996808,3210313671
245 .long   3336571891,3584528711,113926993,338241895
246 .long   666307205,773529912,1294757372,1396182291
247 .long   1695183700,1986661051,2177026350,2456956037
248 .long   2730485921,2820302411,3259730800,3345764771
249 .long   3516065817,3600352804,4094571909,275423344
250 .long   430227734,506948616,659060556,883997877
251 .long   958139571,1322822218,1537002063,1747873779
252 .long   1955562222,2024104815,2227730452,2361852424
253 .long   2428436474,2756734187,3204031479,3329325298
254 .size   sha256_block_data_order,.-.L_sha256_block_data_order_begin
255 .byte   83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
256 .byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
257 .byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
258 .byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
259 .byte   62,0