VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-nasm/sha512-586.S@ 88461

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