summaryrefslogtreecommitdiff
path: root/deps/openssl/asm/x86-macosx-gas/x86cpuid.s
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/asm/x86-macosx-gas/x86cpuid.s')
-rw-r--r--deps/openssl/asm/x86-macosx-gas/x86cpuid.s149
1 files changed, 47 insertions, 102 deletions
diff --git a/deps/openssl/asm/x86-macosx-gas/x86cpuid.s b/deps/openssl/asm/x86-macosx-gas/x86cpuid.s
index db36e6f503..b5e80f83a3 100644
--- a/deps/openssl/asm/x86-macosx-gas/x86cpuid.s
+++ b/deps/openssl/asm/x86-macosx-gas/x86cpuid.s
@@ -18,9 +18,9 @@ L_OPENSSL_ia32_cpuid_begin:
pushfl
popl %eax
xorl %eax,%ecx
- xorl %eax,%eax
btl $21,%ecx
- jnc L000nocpuid
+ jnc L000done
+ xorl %eax,%eax
.byte 0x0f,0xa2
movl %eax,%edi
xorl %eax,%eax
@@ -46,14 +46,7 @@ L_OPENSSL_ia32_cpuid_begin:
jnz L001intel
movl $2147483648,%eax
.byte 0x0f,0xa2
- cmpl $2147483649,%eax
- jb L001intel
- movl %eax,%esi
- movl $2147483649,%eax
- .byte 0x0f,0xa2
- orl %ecx,%ebp
- andl $2049,%ebp
- cmpl $2147483656,%esi
+ cmpl $2147483656,%eax
jb L001intel
movl $2147483656,%eax
.byte 0x0f,0xa2
@@ -62,68 +55,46 @@ L_OPENSSL_ia32_cpuid_begin:
movl $1,%eax
.byte 0x0f,0xa2
btl $28,%edx
- jnc L002generic
+ jnc L000done
shrl $16,%ebx
andl $255,%ebx
cmpl %esi,%ebx
- ja L002generic
+ ja L000done
andl $4026531839,%edx
- jmp L002generic
+ jmp L000done
L001intel:
cmpl $4,%edi
movl $-1,%edi
- jb L003nocacheinfo
+ jb L002nocacheinfo
movl $4,%eax
movl $0,%ecx
.byte 0x0f,0xa2
movl %eax,%edi
shrl $14,%edi
andl $4095,%edi
-L003nocacheinfo:
+L002nocacheinfo:
movl $1,%eax
.byte 0x0f,0xa2
- andl $3220176895,%edx
cmpl $0,%ebp
- jne L004notintel
- orl $1073741824,%edx
+ jne L003notP4
andb $15,%ah
cmpb $15,%ah
- jne L004notintel
+ jne L003notP4
orl $1048576,%edx
-L004notintel:
+L003notP4:
btl $28,%edx
- jnc L002generic
+ jnc L000done
andl $4026531839,%edx
cmpl $0,%edi
- je L002generic
+ je L000done
orl $268435456,%edx
shrl $16,%ebx
cmpb $1,%bl
- ja L002generic
+ ja L000done
andl $4026531839,%edx
-L002generic:
- andl $2048,%ebp
- andl $4294965247,%ecx
- movl %edx,%esi
- orl %ecx,%ebp
- btl $27,%ecx
- jnc L005clear_avx
- xorl %ecx,%ecx
-.byte 15,1,208
- andl $6,%eax
- cmpl $6,%eax
- je L006done
- cmpl $2,%eax
- je L005clear_avx
-L007clear_xmm:
- andl $4261412861,%ebp
- andl $4278190079,%esi
-L005clear_avx:
- andl $4026525695,%ebp
-L006done:
- movl %esi,%eax
- movl %ebp,%edx
-L000nocpuid:
+L000done:
+ movl %edx,%eax
+ movl %ecx,%edx
popl %edi
popl %esi
popl %ebx
@@ -135,32 +106,26 @@ _OPENSSL_rdtsc:
L_OPENSSL_rdtsc_begin:
xorl %eax,%eax
xorl %edx,%edx
- call L008PIC_me_up
-L008PIC_me_up:
- popl %ecx
- movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx
+ leal _OPENSSL_ia32cap_P,%ecx
btl $4,(%ecx)
- jnc L009notsc
+ jnc L004notsc
.byte 0x0f,0x31
-L009notsc:
+L004notsc:
ret
.globl _OPENSSL_instrument_halt
.align 4
_OPENSSL_instrument_halt:
L_OPENSSL_instrument_halt_begin:
- call L010PIC_me_up
-L010PIC_me_up:
- popl %ecx
- movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx
+ leal _OPENSSL_ia32cap_P,%ecx
btl $4,(%ecx)
- jnc L011nohalt
+ jnc L005nohalt
.long 2421723150
andl $3,%eax
- jnz L011nohalt
+ jnz L005nohalt
pushfl
popl %eax
btl $9,%eax
- jnc L011nohalt
+ jnc L005nohalt
.byte 0x0f,0x31
pushl %edx
pushl %eax
@@ -170,7 +135,7 @@ L010PIC_me_up:
sbbl 4(%esp),%edx
addl $8,%esp
ret
-L011nohalt:
+L005nohalt:
xorl %eax,%eax
xorl %edx,%edx
ret
@@ -181,21 +146,21 @@ L_OPENSSL_far_spin_begin:
pushfl
popl %eax
btl $9,%eax
- jnc L012nospin
+ jnc L006nospin
movl 4(%esp),%eax
movl 8(%esp),%ecx
.long 2430111262
xorl %eax,%eax
movl (%ecx),%edx
- jmp L013spin
+ jmp L007spin
.align 4,0x90
-L013spin:
+L007spin:
incl %eax
cmpl (%ecx),%edx
- je L013spin
+ je L007spin
.long 529567888
ret
-L012nospin:
+L006nospin:
xorl %eax,%eax
xorl %edx,%edx
ret
@@ -205,15 +170,12 @@ _OPENSSL_wipe_cpu:
L_OPENSSL_wipe_cpu_begin:
xorl %eax,%eax
xorl %edx,%edx
- call L014PIC_me_up
-L014PIC_me_up:
- popl %ecx
- movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx
+ leal _OPENSSL_ia32cap_P,%ecx
movl (%ecx),%ecx
btl $1,(%ecx)
- jnc L015no_x87
+ jnc L008no_x87
.long 4007259865,4007259865,4007259865,4007259865,2430851995
-L015no_x87:
+L008no_x87:
leal 4(%esp),%eax
ret
.globl _OPENSSL_atomic_add
@@ -225,11 +187,11 @@ L_OPENSSL_atomic_add_begin:
pushl %ebx
nop
movl (%edx),%eax
-L016spin:
+L009spin:
leal (%eax,%ecx,1),%ebx
nop
.long 447811568
- jne L016spin
+ jne L009spin
movl %ebx,%eax
popl %ebx
ret
@@ -266,51 +228,34 @@ L_OPENSSL_cleanse_begin:
movl 8(%esp),%ecx
xorl %eax,%eax
cmpl $7,%ecx
- jae L017lot
+ jae L010lot
cmpl $0,%ecx
- je L018ret
-L019little:
+ je L011ret
+L012little:
movb %al,(%edx)
subl $1,%ecx
leal 1(%edx),%edx
- jnz L019little
-L018ret:
+ jnz L012little
+L011ret:
ret
.align 4,0x90
-L017lot:
+L010lot:
testl $3,%edx
- jz L020aligned
+ jz L013aligned
movb %al,(%edx)
leal -1(%ecx),%ecx
leal 1(%edx),%edx
- jmp L017lot
-L020aligned:
+ jmp L010lot
+L013aligned:
movl %eax,(%edx)
leal -4(%ecx),%ecx
testl $-4,%ecx
leal 4(%edx),%edx
- jnz L020aligned
+ jnz L013aligned
cmpl $0,%ecx
- jne L019little
- ret
-.globl _OPENSSL_ia32_rdrand
-.align 4
-_OPENSSL_ia32_rdrand:
-L_OPENSSL_ia32_rdrand_begin:
- movl $8,%ecx
-L021loop:
-.byte 15,199,240
- jc L022break
- loop L021loop
-L022break:
- cmpl $0,%eax
- cmovel %ecx,%eax
+ jne L012little
ret
-.section __IMPORT,__pointers,non_lazy_symbol_pointers
-L_OPENSSL_ia32cap_P$non_lazy_ptr:
-.indirect_symbol _OPENSSL_ia32cap_P
-.long 0
-.comm _OPENSSL_ia32cap_P,8,2
+.comm _OPENSSL_ia32cap_P,4
.mod_init_func
.align 2
.long _OPENSSL_cpuid_setup