diff options
Diffstat (limited to 'mac-x86/crypto/cpu-x86-asm.S')
-rw-r--r-- | mac-x86/crypto/cpu-x86-asm.S | 28 |
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 |