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