VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1f/crypto/genasm-macosx/chacha-x86.S@ 83531

Last change on this file since 83531 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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

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