summaryrefslogtreecommitdiffstats
path: root/mac-x86/crypto/cpu-x86-asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'mac-x86/crypto/cpu-x86-asm.S')
-rw-r--r--mac-x86/crypto/cpu-x86-asm.S28
1 files changed, 18 insertions, 10 deletions
diff --git a/mac-x86/crypto/cpu-x86-asm.S b/mac-x86/crypto/cpu-x86-asm.S
index 7e8c83a..bfb292c 100644
--- a/mac-x86/crypto/cpu-x86-asm.S
+++ b/mac-x86/crypto/cpu-x86-asm.S
@@ -100,10 +100,6 @@ L004nocacheinfo:
cmpl $0,%ebp
jne L005notintel
orl $1073741824,%edx
- andb $15,%ah
- cmpb $15,%ah
- jne L005notintel
- orl $1048576,%edx
L005notintel:
btl $28,%edx
jnc L002generic
@@ -232,6 +228,18 @@ L015PIC_me_up:
movl (%ecx),%ecx
btl $1,(%ecx)
jnc L016no_x87
+ andl $83886080,%ecx
+ cmpl $83886080,%ecx
+ jne L017no_sse2
+ pxor %xmm0,%xmm0
+ pxor %xmm1,%xmm1
+ pxor %xmm2,%xmm2
+ pxor %xmm3,%xmm3
+ pxor %xmm4,%xmm4
+ pxor %xmm5,%xmm5
+ pxor %xmm6,%xmm6
+ pxor %xmm7,%xmm7
+L017no_sse2:
.long 4007259865,4007259865,4007259865,4007259865,2430851995
L016no_x87:
leal 4(%esp),%eax
@@ -246,11 +254,11 @@ L_OPENSSL_atomic_add_begin:
pushl %ebx
nop
movl (%edx),%eax
-L017spin:
+L018spin:
leal (%eax,%ecx,1),%ebx
nop
.long 447811568
- jne L017spin
+ jne L018spin
movl %ebx,%eax
popl %ebx
ret
@@ -286,11 +294,11 @@ L_OPENSSL_indirect_call_begin:
_OPENSSL_ia32_rdrand:
L_OPENSSL_ia32_rdrand_begin:
movl $8,%ecx
-L018loop:
+L019loop:
.byte 15,199,240
- jc L019break
- loop L018loop
-L019break:
+ jc L020break
+ loop L019loop
+L020break:
cmpl $0,%eax
cmovel %ecx,%eax
ret