Index: openssl/crypto/sha/asm/sha256-586-mac.S |
diff --git a/openssl/crypto/sha/asm/sha256-586-mac.S b/openssl/crypto/sha/asm/sha256-586-mac.S |
new file mode 100644 |
index 0000000000000000000000000000000000000000..67c7a96bc02a5f9164b217aa72823ab38c35491b |
--- /dev/null |
+++ b/openssl/crypto/sha/asm/sha256-586-mac.S |
@@ -0,0 +1,256 @@ |
+.file "sha512-586.s" |
+.text |
+.globl _sha256_block_data_order |
+.align 4 |
+_sha256_block_data_order: |
+L_sha256_block_data_order_begin: |
+ pushl %ebp |
+ pushl %ebx |
+ pushl %esi |
+ pushl %edi |
+ movl 20(%esp),%esi |
+ movl 24(%esp),%edi |
+ movl 28(%esp),%eax |
+ movl %esp,%ebx |
+ call L000pic_point |
+L000pic_point: |
+ popl %ebp |
+ leal L001K256-L000pic_point(%ebp),%ebp |
+ subl $16,%esp |
+ andl $-64,%esp |
+ shll $6,%eax |
+ addl %edi,%eax |
+ movl %esi,(%esp) |
+ movl %edi,4(%esp) |
+ movl %eax,8(%esp) |
+ movl %ebx,12(%esp) |
+.align 4,0x90 |
+L002loop: |
+ movl (%edi),%eax |
+ movl 4(%edi),%ebx |
+ movl 8(%edi),%ecx |
+ movl 12(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 16(%edi),%eax |
+ movl 20(%edi),%ebx |
+ movl 24(%edi),%ecx |
+ movl 28(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 32(%edi),%eax |
+ movl 36(%edi),%ebx |
+ movl 40(%edi),%ecx |
+ movl 44(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 48(%edi),%eax |
+ movl 52(%edi),%ebx |
+ movl 56(%edi),%ecx |
+ movl 60(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ addl $64,%edi |
+ subl $32,%esp |
+ movl %edi,100(%esp) |
+ movl (%esi),%eax |
+ movl 4(%esi),%ebx |
+ movl 8(%esi),%ecx |
+ movl 12(%esi),%edi |
+ movl %ebx,4(%esp) |
+ movl %ecx,8(%esp) |
+ movl %edi,12(%esp) |
+ movl 16(%esi),%edx |
+ movl 20(%esi),%ebx |
+ movl 24(%esi),%ecx |
+ movl 28(%esi),%edi |
+ movl %ebx,20(%esp) |
+ movl %ecx,24(%esp) |
+ movl %edi,28(%esp) |
+.align 4,0x90 |
+L00300_15: |
+ movl 92(%esp),%ebx |
+ movl %edx,%ecx |
+ rorl $14,%ecx |
+ movl 20(%esp),%esi |
+ xorl %edx,%ecx |
+ rorl $5,%ecx |
+ xorl %edx,%ecx |
+ rorl $6,%ecx |
+ movl 24(%esp),%edi |
+ addl %ecx,%ebx |
+ xorl %edi,%esi |
+ movl %edx,16(%esp) |
+ movl %eax,%ecx |
+ andl %edx,%esi |
+ movl 12(%esp),%edx |
+ xorl %edi,%esi |
+ movl %eax,%edi |
+ addl %esi,%ebx |
+ rorl $9,%ecx |
+ addl 28(%esp),%ebx |
+ xorl %eax,%ecx |
+ rorl $11,%ecx |
+ movl 4(%esp),%esi |
+ xorl %eax,%ecx |
+ rorl $2,%ecx |
+ addl %ebx,%edx |
+ movl 8(%esp),%edi |
+ addl %ecx,%ebx |
+ movl %eax,(%esp) |
+ movl %eax,%ecx |
+ subl $4,%esp |
+ orl %esi,%eax |
+ andl %esi,%ecx |
+ andl %edi,%eax |
+ movl (%ebp),%esi |
+ orl %ecx,%eax |
+ addl $4,%ebp |
+ addl %ebx,%eax |
+ addl %esi,%edx |
+ addl %esi,%eax |
+ cmpl $3248222580,%esi |
+ jne L00300_15 |
+ movl 152(%esp),%ebx |
+.align 4,0x90 |
+L00416_63: |
+ movl %ebx,%esi |
+ movl 100(%esp),%ecx |
+ rorl $11,%esi |
+ movl %ecx,%edi |
+ xorl %ebx,%esi |
+ rorl $7,%esi |
+ shrl $3,%ebx |
+ rorl $2,%edi |
+ xorl %esi,%ebx |
+ xorl %ecx,%edi |
+ rorl $17,%edi |
+ shrl $10,%ecx |
+ addl 156(%esp),%ebx |
+ xorl %ecx,%edi |
+ addl 120(%esp),%ebx |
+ movl %edx,%ecx |
+ addl %edi,%ebx |
+ rorl $14,%ecx |
+ movl 20(%esp),%esi |
+ xorl %edx,%ecx |
+ rorl $5,%ecx |
+ movl %ebx,92(%esp) |
+ xorl %edx,%ecx |
+ rorl $6,%ecx |
+ movl 24(%esp),%edi |
+ addl %ecx,%ebx |
+ xorl %edi,%esi |
+ movl %edx,16(%esp) |
+ movl %eax,%ecx |
+ andl %edx,%esi |
+ movl 12(%esp),%edx |
+ xorl %edi,%esi |
+ movl %eax,%edi |
+ addl %esi,%ebx |
+ rorl $9,%ecx |
+ addl 28(%esp),%ebx |
+ xorl %eax,%ecx |
+ rorl $11,%ecx |
+ movl 4(%esp),%esi |
+ xorl %eax,%ecx |
+ rorl $2,%ecx |
+ addl %ebx,%edx |
+ movl 8(%esp),%edi |
+ addl %ecx,%ebx |
+ movl %eax,(%esp) |
+ movl %eax,%ecx |
+ subl $4,%esp |
+ orl %esi,%eax |
+ andl %esi,%ecx |
+ andl %edi,%eax |
+ movl (%ebp),%esi |
+ orl %ecx,%eax |
+ addl $4,%ebp |
+ addl %ebx,%eax |
+ movl 152(%esp),%ebx |
+ addl %esi,%edx |
+ addl %esi,%eax |
+ cmpl $3329325298,%esi |
+ jne L00416_63 |
+ movl 352(%esp),%esi |
+ movl 4(%esp),%ebx |
+ movl 8(%esp),%ecx |
+ movl 12(%esp),%edi |
+ addl (%esi),%eax |
+ addl 4(%esi),%ebx |
+ addl 8(%esi),%ecx |
+ addl 12(%esi),%edi |
+ movl %eax,(%esi) |
+ movl %ebx,4(%esi) |
+ movl %ecx,8(%esi) |
+ movl %edi,12(%esi) |
+ movl 20(%esp),%eax |
+ movl 24(%esp),%ebx |
+ movl 28(%esp),%ecx |
+ movl 356(%esp),%edi |
+ addl 16(%esi),%edx |
+ addl 20(%esi),%eax |
+ addl 24(%esi),%ebx |
+ addl 28(%esi),%ecx |
+ movl %edx,16(%esi) |
+ movl %eax,20(%esi) |
+ movl %ebx,24(%esi) |
+ movl %ecx,28(%esi) |
+ addl $352,%esp |
+ subl $256,%ebp |
+ cmpl 8(%esp),%edi |
+ jb L002loop |
+ movl 12(%esp),%esp |
+ popl %edi |
+ popl %esi |
+ popl %ebx |
+ popl %ebp |
+ ret |
+.align 6,0x90 |
+L001K256: |
+.long 1116352408,1899447441,3049323471,3921009573 |
+.long 961987163,1508970993,2453635748,2870763221 |
+.long 3624381080,310598401,607225278,1426881987 |
+.long 1925078388,2162078206,2614888103,3248222580 |
+.long 3835390401,4022224774,264347078,604807628 |
+.long 770255983,1249150122,1555081692,1996064986 |
+.long 2554220882,2821834349,2952996808,3210313671 |
+.long 3336571891,3584528711,113926993,338241895 |
+.long 666307205,773529912,1294757372,1396182291 |
+.long 1695183700,1986661051,2177026350,2456956037 |
+.long 2730485921,2820302411,3259730800,3345764771 |
+.long 3516065817,3600352804,4094571909,275423344 |
+.long 430227734,506948616,659060556,883997877 |
+.long 958139571,1322822218,1537002063,1747873779 |
+.long 1955562222,2024104815,2227730452,2361852424 |
+.long 2428436474,2756734187,3204031479,3329325298 |
+.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 |
+.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 |
+.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 |
+.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 |
+.byte 62,0 |