VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-elf/chacha-x86.S@ 97371

Last change on this file since 97371 was 94083, checked in by vboxsync, 3 years ago

libs/openssl-3.0.1: Recreate asm files, bugref:10128

File size: 6.9 KB
Line 
1.text
2.globl ChaCha20_ctr32
3.type ChaCha20_ctr32,@function
4.align 16
5ChaCha20_ctr32:
6.L_ChaCha20_ctr32_begin:
7.byte 243,15,30,251
8 pushl %ebp
9 pushl %ebx
10 pushl %esi
11 pushl %edi
12 xorl %eax,%eax
13 cmpl 28(%esp),%eax
14 je .L000no_data
15 movl 32(%esp),%esi
16 movl 36(%esp),%edi
17 subl $132,%esp
18 movl (%esi),%eax
19 movl 4(%esi),%ebx
20 movl 8(%esi),%ecx
21 movl 12(%esi),%edx
22 movl %eax,80(%esp)
23 movl %ebx,84(%esp)
24 movl %ecx,88(%esp)
25 movl %edx,92(%esp)
26 movl 16(%esi),%eax
27 movl 20(%esi),%ebx
28 movl 24(%esi),%ecx
29 movl 28(%esi),%edx
30 movl %eax,96(%esp)
31 movl %ebx,100(%esp)
32 movl %ecx,104(%esp)
33 movl %edx,108(%esp)
34 movl (%edi),%eax
35 movl 4(%edi),%ebx
36 movl 8(%edi),%ecx
37 movl 12(%edi),%edx
38 subl $1,%eax
39 movl %eax,112(%esp)
40 movl %ebx,116(%esp)
41 movl %ecx,120(%esp)
42 movl %edx,124(%esp)
43 jmp .L001entry
44.align 16
45.L002outer_loop:
46 movl %ebx,156(%esp)
47 movl %eax,152(%esp)
48 movl %ecx,160(%esp)
49.L001entry:
50 movl $1634760805,%eax
51 movl $857760878,4(%esp)
52 movl $2036477234,8(%esp)
53 movl $1797285236,12(%esp)
54 movl 84(%esp),%ebx
55 movl 88(%esp),%ebp
56 movl 104(%esp),%ecx
57 movl 108(%esp),%esi
58 movl 116(%esp),%edx
59 movl 120(%esp),%edi
60 movl %ebx,20(%esp)
61 movl %ebp,24(%esp)
62 movl %ecx,40(%esp)
63 movl %esi,44(%esp)
64 movl %edx,52(%esp)
65 movl %edi,56(%esp)
66 movl 92(%esp),%ebx
67 movl 124(%esp),%edi
68 movl 112(%esp),%edx
69 movl 80(%esp),%ebp
70 movl 96(%esp),%ecx
71 movl 100(%esp),%esi
72 addl $1,%edx
73 movl %ebx,28(%esp)
74 movl %edi,60(%esp)
75 movl %edx,112(%esp)
76 movl $10,%ebx
77 jmp .L003loop
78.align 16
79.L003loop:
80 addl %ebp,%eax
81 movl %ebx,128(%esp)
82 movl %ebp,%ebx
83 xorl %eax,%edx
84 roll $16,%edx
85 addl %edx,%ecx
86 xorl %ecx,%ebx
87 movl 52(%esp),%edi
88 roll $12,%ebx
89 movl 20(%esp),%ebp
90 addl %ebx,%eax
91 xorl %eax,%edx
92 movl %eax,(%esp)
93 roll $8,%edx
94 movl 4(%esp),%eax
95 addl %edx,%ecx
96 movl %edx,48(%esp)
97 xorl %ecx,%ebx
98 addl %ebp,%eax
99 roll $7,%ebx
100 xorl %eax,%edi
101 movl %ecx,32(%esp)
102 roll $16,%edi
103 movl %ebx,16(%esp)
104 addl %edi,%esi
105 movl 40(%esp),%ecx
106 xorl %esi,%ebp
107 movl 56(%esp),%edx
108 roll $12,%ebp
109 movl 24(%esp),%ebx
110 addl %ebp,%eax
111 xorl %eax,%edi
112 movl %eax,4(%esp)
113 roll $8,%edi
114 movl 8(%esp),%eax
115 addl %edi,%esi
116 movl %edi,52(%esp)
117 xorl %esi,%ebp
118 addl %ebx,%eax
119 roll $7,%ebp
120 xorl %eax,%edx
121 movl %esi,36(%esp)
122 roll $16,%edx
123 movl %ebp,20(%esp)
124 addl %edx,%ecx
125 movl 44(%esp),%esi
126 xorl %ecx,%ebx
127 movl 60(%esp),%edi
128 roll $12,%ebx
129 movl 28(%esp),%ebp
130 addl %ebx,%eax
131 xorl %eax,%edx
132 movl %eax,8(%esp)
133 roll $8,%edx
134 movl 12(%esp),%eax
135 addl %edx,%ecx
136 movl %edx,56(%esp)
137 xorl %ecx,%ebx
138 addl %ebp,%eax
139 roll $7,%ebx
140 xorl %eax,%edi
141 roll $16,%edi
142 movl %ebx,24(%esp)
143 addl %edi,%esi
144 xorl %esi,%ebp
145 roll $12,%ebp
146 movl 20(%esp),%ebx
147 addl %ebp,%eax
148 xorl %eax,%edi
149 movl %eax,12(%esp)
150 roll $8,%edi
151 movl (%esp),%eax
152 addl %edi,%esi
153 movl %edi,%edx
154 xorl %esi,%ebp
155 addl %ebx,%eax
156 roll $7,%ebp
157 xorl %eax,%edx
158 roll $16,%edx
159 movl %ebp,28(%esp)
160 addl %edx,%ecx
161 xorl %ecx,%ebx
162 movl 48(%esp),%edi
163 roll $12,%ebx
164 movl 24(%esp),%ebp
165 addl %ebx,%eax
166 xorl %eax,%edx
167 movl %eax,(%esp)
168 roll $8,%edx
169 movl 4(%esp),%eax
170 addl %edx,%ecx
171 movl %edx,60(%esp)
172 xorl %ecx,%ebx
173 addl %ebp,%eax
174 roll $7,%ebx
175 xorl %eax,%edi
176 movl %ecx,40(%esp)
177 roll $16,%edi
178 movl %ebx,20(%esp)
179 addl %edi,%esi
180 movl 32(%esp),%ecx
181 xorl %esi,%ebp
182 movl 52(%esp),%edx
183 roll $12,%ebp
184 movl 28(%esp),%ebx
185 addl %ebp,%eax
186 xorl %eax,%edi
187 movl %eax,4(%esp)
188 roll $8,%edi
189 movl 8(%esp),%eax
190 addl %edi,%esi
191 movl %edi,48(%esp)
192 xorl %esi,%ebp
193 addl %ebx,%eax
194 roll $7,%ebp
195 xorl %eax,%edx
196 movl %esi,44(%esp)
197 roll $16,%edx
198 movl %ebp,24(%esp)
199 addl %edx,%ecx
200 movl 36(%esp),%esi
201 xorl %ecx,%ebx
202 movl 56(%esp),%edi
203 roll $12,%ebx
204 movl 16(%esp),%ebp
205 addl %ebx,%eax
206 xorl %eax,%edx
207 movl %eax,8(%esp)
208 roll $8,%edx
209 movl 12(%esp),%eax
210 addl %edx,%ecx
211 movl %edx,52(%esp)
212 xorl %ecx,%ebx
213 addl %ebp,%eax
214 roll $7,%ebx
215 xorl %eax,%edi
216 roll $16,%edi
217 movl %ebx,28(%esp)
218 addl %edi,%esi
219 xorl %esi,%ebp
220 movl 48(%esp),%edx
221 roll $12,%ebp
222 movl 128(%esp),%ebx
223 addl %ebp,%eax
224 xorl %eax,%edi
225 movl %eax,12(%esp)
226 roll $8,%edi
227 movl (%esp),%eax
228 addl %edi,%esi
229 movl %edi,56(%esp)
230 xorl %esi,%ebp
231 roll $7,%ebp
232 decl %ebx
233 jnz .L003loop
234 movl 160(%esp),%ebx
235 addl $1634760805,%eax
236 addl 80(%esp),%ebp
237 addl 96(%esp),%ecx
238 addl 100(%esp),%esi
239 cmpl $64,%ebx
240 jb .L004tail
241 movl 156(%esp),%ebx
242 addl 112(%esp),%edx
243 addl 120(%esp),%edi
244 xorl (%ebx),%eax
245 xorl 16(%ebx),%ebp
246 movl %eax,(%esp)
247 movl 152(%esp),%eax
248 xorl 32(%ebx),%ecx
249 xorl 36(%ebx),%esi
250 xorl 48(%ebx),%edx
251 xorl 56(%ebx),%edi
252 movl %ebp,16(%eax)
253 movl %ecx,32(%eax)
254 movl %esi,36(%eax)
255 movl %edx,48(%eax)
256 movl %edi,56(%eax)
257 movl 4(%esp),%ebp
258 movl 8(%esp),%ecx
259 movl 12(%esp),%esi
260 movl 20(%esp),%edx
261 movl 24(%esp),%edi
262 addl $857760878,%ebp
263 addl $2036477234,%ecx
264 addl $1797285236,%esi
265 addl 84(%esp),%edx
266 addl 88(%esp),%edi
267 xorl 4(%ebx),%ebp
268 xorl 8(%ebx),%ecx
269 xorl 12(%ebx),%esi
270 xorl 20(%ebx),%edx
271 xorl 24(%ebx),%edi
272 movl %ebp,4(%eax)
273 movl %ecx,8(%eax)
274 movl %esi,12(%eax)
275 movl %edx,20(%eax)
276 movl %edi,24(%eax)
277 movl 28(%esp),%ebp
278 movl 40(%esp),%ecx
279 movl 44(%esp),%esi
280 movl 52(%esp),%edx
281 movl 60(%esp),%edi
282 addl 92(%esp),%ebp
283 addl 104(%esp),%ecx
284 addl 108(%esp),%esi
285 addl 116(%esp),%edx
286 addl 124(%esp),%edi
287 xorl 28(%ebx),%ebp
288 xorl 40(%ebx),%ecx
289 xorl 44(%ebx),%esi
290 xorl 52(%ebx),%edx
291 xorl 60(%ebx),%edi
292 leal 64(%ebx),%ebx
293 movl %ebp,28(%eax)
294 movl (%esp),%ebp
295 movl %ecx,40(%eax)
296 movl 160(%esp),%ecx
297 movl %esi,44(%eax)
298 movl %edx,52(%eax)
299 movl %edi,60(%eax)
300 movl %ebp,(%eax)
301 leal 64(%eax),%eax
302 subl $64,%ecx
303 jnz .L002outer_loop
304 jmp .L005done
305.L004tail:
306 addl 112(%esp),%edx
307 addl 120(%esp),%edi
308 movl %eax,(%esp)
309 movl %ebp,16(%esp)
310 movl %ecx,32(%esp)
311 movl %esi,36(%esp)
312 movl %edx,48(%esp)
313 movl %edi,56(%esp)
314 movl 4(%esp),%ebp
315 movl 8(%esp),%ecx
316 movl 12(%esp),%esi
317 movl 20(%esp),%edx
318 movl 24(%esp),%edi
319 addl $857760878,%ebp
320 addl $2036477234,%ecx
321 addl $1797285236,%esi
322 addl 84(%esp),%edx
323 addl 88(%esp),%edi
324 movl %ebp,4(%esp)
325 movl %ecx,8(%esp)
326 movl %esi,12(%esp)
327 movl %edx,20(%esp)
328 movl %edi,24(%esp)
329 movl 28(%esp),%ebp
330 movl 40(%esp),%ecx
331 movl 44(%esp),%esi
332 movl 52(%esp),%edx
333 movl 60(%esp),%edi
334 addl 92(%esp),%ebp
335 addl 104(%esp),%ecx
336 addl 108(%esp),%esi
337 addl 116(%esp),%edx
338 addl 124(%esp),%edi
339 movl %ebp,28(%esp)
340 movl 156(%esp),%ebp
341 movl %ecx,40(%esp)
342 movl 152(%esp),%ecx
343 movl %esi,44(%esp)
344 xorl %esi,%esi
345 movl %edx,52(%esp)
346 movl %edi,60(%esp)
347 xorl %eax,%eax
348 xorl %edx,%edx
349.L006tail_loop:
350 movb (%esi,%ebp,1),%al
351 movb (%esp,%esi,1),%dl
352 leal 1(%esi),%esi
353 xorb %dl,%al
354 movb %al,-1(%ecx,%esi,1)
355 decl %ebx
356 jnz .L006tail_loop
357.L005done:
358 addl $132,%esp
359.L000no_data:
360 popl %edi
361 popl %esi
362 popl %ebx
363 popl %ebp
364 ret
365.size ChaCha20_ctr32,.-.L_ChaCha20_ctr32_begin
366.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
367.byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
368.byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
369.byte 114,103,62,0
370
371 .section ".note.gnu.property", "a"
372 .p2align 2
373 .long 1f - 0f
374 .long 4f - 1f
375 .long 5
3760:
377 .asciz "GNU"
3781:
379 .p2align 2
380 .long 0xc0000002
381 .long 3f - 2f
3822:
383 .long 3
3843:
385 .p2align 2
3864:
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette