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