Daniel Bevenius
8 years ago
committed by
Myles Borins
No known key found for this signature in database
GPG Key ID: 933B01F40B5CA946
23 changed files with
191 additions and
182 deletions
deps/openssl/asm/arm-void-gas/aes/bsaes-armv7.S
deps/openssl/asm/x64-elf-gas/aes/aesni-sha1-x86_64.s
deps/openssl/asm/x64-elf-gas/aes/aesni-sha256-x86_64.s
deps/openssl/asm/x64-elf-gas/x86_64cpuid.s
deps/openssl/asm/x64-macosx-gas/aes/aesni-sha1-x86_64.s
deps/openssl/asm/x64-macosx-gas/aes/aesni-sha256-x86_64.s
deps/openssl/asm/x64-macosx-gas/x86_64cpuid.s
deps/openssl/asm/x64-win32-masm/aes/aesni-sha1-x86_64.asm
deps/openssl/asm/x64-win32-masm/aes/aesni-sha256-x86_64.asm
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm
deps/openssl/asm/x86-elf-gas/x86cpuid.s
deps/openssl/asm/x86-macosx-gas/x86cpuid.s
deps/openssl/asm/x86-win32-masm/x86cpuid.asm
deps/openssl/asm_obsolete/arm-void-gas/aes/bsaes-armv7.S
deps/openssl/asm_obsolete/x64-elf-gas/aes/aesni-sha1-x86_64.s
deps/openssl/asm_obsolete/x64-elf-gas/x86_64cpuid.s
deps/openssl/asm_obsolete/x64-macosx-gas/aes/aesni-sha1-x86_64.s
deps/openssl/asm_obsolete/x64-macosx-gas/x86_64cpuid.s
deps/openssl/asm_obsolete/x64-win32-masm/aes/aesni-sha1-x86_64.asm
deps/openssl/asm_obsolete/x64-win32-masm/x86_64cpuid.asm
deps/openssl/asm_obsolete/x86-elf-gas/x86cpuid.s
deps/openssl/asm_obsolete/x86-macosx-gas/x86cpuid.s
deps/openssl/asm_obsolete/x86-win32-masm/x86cpuid.asm
@ -1298,7 +1298,7 @@ bsaes_cbc_encrypt:
vmov q4 , q15 @ just in case ensure that IV
vmov q4 , q15 @ just in case ensure that IV
vmov q5 , q0 @ and input are preserved
vmov q5 , q0 @ and input are preserved
bl AES_decrypt
bl AES_decrypt
vld1.8 { q0 } , [ r9 ,: 64 ] @ load result
vld1.8 { q0 } , [ r9 ] @ load result
veor q0 , q0 , q4 @ ^ = IV
veor q0 , q0 , q4 @ ^ = IV
vmov q15 , q5 @ q5 holds input
vmov q15 , q5 @ q5 holds input
vst1.8 { q0 } , [ r10 ] @ write output
vst1.8 { q0 } , [ r10 ] @ write output
@ -2692,6 +2692,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm2
movups 16 ( %rcx ), %xmm0
movups 16 ( %rcx ), %xmm0
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -4012,6 +4012,7 @@ aesni_cbc_sha256_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm6
movups 16 ( %rcx ), %xmm4
movups 16 ( %rcx ), %xmm4
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -107,14 +107,6 @@ OPENSSL_ia32_cpuid:
shrl $14 , %r10d
shrl $14 , %r10d
andl $0xfff , %r10d
andl $0xfff , %r10d
cmpl $7 , %r11d
jb .Lnocacheinfo
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
.Lnocacheinfo:
.Lnocacheinfo:
movl $1 , %eax
movl $1 , %eax
cpuid
cpuid
@ -144,6 +136,15 @@ OPENSSL_ia32_cpuid:
orl %ecx , %r9d
orl %ecx , %r9d
movl %edx , %r10d
movl %edx , %r10d
cmpl $7 , %r11d
jb .Lno_extended_info
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
.Lno_extended_info:
btl $27 , %r9d
btl $27 , %r9d
jnc .Lclear_avx
jnc .Lclear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
@ -2692,6 +2692,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm2
movups 16 ( %rcx ), %xmm0
movups 16 ( %rcx ), %xmm0
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -4012,6 +4012,7 @@ aesni_cbc_sha256_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm6
movups 16 ( %rcx ), %xmm4
movups 16 ( %rcx ), %xmm4
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -108,14 +108,6 @@ L$intel:
shrl $14 , %r10d
shrl $14 , %r10d
andl $0xfff , %r10d
andl $0xfff , %r10d
cmpl $7 , %r11d
jb L$nocacheinfo
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
L$nocacheinfo:
L$nocacheinfo:
movl $1 , %eax
movl $1 , %eax
cpuid
cpuid
@ -145,6 +137,15 @@ L$generic:
orl %ecx , %r9d
orl %ecx , %r9d
movl %edx , %r10d
movl %edx , %r10d
cmpl $7 , %r11d
jb L$no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
L$no_extended_info:
btl $27 , %r9d
btl $27 , %r9d
jnc L$clear_avx
jnc L$clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
@ -2793,6 +2793,7 @@ $L$prologue_shaext::
mov r11d , DWORD PTR [ 240 + rcx ]
mov r11d , DWORD PTR [ 240 + rcx ]
sub rsi , rdi
sub rsi , rdi
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm2 , XMMWORD PTR [ r8 ]
movups xmm0 , XMMWORD PTR [ 16 + rcx ]
movups xmm0 , XMMWORD PTR [ 16 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
@ -4146,6 +4146,7 @@ $L$prologue_shaext::
mov r11d , DWORD PTR [ 240 + rcx ]
mov r11d , DWORD PTR [ 240 + rcx ]
sub rsi , rdi
sub rsi , rdi
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm6 , XMMWORD PTR [ r8 ]
movups xmm4 , XMMWORD PTR [ 16 + rcx ]
movups xmm4 , XMMWORD PTR [ 16 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
@ -118,14 +118,6 @@ $L$intel::
shr r10d , 14
shr r10d , 14
and r10d , 0fffh
and r10d , 0fffh
cmp r11d , 7
jb $ L$nocacheinfo
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR [ 8 + rdi ], ebx
$L$nocacheinfo: :
$L$nocacheinfo: :
mov eax , 1
mov eax , 1
cpu id
cpu id
@ -155,6 +147,15 @@ $L$generic::
or r9d , ecx
or r9d , ecx
mov r10d , edx
mov r10d , edx
cmp r11d , 7
jb $ L$no_extended_info
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR [ 8 + rdi ], ebx
$L$no_extended_info: :
bt r9d , 27
bt r9d , 27
jnc $ L$clear_avx
jnc $ L$clear_avx
xor ecx , ecx
xor ecx , ecx
@ -20,10 +20,10 @@ OPENSSL_ia32_cpuid:
popl %eax
popl %eax
xorl %eax , %ecx
xorl %eax , %ecx
xorl %eax , %eax
xorl %eax , %eax
btl $21 , %ecx
jnc .L000nocpuid
movl 20 ( %esp ), %esi
movl 20 ( %esp ), %esi
movl %eax , 8 ( %esi )
movl %eax , 8 ( %esi )
btl $21 , %ecx
jnc .L000nocpuid
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %edi
movl %eax , %edi
xorl %eax , %eax
xorl %eax , %eax
@ -74,40 +74,32 @@ OPENSSL_ia32_cpuid:
andl $4026531839 , %edx
andl $4026531839 , %edx
jmp .L002generic
jmp .L002generic
.L001intel:
.L001intel:
cmpl $7 , %edi
jb .L003cacheinfo
movl 20 ( %esp ), %esi
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %esi )
.L003cacheinfo:
cmpl $4 , %edi
cmpl $4 , %edi
movl $-1 , %ed i
movl $-1 , %esi
jb .L004 nocacheinfo
jb .L003nocacheinfo
movl $4 , %eax
movl $4 , %eax
movl $0 , %ecx
movl $0 , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %ed i
movl %eax , %esi
shrl $14 , %ed i
shrl $14 , %esi
andl $4095 , %ed i
andl $4095 , %es i
.L004 nocacheinfo:
.L003 nocacheinfo:
movl $1 , %eax
movl $1 , %eax
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
andl $3220176895 , %edx
andl $3220176895 , %edx
cmpl $0 , %ebp
cmpl $0 , %ebp
jne .L005 notintel
jne .L004 notintel
orl $1073741824 , %edx
orl $1073741824 , %edx
andb $15 , %ah
andb $15 , %ah
cmpb $15 , %ah
cmpb $15 , %ah
jne .L005 notintel
jne .L004 notintel
orl $1048576 , %edx
orl $1048576 , %edx
.L005 notintel:
.L004 notintel:
btl $28 , %edx
btl $28 , %edx
jnc .L002generic
jnc .L002generic
andl $4026531839 , %edx
andl $4026531839 , %edx
cmpl $0 , %ed i
cmpl $0 , %es i
je .L002generic
je .L002generic
orl $268435456 , %edx
orl $268435456 , %edx
shrl $16 , %ebx
shrl $16 , %ebx
@ -119,7 +111,15 @@ OPENSSL_ia32_cpuid:
andl $4294965247 , %ecx
andl $4294965247 , %ecx
movl %edx , %esi
movl %edx , %esi
orl %ecx , %ebp
orl %ecx , %ebp
btl $27 , %ecx
cmpl $7 , %edi
movl 20 ( %esp ), %edi
jb .L005no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %edi )
.L005no_extended_info:
btl $27 , %ebp
jnc .L006clear_avx
jnc .L006clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 15 , 1 , 208
.byte 15 , 1 , 208
@ -133,7 +133,6 @@ OPENSSL_ia32_cpuid:
andl $4278190079 , %esi
andl $4278190079 , %esi
.L006clear_avx:
.L006clear_avx:
andl $4026525695 , %ebp
andl $4026525695 , %ebp
movl 20 ( %esp ), %edi
andl $4294967263 , 8 ( %edi )
andl $4294967263 , 8 ( %edi )
.L007done:
.L007done:
movl %esi , %eax
movl %esi , %eax
@ -19,10 +19,10 @@ L_OPENSSL_ia32_cpuid_begin:
popl %eax
popl %eax
xorl %eax , %ecx
xorl %eax , %ecx
xorl %eax , %eax
xorl %eax , %eax
btl $21 , %ecx
jnc L000nocpuid
movl 20 ( %esp ), %esi
movl 20 ( %esp ), %esi
movl %eax , 8 ( %esi )
movl %eax , 8 ( %esi )
btl $21 , %ecx
jnc L000nocpuid
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %edi
movl %eax , %edi
xorl %eax , %eax
xorl %eax , %eax
@ -73,40 +73,32 @@ L_OPENSSL_ia32_cpuid_begin:
andl $4026531839 , %edx
andl $4026531839 , %edx
jmp L002generic
jmp L002generic
L001intel:
L001intel:
cmpl $7 , %edi
jb L003cacheinfo
movl 20 ( %esp ), %esi
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %esi )
L003cacheinfo:
cmpl $4 , %edi
cmpl $4 , %edi
movl $-1 , %ed i
movl $-1 , %esi
jb L004 nocacheinfo
jb L003nocacheinfo
movl $4 , %eax
movl $4 , %eax
movl $0 , %ecx
movl $0 , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %ed i
movl %eax , %esi
shrl $14 , %ed i
shrl $14 , %esi
andl $4095 , %ed i
andl $4095 , %es i
L004 nocacheinfo:
L003 nocacheinfo:
movl $1 , %eax
movl $1 , %eax
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
andl $3220176895 , %edx
andl $3220176895 , %edx
cmpl $0 , %ebp
cmpl $0 , %ebp
jne L005 notintel
jne L004 notintel
orl $1073741824 , %edx
orl $1073741824 , %edx
andb $15 , %ah
andb $15 , %ah
cmpb $15 , %ah
cmpb $15 , %ah
jne L005 notintel
jne L004 notintel
orl $1048576 , %edx
orl $1048576 , %edx
L005 notintel:
L004 notintel:
btl $28 , %edx
btl $28 , %edx
jnc L002generic
jnc L002generic
andl $4026531839 , %edx
andl $4026531839 , %edx
cmpl $0 , %ed i
cmpl $0 , %es i
je L002generic
je L002generic
orl $268435456 , %edx
orl $268435456 , %edx
shrl $16 , %ebx
shrl $16 , %ebx
@ -118,7 +110,15 @@ L002generic:
andl $4294965247 , %ecx
andl $4294965247 , %ecx
movl %edx , %esi
movl %edx , %esi
orl %ecx , %ebp
orl %ecx , %ebp
btl $27 , %ecx
cmpl $7 , %edi
movl 20 ( %esp ), %edi
jb L005no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %edi )
L005no_extended_info:
btl $27 , %ebp
jnc L006clear_avx
jnc L006clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 15 , 1 , 208
.byte 15 , 1 , 208
@ -132,7 +132,6 @@ L008clear_xmm:
andl $4278190079 , %esi
andl $4278190079 , %esi
L006clear_avx:
L006clear_avx:
andl $4026525695 , %ebp
andl $4026525695 , %ebp
movl 20 ( %esp ), %edi
andl $4294967263 , 8 ( %edi )
andl $4294967263 , 8 ( %edi )
L007done:
L007done:
movl %esi , %eax
movl %esi , %eax
@ -35,10 +35,10 @@ $L_OPENSSL_ia32_cpuid_begin::
pop eax
pop eax
xor ecx , eax
xor ecx , eax
xor eax , eax
xor eax , eax
bt ecx , 21
jnc $ L000nocpuid
mov esi , DWORD PTR 20 [ esp ]
mov esi , DWORD PTR 20 [ esp ]
mov DWORD PTR 8 [ esi ], eax
mov DWORD PTR 8 [ esi ], eax
bt ecx , 21
jnc $ L000nocpuid
cpu id
cpu id
mov edi , eax
mov edi , eax
xor eax , eax
xor eax , eax
@ -89,40 +89,32 @@ $L_OPENSSL_ia32_cpuid_begin::
and edx , 4026531839
and edx , 4026531839
jmp $ L002generic
jmp $ L002generic
$L001intel:
$L001intel:
cmp edi , 7
jb $ L003cacheinfo
mov esi , DWORD PTR 20 [ esp ]
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR 8 [ esi ], ebx
$L003cacheinfo:
cmp edi , 4
cmp edi , 4
mov ed i , - 1
mov esi , - 1
jb $ L004 nocacheinfo
jb $ L003nocacheinfo
mov eax , 4
mov eax , 4
mov ecx , 0
mov ecx , 0
cpu id
cpu id
mov ed i , eax
mov esi , eax
shr ed i , 14
shr esi , 14
and ed i , 4095
and es i , 4095
$L004 nocacheinfo:
$L003 nocacheinfo:
mov eax , 1
mov eax , 1
xor ecx , ecx
xor ecx , ecx
cpu id
cpu id
and edx , 3220176895
and edx , 3220176895
cmp ebp , 0
cmp ebp , 0
jne $ L005 notintel
jne $ L004 notintel
or edx , 1073741824
or edx , 1073741824
and ah , 15
and ah , 15
cmp ah , 15
cmp ah , 15
jne $ L005 notintel
jne $ L004 notintel
or edx , 1048576
or edx , 1048576
$L005 notintel:
$L004 notintel:
bt edx , 28
bt edx , 28
jnc $ L002generic
jnc $ L002generic
and edx , 4026531839
and edx , 4026531839
cmp ed i , 0
cmp es i , 0
je $ L002generic
je $ L002generic
or edx , 268435456
or edx , 268435456
shr ebx , 16
shr ebx , 16
@ -134,7 +126,15 @@ $L002generic:
and ecx , 4294965247
and ecx , 4294965247
mov esi , edx
mov esi , edx
or ebp , ecx
or ebp , ecx
bt ecx , 27
cmp edi , 7
mov edi , DWORD PTR 20 [ esp ]
jb $ L005no_extended_info
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR 8 [ edi ], ebx
$L005no_extended_info:
bt ebp , 27
jnc $ L006clear_avx
jnc $ L006clear_avx
xor ecx , ecx
xor ecx , ecx
DB 15 , 1 , 208
DB 15 , 1 , 208
@ -148,7 +148,6 @@ $L008clear_xmm:
and esi , 4278190079
and esi , 4278190079
$L006clear_avx:
$L006clear_avx:
and ebp , 4026525695
and ebp , 4026525695
mov edi , DWORD PTR 20 [ esp ]
and DWORD PTR 8 [ edi ], 4294967263
and DWORD PTR 8 [ edi ], 4294967263
$L007done:
$L007done:
mov eax , esi
mov eax , esi
@ -1298,7 +1298,7 @@ bsaes_cbc_encrypt:
vmov q4 , q15 @ just in case ensure that IV
vmov q4 , q15 @ just in case ensure that IV
vmov q5 , q0 @ and input are preserved
vmov q5 , q0 @ and input are preserved
bl AES_decrypt
bl AES_decrypt
vld1.8 { q0 } , [ r9 ,: 64 ] @ load result
vld1.8 { q0 } , [ r9 ] @ load result
veor q0 , q0 , q4 @ ^ = IV
veor q0 , q0 , q4 @ ^ = IV
vmov q15 , q5 @ q5 holds input
vmov q15 , q5 @ q5 holds input
vst1.8 { q0 } , [ r10 ] @ write output
vst1.8 { q0 } , [ r10 ] @ write output
@ -1389,6 +1389,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm2
movups 16 ( %rcx ), %xmm0
movups 16 ( %rcx ), %xmm0
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -107,14 +107,6 @@ OPENSSL_ia32_cpuid:
shrl $14 , %r10d
shrl $14 , %r10d
andl $0xfff , %r10d
andl $0xfff , %r10d
cmpl $7 , %r11d
jb .Lnocacheinfo
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
.Lnocacheinfo:
.Lnocacheinfo:
movl $1 , %eax
movl $1 , %eax
cpuid
cpuid
@ -144,6 +136,15 @@ OPENSSL_ia32_cpuid:
orl %ecx , %r9d
orl %ecx , %r9d
movl %edx , %r10d
movl %edx , %r10d
cmpl $7 , %r11d
jb .Lno_extended_info
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
.Lno_extended_info:
btl $27 , %r9d
btl $27 , %r9d
jnc .Lclear_avx
jnc .Lclear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
@ -1389,6 +1389,7 @@ aesni_cbc_sha1_enc_shaext:
movl 240 ( %rcx ), %r11d
movl 240 ( %rcx ), %r11d
subq %rdi , %rsi
subq %rdi , %rsi
movups ( %rcx ), %xmm15
movups ( %rcx ), %xmm15
movups ( %r8 ), %xmm2
movups 16 ( %rcx ), %xmm0
movups 16 ( %rcx ), %xmm0
leaq 112 ( %rcx ), %rcx
leaq 112 ( %rcx ), %rcx
@ -108,14 +108,6 @@ L$intel:
shrl $14 , %r10d
shrl $14 , %r10d
andl $0xfff , %r10d
andl $0xfff , %r10d
cmpl $7 , %r11d
jb L$nocacheinfo
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
L$nocacheinfo:
L$nocacheinfo:
movl $1 , %eax
movl $1 , %eax
cpuid
cpuid
@ -145,6 +137,15 @@ L$generic:
orl %ecx , %r9d
orl %ecx , %r9d
movl %edx , %r10d
movl %edx , %r10d
cmpl $7 , %r11d
jb L$no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
cpuid
movl %ebx , 8 ( %rdi )
L$no_extended_info:
btl $27 , %r9d
btl $27 , %r9d
jnc L$clear_avx
jnc L$clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
@ -1454,6 +1454,7 @@ $L$prologue_shaext::
mov r11d , DWORD PTR [ 240 + rcx ]
mov r11d , DWORD PTR [ 240 + rcx ]
sub rsi , rdi
sub rsi , rdi
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm15 , XMMWORD PTR [ rcx ]
movups xmm2 , XMMWORD PTR [ r8 ]
movups xmm0 , XMMWORD PTR [ 16 + rcx ]
movups xmm0 , XMMWORD PTR [ 16 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
lea rcx , QWORD PTR [ 112 + rcx ]
@ -118,14 +118,6 @@ $L$intel::
shr r10d , 14
shr r10d , 14
and r10d , 0fffh
and r10d , 0fffh
cmp r11d , 7
jb $ L$nocacheinfo
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR [ 8 + rdi ], ebx
$L$nocacheinfo: :
$L$nocacheinfo: :
mov eax , 1
mov eax , 1
cpu id
cpu id
@ -155,6 +147,15 @@ $L$generic::
or r9d , ecx
or r9d , ecx
mov r10d , edx
mov r10d , edx
cmp r11d , 7
jb $ L$no_extended_info
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR [ 8 + rdi ], ebx
$L$no_extended_info: :
bt r9d , 27
bt r9d , 27
jnc $ L$clear_avx
jnc $ L$clear_avx
xor ecx , ecx
xor ecx , ecx
@ -20,10 +20,10 @@ OPENSSL_ia32_cpuid:
popl %eax
popl %eax
xorl %eax , %ecx
xorl %eax , %ecx
xorl %eax , %eax
xorl %eax , %eax
btl $21 , %ecx
jnc .L000nocpuid
movl 20 ( %esp ), %esi
movl 20 ( %esp ), %esi
movl %eax , 8 ( %esi )
movl %eax , 8 ( %esi )
btl $21 , %ecx
jnc .L000nocpuid
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %edi
movl %eax , %edi
xorl %eax , %eax
xorl %eax , %eax
@ -74,40 +74,32 @@ OPENSSL_ia32_cpuid:
andl $4026531839 , %edx
andl $4026531839 , %edx
jmp .L002generic
jmp .L002generic
.L001intel:
.L001intel:
cmpl $7 , %edi
jb .L003cacheinfo
movl 20 ( %esp ), %esi
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %esi )
.L003cacheinfo:
cmpl $4 , %edi
cmpl $4 , %edi
movl $-1 , %ed i
movl $-1 , %esi
jb .L004 nocacheinfo
jb .L003nocacheinfo
movl $4 , %eax
movl $4 , %eax
movl $0 , %ecx
movl $0 , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %ed i
movl %eax , %esi
shrl $14 , %ed i
shrl $14 , %esi
andl $4095 , %ed i
andl $4095 , %es i
.L004 nocacheinfo:
.L003 nocacheinfo:
movl $1 , %eax
movl $1 , %eax
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
andl $3220176895 , %edx
andl $3220176895 , %edx
cmpl $0 , %ebp
cmpl $0 , %ebp
jne .L005 notintel
jne .L004 notintel
orl $1073741824 , %edx
orl $1073741824 , %edx
andb $15 , %ah
andb $15 , %ah
cmpb $15 , %ah
cmpb $15 , %ah
jne .L005 notintel
jne .L004 notintel
orl $1048576 , %edx
orl $1048576 , %edx
.L005 notintel:
.L004 notintel:
btl $28 , %edx
btl $28 , %edx
jnc .L002generic
jnc .L002generic
andl $4026531839 , %edx
andl $4026531839 , %edx
cmpl $0 , %ed i
cmpl $0 , %es i
je .L002generic
je .L002generic
orl $268435456 , %edx
orl $268435456 , %edx
shrl $16 , %ebx
shrl $16 , %ebx
@ -119,7 +111,15 @@ OPENSSL_ia32_cpuid:
andl $4294965247 , %ecx
andl $4294965247 , %ecx
movl %edx , %esi
movl %edx , %esi
orl %ecx , %ebp
orl %ecx , %ebp
btl $27 , %ecx
cmpl $7 , %edi
movl 20 ( %esp ), %edi
jb .L005no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %edi )
.L005no_extended_info:
btl $27 , %ebp
jnc .L006clear_avx
jnc .L006clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 15 , 1 , 208
.byte 15 , 1 , 208
@ -133,7 +133,6 @@ OPENSSL_ia32_cpuid:
andl $4278190079 , %esi
andl $4278190079 , %esi
.L006clear_avx:
.L006clear_avx:
andl $4026525695 , %ebp
andl $4026525695 , %ebp
movl 20 ( %esp ), %edi
andl $4294967263 , 8 ( %edi )
andl $4294967263 , 8 ( %edi )
.L007done:
.L007done:
movl %esi , %eax
movl %esi , %eax
@ -19,10 +19,10 @@ L_OPENSSL_ia32_cpuid_begin:
popl %eax
popl %eax
xorl %eax , %ecx
xorl %eax , %ecx
xorl %eax , %eax
xorl %eax , %eax
btl $21 , %ecx
jnc L000nocpuid
movl 20 ( %esp ), %esi
movl 20 ( %esp ), %esi
movl %eax , 8 ( %esi )
movl %eax , 8 ( %esi )
btl $21 , %ecx
jnc L000nocpuid
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %edi
movl %eax , %edi
xorl %eax , %eax
xorl %eax , %eax
@ -73,40 +73,32 @@ L_OPENSSL_ia32_cpuid_begin:
andl $4026531839 , %edx
andl $4026531839 , %edx
jmp L002generic
jmp L002generic
L001intel:
L001intel:
cmpl $7 , %edi
jb L003cacheinfo
movl 20 ( %esp ), %esi
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %esi )
L003cacheinfo:
cmpl $4 , %edi
cmpl $4 , %edi
movl $-1 , %ed i
movl $-1 , %esi
jb L004 nocacheinfo
jb L003nocacheinfo
movl $4 , %eax
movl $4 , %eax
movl $0 , %ecx
movl $0 , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
movl %eax , %ed i
movl %eax , %esi
shrl $14 , %ed i
shrl $14 , %esi
andl $4095 , %ed i
andl $4095 , %es i
L004 nocacheinfo:
L003 nocacheinfo:
movl $1 , %eax
movl $1 , %eax
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 0x0f , 0xa2
.byte 0x0f , 0xa2
andl $3220176895 , %edx
andl $3220176895 , %edx
cmpl $0 , %ebp
cmpl $0 , %ebp
jne L005 notintel
jne L004 notintel
orl $1073741824 , %edx
orl $1073741824 , %edx
andb $15 , %ah
andb $15 , %ah
cmpb $15 , %ah
cmpb $15 , %ah
jne L005 notintel
jne L004 notintel
orl $1048576 , %edx
orl $1048576 , %edx
L005 notintel:
L004 notintel:
btl $28 , %edx
btl $28 , %edx
jnc L002generic
jnc L002generic
andl $4026531839 , %edx
andl $4026531839 , %edx
cmpl $0 , %ed i
cmpl $0 , %es i
je L002generic
je L002generic
orl $268435456 , %edx
orl $268435456 , %edx
shrl $16 , %ebx
shrl $16 , %ebx
@ -118,7 +110,15 @@ L002generic:
andl $4294965247 , %ecx
andl $4294965247 , %ecx
movl %edx , %esi
movl %edx , %esi
orl %ecx , %ebp
orl %ecx , %ebp
btl $27 , %ecx
cmpl $7 , %edi
movl 20 ( %esp ), %edi
jb L005no_extended_info
movl $7 , %eax
xorl %ecx , %ecx
.byte 0x0f , 0xa2
movl %ebx , 8 ( %edi )
L005no_extended_info:
btl $27 , %ebp
jnc L006clear_avx
jnc L006clear_avx
xorl %ecx , %ecx
xorl %ecx , %ecx
.byte 15 , 1 , 208
.byte 15 , 1 , 208
@ -132,7 +132,6 @@ L008clear_xmm:
andl $4278190079 , %esi
andl $4278190079 , %esi
L006clear_avx:
L006clear_avx:
andl $4026525695 , %ebp
andl $4026525695 , %ebp
movl 20 ( %esp ), %edi
andl $4294967263 , 8 ( %edi )
andl $4294967263 , 8 ( %edi )
L007done:
L007done:
movl %esi , %eax
movl %esi , %eax
@ -35,10 +35,10 @@ $L_OPENSSL_ia32_cpuid_begin::
pop eax
pop eax
xor ecx , eax
xor ecx , eax
xor eax , eax
xor eax , eax
bt ecx , 21
jnc $ L000nocpuid
mov esi , DWORD PTR 20 [ esp ]
mov esi , DWORD PTR 20 [ esp ]
mov DWORD PTR 8 [ esi ], eax
mov DWORD PTR 8 [ esi ], eax
bt ecx , 21
jnc $ L000nocpuid
cpu id
cpu id
mov edi , eax
mov edi , eax
xor eax , eax
xor eax , eax
@ -89,40 +89,32 @@ $L_OPENSSL_ia32_cpuid_begin::
and edx , 4026531839
and edx , 4026531839
jmp $ L002generic
jmp $ L002generic
$L001intel:
$L001intel:
cmp edi , 7
jb $ L003cacheinfo
mov esi , DWORD PTR 20 [ esp ]
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR 8 [ esi ], ebx
$L003cacheinfo:
cmp edi , 4
cmp edi , 4
mov ed i , - 1
mov esi , - 1
jb $ L004 nocacheinfo
jb $ L003nocacheinfo
mov eax , 4
mov eax , 4
mov ecx , 0
mov ecx , 0
cpu id
cpu id
mov ed i , eax
mov esi , eax
shr ed i , 14
shr esi , 14
and ed i , 4095
and es i , 4095
$L004 nocacheinfo:
$L003 nocacheinfo:
mov eax , 1
mov eax , 1
xor ecx , ecx
xor ecx , ecx
cpu id
cpu id
and edx , 3220176895
and edx , 3220176895
cmp ebp , 0
cmp ebp , 0
jne $ L005 notintel
jne $ L004 notintel
or edx , 1073741824
or edx , 1073741824
and ah , 15
and ah , 15
cmp ah , 15
cmp ah , 15
jne $ L005 notintel
jne $ L004 notintel
or edx , 1048576
or edx , 1048576
$L005 notintel:
$L004 notintel:
bt edx , 28
bt edx , 28
jnc $ L002generic
jnc $ L002generic
and edx , 4026531839
and edx , 4026531839
cmp ed i , 0
cmp es i , 0
je $ L002generic
je $ L002generic
or edx , 268435456
or edx , 268435456
shr ebx , 16
shr ebx , 16
@ -134,7 +126,15 @@ $L002generic:
and ecx , 4294965247
and ecx , 4294965247
mov esi , edx
mov esi , edx
or ebp , ecx
or ebp , ecx
bt ecx , 27
cmp edi , 7
mov edi , DWORD PTR 20 [ esp ]
jb $ L005no_extended_info
mov eax , 7
xor ecx , ecx
cpu id
mov DWORD PTR 8 [ edi ], ebx
$L005no_extended_info:
bt ebp , 27
jnc $ L006clear_avx
jnc $ L006clear_avx
xor ecx , ecx
xor ecx , ecx
DB 15 , 1 , 208
DB 15 , 1 , 208
@ -148,7 +148,6 @@ $L008clear_xmm:
and esi , 4278190079
and esi , 4278190079
$L006clear_avx:
$L006clear_avx:
and ebp , 4026525695
and ebp , 4026525695
mov edi , DWORD PTR 20 [ esp ]
and DWORD PTR 8 [ edi ], 4294967263
and DWORD PTR 8 [ edi ], 4294967263
$L007done:
$L007done:
mov eax , esi
mov eax , esi