VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.2/crypto/genasm-macosx/chacha-x86.S@ 95087

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

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

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