]> git.proxmox.com Git - mirror_edk2.git/blobdiff - 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
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm
new file mode 100644 (file)
index 0000000..a168b4a
--- /dev/null
@@ -0,0 +1,579 @@
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/sha/asm/sha512-586.pl\r
+;\r
+; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License").  You may not use\r
+; this file except in compliance with the License.  You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code    use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text   code align=64\r
+%else\r
+section .text   code\r
+%endif\r
+global  _sha512_block_data_order\r
+align   16\r
+_sha512_block_data_order:\r
+L$_sha512_block_data_order_begin:\r
+        push    ebp\r
+        push    ebx\r
+        push    esi\r
+        push    edi\r
+        mov     esi,DWORD [20+esp]\r
+        mov     edi,DWORD [24+esp]\r
+        mov     eax,DWORD [28+esp]\r
+        mov     ebx,esp\r
+        call    L$000pic_point\r
+L$000pic_point:\r
+        pop     ebp\r
+        lea     ebp,[(L$001K512-L$000pic_point)+ebp]\r
+        sub     esp,16\r
+        and     esp,-64\r
+        shl     eax,7\r
+        add     eax,edi\r
+        mov     DWORD [esp],esi\r
+        mov     DWORD [4+esp],edi\r
+        mov     DWORD [8+esp],eax\r
+        mov     DWORD [12+esp],ebx\r
+align   16\r
+L$002loop_x86:\r
+        mov     eax,DWORD [edi]\r
+        mov     ebx,DWORD [4+edi]\r
+        mov     ecx,DWORD [8+edi]\r
+        mov     edx,DWORD [12+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [16+edi]\r
+        mov     ebx,DWORD [20+edi]\r
+        mov     ecx,DWORD [24+edi]\r
+        mov     edx,DWORD [28+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [32+edi]\r
+        mov     ebx,DWORD [36+edi]\r
+        mov     ecx,DWORD [40+edi]\r
+        mov     edx,DWORD [44+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [48+edi]\r
+        mov     ebx,DWORD [52+edi]\r
+        mov     ecx,DWORD [56+edi]\r
+        mov     edx,DWORD [60+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [64+edi]\r
+        mov     ebx,DWORD [68+edi]\r
+        mov     ecx,DWORD [72+edi]\r
+        mov     edx,DWORD [76+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [80+edi]\r
+        mov     ebx,DWORD [84+edi]\r
+        mov     ecx,DWORD [88+edi]\r
+        mov     edx,DWORD [92+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [96+edi]\r
+        mov     ebx,DWORD [100+edi]\r
+        mov     ecx,DWORD [104+edi]\r
+        mov     edx,DWORD [108+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        mov     eax,DWORD [112+edi]\r
+        mov     ebx,DWORD [116+edi]\r
+        mov     ecx,DWORD [120+edi]\r
+        mov     edx,DWORD [124+edi]\r
+        bswap   eax\r
+        bswap   ebx\r
+        bswap   ecx\r
+        bswap   edx\r
+        push    eax\r
+        push    ebx\r
+        push    ecx\r
+        push    edx\r
+        add     edi,128\r
+        sub     esp,72\r
+        mov     DWORD [204+esp],edi\r
+        lea     edi,[8+esp]\r
+        mov     ecx,16\r
+dd      2784229001\r
+align   16\r
+L$00300_15_x86:\r
+        mov     ecx,DWORD [40+esp]\r
+        mov     edx,DWORD [44+esp]\r
+        mov     esi,ecx\r
+        shr     ecx,9\r
+        mov     edi,edx\r
+        shr     edx,9\r
+        mov     ebx,ecx\r
+        shl     esi,14\r
+        mov     eax,edx\r
+        shl     edi,14\r
+        xor     ebx,esi\r
+        shr     ecx,5\r
+        xor     eax,edi\r
+        shr     edx,5\r
+        xor     eax,ecx\r
+        shl     esi,4\r
+        xor     ebx,edx\r
+        shl     edi,4\r
+        xor     ebx,esi\r
+        shr     ecx,4\r
+        xor     eax,edi\r
+        shr     edx,4\r
+        xor     eax,ecx\r
+        shl     esi,5\r
+        xor     ebx,edx\r
+        shl     edi,5\r
+        xor     eax,esi\r
+        xor     ebx,edi\r
+        mov     ecx,DWORD [48+esp]\r
+        mov     edx,DWORD [52+esp]\r
+        mov     esi,DWORD [56+esp]\r
+        mov     edi,DWORD [60+esp]\r
+        add     eax,DWORD [64+esp]\r
+        adc     ebx,DWORD [68+esp]\r
+        xor     ecx,esi\r
+        xor     edx,edi\r
+        and     ecx,DWORD [40+esp]\r
+        and     edx,DWORD [44+esp]\r
+        add     eax,DWORD [192+esp]\r
+        adc     ebx,DWORD [196+esp]\r
+        xor     ecx,esi\r
+        xor     edx,edi\r
+        mov     esi,DWORD [ebp]\r
+        mov     edi,DWORD [4+ebp]\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     ecx,DWORD [32+esp]\r
+        mov     edx,DWORD [36+esp]\r
+        add     eax,esi\r
+        adc     ebx,edi\r
+        mov     DWORD [esp],eax\r
+        mov     DWORD [4+esp],ebx\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     ecx,DWORD [8+esp]\r
+        mov     edx,DWORD [12+esp]\r
+        mov     DWORD [32+esp],eax\r
+        mov     DWORD [36+esp],ebx\r
+        mov     esi,ecx\r
+        shr     ecx,2\r
+        mov     edi,edx\r
+        shr     edx,2\r
+        mov     ebx,ecx\r
+        shl     esi,4\r
+        mov     eax,edx\r
+        shl     edi,4\r
+        xor     ebx,esi\r
+        shr     ecx,5\r
+        xor     eax,edi\r
+        shr     edx,5\r
+        xor     ebx,ecx\r
+        shl     esi,21\r
+        xor     eax,edx\r
+        shl     edi,21\r
+        xor     eax,esi\r
+        shr     ecx,21\r
+        xor     ebx,edi\r
+        shr     edx,21\r
+        xor     eax,ecx\r
+        shl     esi,5\r
+        xor     ebx,edx\r
+        shl     edi,5\r
+        xor     eax,esi\r
+        xor     ebx,edi\r
+        mov     ecx,DWORD [8+esp]\r
+        mov     edx,DWORD [12+esp]\r
+        mov     esi,DWORD [16+esp]\r
+        mov     edi,DWORD [20+esp]\r
+        add     eax,DWORD [esp]\r
+        adc     ebx,DWORD [4+esp]\r
+        or      ecx,esi\r
+        or      edx,edi\r
+        and     ecx,DWORD [24+esp]\r
+        and     edx,DWORD [28+esp]\r
+        and     esi,DWORD [8+esp]\r
+        and     edi,DWORD [12+esp]\r
+        or      ecx,esi\r
+        or      edx,edi\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     DWORD [esp],eax\r
+        mov     DWORD [4+esp],ebx\r
+        mov     dl,BYTE [ebp]\r
+        sub     esp,8\r
+        lea     ebp,[8+ebp]\r
+        cmp     dl,148\r
+        jne     NEAR L$00300_15_x86\r
+align   16\r
+L$00416_79_x86:\r
+        mov     ecx,DWORD [312+esp]\r
+        mov     edx,DWORD [316+esp]\r
+        mov     esi,ecx\r
+        shr     ecx,1\r
+        mov     edi,edx\r
+        shr     edx,1\r
+        mov     eax,ecx\r
+        shl     esi,24\r
+        mov     ebx,edx\r
+        shl     edi,24\r
+        xor     ebx,esi\r
+        shr     ecx,6\r
+        xor     eax,edi\r
+        shr     edx,6\r
+        xor     eax,ecx\r
+        shl     esi,7\r
+        xor     ebx,edx\r
+        shl     edi,1\r
+        xor     ebx,esi\r
+        shr     ecx,1\r
+        xor     eax,edi\r
+        shr     edx,1\r
+        xor     eax,ecx\r
+        shl     edi,6\r
+        xor     ebx,edx\r
+        xor     eax,edi\r
+        mov     DWORD [esp],eax\r
+        mov     DWORD [4+esp],ebx\r
+        mov     ecx,DWORD [208+esp]\r
+        mov     edx,DWORD [212+esp]\r
+        mov     esi,ecx\r
+        shr     ecx,6\r
+        mov     edi,edx\r
+        shr     edx,6\r
+        mov     eax,ecx\r
+        shl     esi,3\r
+        mov     ebx,edx\r
+        shl     edi,3\r
+        xor     eax,esi\r
+        shr     ecx,13\r
+        xor     ebx,edi\r
+        shr     edx,13\r
+        xor     eax,ecx\r
+        shl     esi,10\r
+        xor     ebx,edx\r
+        shl     edi,10\r
+        xor     ebx,esi\r
+        shr     ecx,10\r
+        xor     eax,edi\r
+        shr     edx,10\r
+        xor     ebx,ecx\r
+        shl     edi,13\r
+        xor     eax,edx\r
+        xor     eax,edi\r
+        mov     ecx,DWORD [320+esp]\r
+        mov     edx,DWORD [324+esp]\r
+        add     eax,DWORD [esp]\r
+        adc     ebx,DWORD [4+esp]\r
+        mov     esi,DWORD [248+esp]\r
+        mov     edi,DWORD [252+esp]\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        add     eax,esi\r
+        adc     ebx,edi\r
+        mov     DWORD [192+esp],eax\r
+        mov     DWORD [196+esp],ebx\r
+        mov     ecx,DWORD [40+esp]\r
+        mov     edx,DWORD [44+esp]\r
+        mov     esi,ecx\r
+        shr     ecx,9\r
+        mov     edi,edx\r
+        shr     edx,9\r
+        mov     ebx,ecx\r
+        shl     esi,14\r
+        mov     eax,edx\r
+        shl     edi,14\r
+        xor     ebx,esi\r
+        shr     ecx,5\r
+        xor     eax,edi\r
+        shr     edx,5\r
+        xor     eax,ecx\r
+        shl     esi,4\r
+        xor     ebx,edx\r
+        shl     edi,4\r
+        xor     ebx,esi\r
+        shr     ecx,4\r
+        xor     eax,edi\r
+        shr     edx,4\r
+        xor     eax,ecx\r
+        shl     esi,5\r
+        xor     ebx,edx\r
+        shl     edi,5\r
+        xor     eax,esi\r
+        xor     ebx,edi\r
+        mov     ecx,DWORD [48+esp]\r
+        mov     edx,DWORD [52+esp]\r
+        mov     esi,DWORD [56+esp]\r
+        mov     edi,DWORD [60+esp]\r
+        add     eax,DWORD [64+esp]\r
+        adc     ebx,DWORD [68+esp]\r
+        xor     ecx,esi\r
+        xor     edx,edi\r
+        and     ecx,DWORD [40+esp]\r
+        and     edx,DWORD [44+esp]\r
+        add     eax,DWORD [192+esp]\r
+        adc     ebx,DWORD [196+esp]\r
+        xor     ecx,esi\r
+        xor     edx,edi\r
+        mov     esi,DWORD [ebp]\r
+        mov     edi,DWORD [4+ebp]\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     ecx,DWORD [32+esp]\r
+        mov     edx,DWORD [36+esp]\r
+        add     eax,esi\r
+        adc     ebx,edi\r
+        mov     DWORD [esp],eax\r
+        mov     DWORD [4+esp],ebx\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     ecx,DWORD [8+esp]\r
+        mov     edx,DWORD [12+esp]\r
+        mov     DWORD [32+esp],eax\r
+        mov     DWORD [36+esp],ebx\r
+        mov     esi,ecx\r
+        shr     ecx,2\r
+        mov     edi,edx\r
+        shr     edx,2\r
+        mov     ebx,ecx\r
+        shl     esi,4\r
+        mov     eax,edx\r
+        shl     edi,4\r
+        xor     ebx,esi\r
+        shr     ecx,5\r
+        xor     eax,edi\r
+        shr     edx,5\r
+        xor     ebx,ecx\r
+        shl     esi,21\r
+        xor     eax,edx\r
+        shl     edi,21\r
+        xor     eax,esi\r
+        shr     ecx,21\r
+        xor     ebx,edi\r
+        shr     edx,21\r
+        xor     eax,ecx\r
+        shl     esi,5\r
+        xor     ebx,edx\r
+        shl     edi,5\r
+        xor     eax,esi\r
+        xor     ebx,edi\r
+        mov     ecx,DWORD [8+esp]\r
+        mov     edx,DWORD [12+esp]\r
+        mov     esi,DWORD [16+esp]\r
+        mov     edi,DWORD [20+esp]\r
+        add     eax,DWORD [esp]\r
+        adc     ebx,DWORD [4+esp]\r
+        or      ecx,esi\r
+        or      edx,edi\r
+        and     ecx,DWORD [24+esp]\r
+        and     edx,DWORD [28+esp]\r
+        and     esi,DWORD [8+esp]\r
+        and     edi,DWORD [12+esp]\r
+        or      ecx,esi\r
+        or      edx,edi\r
+        add     eax,ecx\r
+        adc     ebx,edx\r
+        mov     DWORD [esp],eax\r
+        mov     DWORD [4+esp],ebx\r
+        mov     dl,BYTE [ebp]\r
+        sub     esp,8\r
+        lea     ebp,[8+ebp]\r
+        cmp     dl,23\r
+        jne     NEAR L$00416_79_x86\r
+        mov     esi,DWORD [840+esp]\r
+        mov     edi,DWORD [844+esp]\r
+        mov     eax,DWORD [esi]\r
+        mov     ebx,DWORD [4+esi]\r
+        mov     ecx,DWORD [8+esi]\r
+        mov     edx,DWORD [12+esi]\r
+        add     eax,DWORD [8+esp]\r
+        adc     ebx,DWORD [12+esp]\r
+        mov     DWORD [esi],eax\r
+        mov     DWORD [4+esi],ebx\r
+        add     ecx,DWORD [16+esp]\r
+        adc     edx,DWORD [20+esp]\r
+        mov     DWORD [8+esi],ecx\r
+        mov     DWORD [12+esi],edx\r
+        mov     eax,DWORD [16+esi]\r
+        mov     ebx,DWORD [20+esi]\r
+        mov     ecx,DWORD [24+esi]\r
+        mov     edx,DWORD [28+esi]\r
+        add     eax,DWORD [24+esp]\r
+        adc     ebx,DWORD [28+esp]\r
+        mov     DWORD [16+esi],eax\r
+        mov     DWORD [20+esi],ebx\r
+        add     ecx,DWORD [32+esp]\r
+        adc     edx,DWORD [36+esp]\r
+        mov     DWORD [24+esi],ecx\r
+        mov     DWORD [28+esi],edx\r
+        mov     eax,DWORD [32+esi]\r
+        mov     ebx,DWORD [36+esi]\r
+        mov     ecx,DWORD [40+esi]\r
+        mov     edx,DWORD [44+esi]\r
+        add     eax,DWORD [40+esp]\r
+        adc     ebx,DWORD [44+esp]\r
+        mov     DWORD [32+esi],eax\r
+        mov     DWORD [36+esi],ebx\r
+        add     ecx,DWORD [48+esp]\r
+        adc     edx,DWORD [52+esp]\r
+        mov     DWORD [40+esi],ecx\r
+        mov     DWORD [44+esi],edx\r
+        mov     eax,DWORD [48+esi]\r
+        mov     ebx,DWORD [52+esi]\r
+        mov     ecx,DWORD [56+esi]\r
+        mov     edx,DWORD [60+esi]\r
+        add     eax,DWORD [56+esp]\r
+        adc     ebx,DWORD [60+esp]\r
+        mov     DWORD [48+esi],eax\r
+        mov     DWORD [52+esi],ebx\r
+        add     ecx,DWORD [64+esp]\r
+        adc     edx,DWORD [68+esp]\r
+        mov     DWORD [56+esi],ecx\r
+        mov     DWORD [60+esi],edx\r
+        add     esp,840\r
+        sub     ebp,640\r
+        cmp     edi,DWORD [8+esp]\r
+        jb      NEAR L$002loop_x86\r
+        mov     esp,DWORD [12+esp]\r
+        pop     edi\r
+        pop     esi\r
+        pop     ebx\r
+        pop     ebp\r
+        ret\r
+align   64\r
+L$001K512:\r
+dd      3609767458,1116352408\r
+dd      602891725,1899447441\r
+dd      3964484399,3049323471\r
+dd      2173295548,3921009573\r
+dd      4081628472,961987163\r
+dd      3053834265,1508970993\r
+dd      2937671579,2453635748\r
+dd      3664609560,2870763221\r
+dd      2734883394,3624381080\r
+dd      1164996542,310598401\r
+dd      1323610764,607225278\r
+dd      3590304994,1426881987\r
+dd      4068182383,1925078388\r
+dd      991336113,2162078206\r
+dd      633803317,2614888103\r
+dd      3479774868,3248222580\r
+dd      2666613458,3835390401\r
+dd      944711139,4022224774\r
+dd      2341262773,264347078\r
+dd      2007800933,604807628\r
+dd      1495990901,770255983\r
+dd      1856431235,1249150122\r
+dd      3175218132,1555081692\r
+dd      2198950837,1996064986\r
+dd      3999719339,2554220882\r
+dd      766784016,2821834349\r
+dd      2566594879,2952996808\r
+dd      3203337956,3210313671\r
+dd      1034457026,3336571891\r
+dd      2466948901,3584528711\r
+dd      3758326383,113926993\r
+dd      168717936,338241895\r
+dd      1188179964,666307205\r
+dd      1546045734,773529912\r
+dd      1522805485,1294757372\r
+dd      2643833823,1396182291\r
+dd      2343527390,1695183700\r
+dd      1014477480,1986661051\r
+dd      1206759142,2177026350\r
+dd      344077627,2456956037\r
+dd      1290863460,2730485921\r
+dd      3158454273,2820302411\r
+dd      3505952657,3259730800\r
+dd      106217008,3345764771\r
+dd      3606008344,3516065817\r
+dd      1432725776,3600352804\r
+dd      1467031594,4094571909\r
+dd      851169720,275423344\r
+dd      3100823752,430227734\r
+dd      1363258195,506948616\r
+dd      3750685593,659060556\r
+dd      3785050280,883997877\r
+dd      3318307427,958139571\r
+dd      3812723403,1322822218\r
+dd      2003034995,1537002063\r
+dd      3602036899,1747873779\r
+dd      1575990012,1955562222\r
+dd      1125592928,2024104815\r
+dd      2716904306,2227730452\r
+dd      442776044,2361852424\r
+dd      593698344,2428436474\r
+dd      3733110249,2756734187\r
+dd      2999351573,3204031479\r
+dd      3815920427,3329325298\r
+dd      3928383900,3391569614\r
+dd      566280711,3515267271\r
+dd      3454069534,3940187606\r
+dd      4000239992,4118630271\r
+dd      1914138554,116418474\r
+dd      2731055270,174292421\r
+dd      3203993006,289380356\r
+dd      320620315,460393269\r
+dd      587496836,685471733\r
+dd      1086792851,852142971\r
+dd      365543100,1017036298\r
+dd      2618297676,1126000580\r
+dd      3409855158,1288033470\r
+dd      4234509866,1501505948\r
+dd      987167468,1607167915\r
+dd      1246189591,1816402316\r
+dd      67438087,66051\r
+dd      202182159,134810123\r
+db      83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97\r
+db      110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32\r
+db      67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97\r
+db      112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103\r
+db      62,0\r