Index: third_party/boringssl/linux-x86/crypto/sha/sha512-586.S |
diff --git a/third_party/boringssl/linux-x86/crypto/sha/sha512-586.S b/third_party/boringssl/linux-x86/crypto/sha/sha512-586.S |
new file mode 100644 |
index 0000000000000000000000000000000000000000..37cec0914ec1ae7b6f85c7e00fb7ddb6e4878eb6 |
--- /dev/null |
+++ b/third_party/boringssl/linux-x86/crypto/sha/sha512-586.S |
@@ -0,0 +1,567 @@ |
+#if defined(__i386__) |
+.file "sha512-586.S" |
+.text |
+.globl sha512_block_data_order |
+.type sha512_block_data_order,@function |
+.align 16 |
+sha512_block_data_order: |
+.L_sha512_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 .L001K512-.L000pic_point(%ebp),%ebp |
+ subl $16,%esp |
+ andl $-64,%esp |
+ shll $7,%eax |
+ addl %edi,%eax |
+ movl %esi,(%esp) |
+ movl %edi,4(%esp) |
+ movl %eax,8(%esp) |
+ movl %ebx,12(%esp) |
+.align 16 |
+.L002loop_x86: |
+ 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 |
+ movl 64(%edi),%eax |
+ movl 68(%edi),%ebx |
+ movl 72(%edi),%ecx |
+ movl 76(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 80(%edi),%eax |
+ movl 84(%edi),%ebx |
+ movl 88(%edi),%ecx |
+ movl 92(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 96(%edi),%eax |
+ movl 100(%edi),%ebx |
+ movl 104(%edi),%ecx |
+ movl 108(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ movl 112(%edi),%eax |
+ movl 116(%edi),%ebx |
+ movl 120(%edi),%ecx |
+ movl 124(%edi),%edx |
+ bswap %eax |
+ bswap %ebx |
+ bswap %ecx |
+ bswap %edx |
+ pushl %eax |
+ pushl %ebx |
+ pushl %ecx |
+ pushl %edx |
+ addl $128,%edi |
+ subl $72,%esp |
+ movl %edi,204(%esp) |
+ leal 8(%esp),%edi |
+ movl $16,%ecx |
+.long 2784229001 |
+.align 16 |
+.L00300_15_x86: |
+ movl 40(%esp),%ecx |
+ movl 44(%esp),%edx |
+ movl %ecx,%esi |
+ shrl $9,%ecx |
+ movl %edx,%edi |
+ shrl $9,%edx |
+ movl %ecx,%ebx |
+ shll $14,%esi |
+ movl %edx,%eax |
+ shll $14,%edi |
+ xorl %esi,%ebx |
+ shrl $5,%ecx |
+ xorl %edi,%eax |
+ shrl $5,%edx |
+ xorl %ecx,%eax |
+ shll $4,%esi |
+ xorl %edx,%ebx |
+ shll $4,%edi |
+ xorl %esi,%ebx |
+ shrl $4,%ecx |
+ xorl %edi,%eax |
+ shrl $4,%edx |
+ xorl %ecx,%eax |
+ shll $5,%esi |
+ xorl %edx,%ebx |
+ shll $5,%edi |
+ xorl %esi,%eax |
+ xorl %edi,%ebx |
+ movl 48(%esp),%ecx |
+ movl 52(%esp),%edx |
+ movl 56(%esp),%esi |
+ movl 60(%esp),%edi |
+ addl 64(%esp),%eax |
+ adcl 68(%esp),%ebx |
+ xorl %esi,%ecx |
+ xorl %edi,%edx |
+ andl 40(%esp),%ecx |
+ andl 44(%esp),%edx |
+ addl 192(%esp),%eax |
+ adcl 196(%esp),%ebx |
+ xorl %esi,%ecx |
+ xorl %edi,%edx |
+ movl (%ebp),%esi |
+ movl 4(%ebp),%edi |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl 32(%esp),%ecx |
+ movl 36(%esp),%edx |
+ addl %esi,%eax |
+ adcl %edi,%ebx |
+ movl %eax,(%esp) |
+ movl %ebx,4(%esp) |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl 8(%esp),%ecx |
+ movl 12(%esp),%edx |
+ movl %eax,32(%esp) |
+ movl %ebx,36(%esp) |
+ movl %ecx,%esi |
+ shrl $2,%ecx |
+ movl %edx,%edi |
+ shrl $2,%edx |
+ movl %ecx,%ebx |
+ shll $4,%esi |
+ movl %edx,%eax |
+ shll $4,%edi |
+ xorl %esi,%ebx |
+ shrl $5,%ecx |
+ xorl %edi,%eax |
+ shrl $5,%edx |
+ xorl %ecx,%ebx |
+ shll $21,%esi |
+ xorl %edx,%eax |
+ shll $21,%edi |
+ xorl %esi,%eax |
+ shrl $21,%ecx |
+ xorl %edi,%ebx |
+ shrl $21,%edx |
+ xorl %ecx,%eax |
+ shll $5,%esi |
+ xorl %edx,%ebx |
+ shll $5,%edi |
+ xorl %esi,%eax |
+ xorl %edi,%ebx |
+ movl 8(%esp),%ecx |
+ movl 12(%esp),%edx |
+ movl 16(%esp),%esi |
+ movl 20(%esp),%edi |
+ addl (%esp),%eax |
+ adcl 4(%esp),%ebx |
+ orl %esi,%ecx |
+ orl %edi,%edx |
+ andl 24(%esp),%ecx |
+ andl 28(%esp),%edx |
+ andl 8(%esp),%esi |
+ andl 12(%esp),%edi |
+ orl %esi,%ecx |
+ orl %edi,%edx |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl %eax,(%esp) |
+ movl %ebx,4(%esp) |
+ movb (%ebp),%dl |
+ subl $8,%esp |
+ leal 8(%ebp),%ebp |
+ cmpb $148,%dl |
+ jne .L00300_15_x86 |
+.align 16 |
+.L00416_79_x86: |
+ movl 312(%esp),%ecx |
+ movl 316(%esp),%edx |
+ movl %ecx,%esi |
+ shrl $1,%ecx |
+ movl %edx,%edi |
+ shrl $1,%edx |
+ movl %ecx,%eax |
+ shll $24,%esi |
+ movl %edx,%ebx |
+ shll $24,%edi |
+ xorl %esi,%ebx |
+ shrl $6,%ecx |
+ xorl %edi,%eax |
+ shrl $6,%edx |
+ xorl %ecx,%eax |
+ shll $7,%esi |
+ xorl %edx,%ebx |
+ shll $1,%edi |
+ xorl %esi,%ebx |
+ shrl $1,%ecx |
+ xorl %edi,%eax |
+ shrl $1,%edx |
+ xorl %ecx,%eax |
+ shll $6,%edi |
+ xorl %edx,%ebx |
+ xorl %edi,%eax |
+ movl %eax,(%esp) |
+ movl %ebx,4(%esp) |
+ movl 208(%esp),%ecx |
+ movl 212(%esp),%edx |
+ movl %ecx,%esi |
+ shrl $6,%ecx |
+ movl %edx,%edi |
+ shrl $6,%edx |
+ movl %ecx,%eax |
+ shll $3,%esi |
+ movl %edx,%ebx |
+ shll $3,%edi |
+ xorl %esi,%eax |
+ shrl $13,%ecx |
+ xorl %edi,%ebx |
+ shrl $13,%edx |
+ xorl %ecx,%eax |
+ shll $10,%esi |
+ xorl %edx,%ebx |
+ shll $10,%edi |
+ xorl %esi,%ebx |
+ shrl $10,%ecx |
+ xorl %edi,%eax |
+ shrl $10,%edx |
+ xorl %ecx,%ebx |
+ shll $13,%edi |
+ xorl %edx,%eax |
+ xorl %edi,%eax |
+ movl 320(%esp),%ecx |
+ movl 324(%esp),%edx |
+ addl (%esp),%eax |
+ adcl 4(%esp),%ebx |
+ movl 248(%esp),%esi |
+ movl 252(%esp),%edi |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ addl %esi,%eax |
+ adcl %edi,%ebx |
+ movl %eax,192(%esp) |
+ movl %ebx,196(%esp) |
+ movl 40(%esp),%ecx |
+ movl 44(%esp),%edx |
+ movl %ecx,%esi |
+ shrl $9,%ecx |
+ movl %edx,%edi |
+ shrl $9,%edx |
+ movl %ecx,%ebx |
+ shll $14,%esi |
+ movl %edx,%eax |
+ shll $14,%edi |
+ xorl %esi,%ebx |
+ shrl $5,%ecx |
+ xorl %edi,%eax |
+ shrl $5,%edx |
+ xorl %ecx,%eax |
+ shll $4,%esi |
+ xorl %edx,%ebx |
+ shll $4,%edi |
+ xorl %esi,%ebx |
+ shrl $4,%ecx |
+ xorl %edi,%eax |
+ shrl $4,%edx |
+ xorl %ecx,%eax |
+ shll $5,%esi |
+ xorl %edx,%ebx |
+ shll $5,%edi |
+ xorl %esi,%eax |
+ xorl %edi,%ebx |
+ movl 48(%esp),%ecx |
+ movl 52(%esp),%edx |
+ movl 56(%esp),%esi |
+ movl 60(%esp),%edi |
+ addl 64(%esp),%eax |
+ adcl 68(%esp),%ebx |
+ xorl %esi,%ecx |
+ xorl %edi,%edx |
+ andl 40(%esp),%ecx |
+ andl 44(%esp),%edx |
+ addl 192(%esp),%eax |
+ adcl 196(%esp),%ebx |
+ xorl %esi,%ecx |
+ xorl %edi,%edx |
+ movl (%ebp),%esi |
+ movl 4(%ebp),%edi |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl 32(%esp),%ecx |
+ movl 36(%esp),%edx |
+ addl %esi,%eax |
+ adcl %edi,%ebx |
+ movl %eax,(%esp) |
+ movl %ebx,4(%esp) |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl 8(%esp),%ecx |
+ movl 12(%esp),%edx |
+ movl %eax,32(%esp) |
+ movl %ebx,36(%esp) |
+ movl %ecx,%esi |
+ shrl $2,%ecx |
+ movl %edx,%edi |
+ shrl $2,%edx |
+ movl %ecx,%ebx |
+ shll $4,%esi |
+ movl %edx,%eax |
+ shll $4,%edi |
+ xorl %esi,%ebx |
+ shrl $5,%ecx |
+ xorl %edi,%eax |
+ shrl $5,%edx |
+ xorl %ecx,%ebx |
+ shll $21,%esi |
+ xorl %edx,%eax |
+ shll $21,%edi |
+ xorl %esi,%eax |
+ shrl $21,%ecx |
+ xorl %edi,%ebx |
+ shrl $21,%edx |
+ xorl %ecx,%eax |
+ shll $5,%esi |
+ xorl %edx,%ebx |
+ shll $5,%edi |
+ xorl %esi,%eax |
+ xorl %edi,%ebx |
+ movl 8(%esp),%ecx |
+ movl 12(%esp),%edx |
+ movl 16(%esp),%esi |
+ movl 20(%esp),%edi |
+ addl (%esp),%eax |
+ adcl 4(%esp),%ebx |
+ orl %esi,%ecx |
+ orl %edi,%edx |
+ andl 24(%esp),%ecx |
+ andl 28(%esp),%edx |
+ andl 8(%esp),%esi |
+ andl 12(%esp),%edi |
+ orl %esi,%ecx |
+ orl %edi,%edx |
+ addl %ecx,%eax |
+ adcl %edx,%ebx |
+ movl %eax,(%esp) |
+ movl %ebx,4(%esp) |
+ movb (%ebp),%dl |
+ subl $8,%esp |
+ leal 8(%ebp),%ebp |
+ cmpb $23,%dl |
+ jne .L00416_79_x86 |
+ movl 840(%esp),%esi |
+ movl 844(%esp),%edi |
+ movl (%esi),%eax |
+ movl 4(%esi),%ebx |
+ movl 8(%esi),%ecx |
+ movl 12(%esi),%edx |
+ addl 8(%esp),%eax |
+ adcl 12(%esp),%ebx |
+ movl %eax,(%esi) |
+ movl %ebx,4(%esi) |
+ addl 16(%esp),%ecx |
+ adcl 20(%esp),%edx |
+ movl %ecx,8(%esi) |
+ movl %edx,12(%esi) |
+ movl 16(%esi),%eax |
+ movl 20(%esi),%ebx |
+ movl 24(%esi),%ecx |
+ movl 28(%esi),%edx |
+ addl 24(%esp),%eax |
+ adcl 28(%esp),%ebx |
+ movl %eax,16(%esi) |
+ movl %ebx,20(%esi) |
+ addl 32(%esp),%ecx |
+ adcl 36(%esp),%edx |
+ movl %ecx,24(%esi) |
+ movl %edx,28(%esi) |
+ movl 32(%esi),%eax |
+ movl 36(%esi),%ebx |
+ movl 40(%esi),%ecx |
+ movl 44(%esi),%edx |
+ addl 40(%esp),%eax |
+ adcl 44(%esp),%ebx |
+ movl %eax,32(%esi) |
+ movl %ebx,36(%esi) |
+ addl 48(%esp),%ecx |
+ adcl 52(%esp),%edx |
+ movl %ecx,40(%esi) |
+ movl %edx,44(%esi) |
+ movl 48(%esi),%eax |
+ movl 52(%esi),%ebx |
+ movl 56(%esi),%ecx |
+ movl 60(%esi),%edx |
+ addl 56(%esp),%eax |
+ adcl 60(%esp),%ebx |
+ movl %eax,48(%esi) |
+ movl %ebx,52(%esi) |
+ addl 64(%esp),%ecx |
+ adcl 68(%esp),%edx |
+ movl %ecx,56(%esi) |
+ movl %edx,60(%esi) |
+ addl $840,%esp |
+ subl $640,%ebp |
+ cmpl 8(%esp),%edi |
+ jb .L002loop_x86 |
+ movl 12(%esp),%esp |
+ popl %edi |
+ popl %esi |
+ popl %ebx |
+ popl %ebp |
+ ret |
+.align 64 |
+.L001K512: |
+.long 3609767458,1116352408 |
+.long 602891725,1899447441 |
+.long 3964484399,3049323471 |
+.long 2173295548,3921009573 |
+.long 4081628472,961987163 |
+.long 3053834265,1508970993 |
+.long 2937671579,2453635748 |
+.long 3664609560,2870763221 |
+.long 2734883394,3624381080 |
+.long 1164996542,310598401 |
+.long 1323610764,607225278 |
+.long 3590304994,1426881987 |
+.long 4068182383,1925078388 |
+.long 991336113,2162078206 |
+.long 633803317,2614888103 |
+.long 3479774868,3248222580 |
+.long 2666613458,3835390401 |
+.long 944711139,4022224774 |
+.long 2341262773,264347078 |
+.long 2007800933,604807628 |
+.long 1495990901,770255983 |
+.long 1856431235,1249150122 |
+.long 3175218132,1555081692 |
+.long 2198950837,1996064986 |
+.long 3999719339,2554220882 |
+.long 766784016,2821834349 |
+.long 2566594879,2952996808 |
+.long 3203337956,3210313671 |
+.long 1034457026,3336571891 |
+.long 2466948901,3584528711 |
+.long 3758326383,113926993 |
+.long 168717936,338241895 |
+.long 1188179964,666307205 |
+.long 1546045734,773529912 |
+.long 1522805485,1294757372 |
+.long 2643833823,1396182291 |
+.long 2343527390,1695183700 |
+.long 1014477480,1986661051 |
+.long 1206759142,2177026350 |
+.long 344077627,2456956037 |
+.long 1290863460,2730485921 |
+.long 3158454273,2820302411 |
+.long 3505952657,3259730800 |
+.long 106217008,3345764771 |
+.long 3606008344,3516065817 |
+.long 1432725776,3600352804 |
+.long 1467031594,4094571909 |
+.long 851169720,275423344 |
+.long 3100823752,430227734 |
+.long 1363258195,506948616 |
+.long 3750685593,659060556 |
+.long 3785050280,883997877 |
+.long 3318307427,958139571 |
+.long 3812723403,1322822218 |
+.long 2003034995,1537002063 |
+.long 3602036899,1747873779 |
+.long 1575990012,1955562222 |
+.long 1125592928,2024104815 |
+.long 2716904306,2227730452 |
+.long 442776044,2361852424 |
+.long 593698344,2428436474 |
+.long 3733110249,2756734187 |
+.long 2999351573,3204031479 |
+.long 3815920427,3329325298 |
+.long 3928383900,3391569614 |
+.long 566280711,3515267271 |
+.long 3454069534,3940187606 |
+.long 4000239992,4118630271 |
+.long 1914138554,116418474 |
+.long 2731055270,174292421 |
+.long 3203993006,289380356 |
+.long 320620315,460393269 |
+.long 587496836,685471733 |
+.long 1086792851,852142971 |
+.long 365543100,1017036298 |
+.long 2618297676,1126000580 |
+.long 3409855158,1288033470 |
+.long 4234509866,1501505948 |
+.long 987167468,1607167915 |
+.long 1246189591,1816402316 |
+.long 67438087,66051 |
+.long 202182159,134810123 |
+.size sha512_block_data_order,.-.L_sha512_block_data_order_begin |
+.byte 83,72,65,53,49,50,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 |
+#endif |