mirror of https://github.com/lukechilds/node.git
Browse Source
deps/openssl/asm/x64-win32-masm/x86_64cpuid.asm.orig was accidentally committed before. PR: #9451 PR-URL: https://github.com/joyent/node/pull/9451 Reviewed-By: Julien Gilli <julien.gilli@joyent.com>v0.12.1-release
committed by
Julien Gilli
1 changed files with 0 additions and 235 deletions
@ -1,235 +0,0 @@ |
|||
OPTION DOTNAME |
|||
EXTERN OPENSSL_cpuid_setup:NEAR |
|||
<<<<<<< HEAD |
|||
======= |
|||
|
|||
>>>>>>> openssl: regenerate asm files for openssl 1.0.1 |
|||
.CRT$XCU SEGMENT READONLY ALIGN(8) |
|||
DQ OPENSSL_cpuid_setup |
|||
|
|||
|
|||
.CRT$XCU ENDS |
|||
_DATA SEGMENT |
|||
COMM OPENSSL_ia32cap_P:DWORD:2 |
|||
|
|||
_DATA ENDS |
|||
.text$ SEGMENT ALIGN(64) 'CODE' |
|||
|
|||
PUBLIC OPENSSL_atomic_add |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_atomic_add PROC PUBLIC |
|||
mov eax,DWORD PTR[rcx] |
|||
$L$spin:: lea r8,QWORD PTR[rax*1+rdx] |
|||
DB 0f0h |
|||
|
|||
cmpxchg DWORD PTR[rcx],r8d |
|||
jne $L$spin |
|||
mov eax,r8d |
|||
DB 048h,098h |
|||
|
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_atomic_add ENDP |
|||
|
|||
PUBLIC OPENSSL_rdtsc |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_rdtsc PROC PUBLIC |
|||
rdtsc |
|||
shl rdx,32 |
|||
or rax,rdx |
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_rdtsc ENDP |
|||
|
|||
PUBLIC OPENSSL_ia32_cpuid |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_ia32_cpuid PROC PUBLIC |
|||
mov r8,rbx |
|||
|
|||
xor eax,eax |
|||
cpuid |
|||
mov r11d,eax |
|||
|
|||
xor eax,eax |
|||
cmp ebx,0756e6547h |
|||
setne al |
|||
mov r9d,eax |
|||
cmp edx,049656e69h |
|||
setne al |
|||
or r9d,eax |
|||
cmp ecx,06c65746eh |
|||
setne al |
|||
or r9d,eax |
|||
jz $L$intel |
|||
|
|||
cmp ebx,068747541h |
|||
setne al |
|||
mov r10d,eax |
|||
cmp edx,069746E65h |
|||
setne al |
|||
or r10d,eax |
|||
cmp ecx,0444D4163h |
|||
setne al |
|||
or r10d,eax |
|||
jnz $L$intel |
|||
|
|||
|
|||
mov eax,080000000h |
|||
cpuid |
|||
cmp eax,080000001h |
|||
jb $L$intel |
|||
mov r10d,eax |
|||
mov eax,080000001h |
|||
cpuid |
|||
or r9d,ecx |
|||
and r9d,000000801h |
|||
|
|||
cmp r10d,080000008h |
|||
jb $L$intel |
|||
|
|||
mov eax,080000008h |
|||
cpuid |
|||
movzx r10,cl |
|||
inc r10 |
|||
|
|||
mov eax,1 |
|||
cpuid |
|||
bt edx,28 |
|||
jnc $L$generic |
|||
shr ebx,16 |
|||
cmp bl,r10b |
|||
ja $L$generic |
|||
and edx,0efffffffh |
|||
jmp $L$generic |
|||
|
|||
$L$intel:: |
|||
cmp r11d,4 |
|||
mov r10d,-1 |
|||
jb $L$nocacheinfo |
|||
|
|||
mov eax,4 |
|||
mov ecx,0 |
|||
cpuid |
|||
mov r10d,eax |
|||
shr r10d,14 |
|||
and r10d,0fffh |
|||
|
|||
$L$nocacheinfo:: |
|||
mov eax,1 |
|||
cpuid |
|||
and edx,0bfefffffh |
|||
cmp r9d,0 |
|||
jne $L$notintel |
|||
or edx,040000000h |
|||
and ah,15 |
|||
cmp ah,15 |
|||
jne $L$notintel |
|||
or edx,000100000h |
|||
$L$notintel:: |
|||
bt edx,28 |
|||
jnc $L$generic |
|||
and edx,0efffffffh |
|||
cmp r10d,0 |
|||
je $L$generic |
|||
|
|||
or edx,010000000h |
|||
shr ebx,16 |
|||
cmp bl,1 |
|||
ja $L$generic |
|||
and edx,0efffffffh |
|||
$L$generic:: |
|||
and r9d,000000800h |
|||
and ecx,0fffff7ffh |
|||
or r9d,ecx |
|||
|
|||
mov r10d,edx |
|||
bt r9d,27 |
|||
jnc $L$clear_avx |
|||
xor ecx,ecx |
|||
DB 00fh,001h,0d0h |
|||
|
|||
and eax,6 |
|||
cmp eax,6 |
|||
je $L$done |
|||
$L$clear_avx:: |
|||
mov eax,0efffe7ffh |
|||
and r9d,eax |
|||
$L$done:: |
|||
shl r9,32 |
|||
mov eax,r10d |
|||
mov rbx,r8 |
|||
or rax,r9 |
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_ia32_cpuid ENDP |
|||
|
|||
PUBLIC OPENSSL_cleanse |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_cleanse PROC PUBLIC |
|||
xor rax,rax |
|||
cmp rdx,15 |
|||
jae $L$ot |
|||
cmp rdx,0 |
|||
je $L$ret |
|||
$L$ittle:: |
|||
mov BYTE PTR[rcx],al |
|||
sub rdx,1 |
|||
lea rcx,QWORD PTR[1+rcx] |
|||
jnz $L$ittle |
|||
$L$ret:: |
|||
DB 0F3h,0C3h ;repret |
|||
ALIGN 16 |
|||
$L$ot:: |
|||
test rcx,7 |
|||
jz $L$aligned |
|||
mov BYTE PTR[rcx],al |
|||
lea rdx,QWORD PTR[((-1))+rdx] |
|||
lea rcx,QWORD PTR[1+rcx] |
|||
jmp $L$ot |
|||
$L$aligned:: |
|||
mov QWORD PTR[rcx],rax |
|||
lea rdx,QWORD PTR[((-8))+rdx] |
|||
test rdx,-8 |
|||
lea rcx,QWORD PTR[8+rcx] |
|||
jnz $L$aligned |
|||
cmp rdx,0 |
|||
jne $L$ittle |
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_cleanse ENDP |
|||
PUBLIC OPENSSL_wipe_cpu |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_wipe_cpu PROC PUBLIC |
|||
pxor xmm0,xmm0 |
|||
pxor xmm1,xmm1 |
|||
pxor xmm2,xmm2 |
|||
pxor xmm3,xmm3 |
|||
pxor xmm4,xmm4 |
|||
pxor xmm5,xmm5 |
|||
xor rcx,rcx |
|||
xor rdx,rdx |
|||
xor r8,r8 |
|||
xor r9,r9 |
|||
xor r10,r10 |
|||
xor r11,r11 |
|||
lea rax,QWORD PTR[8+rsp] |
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_wipe_cpu ENDP |
|||
PUBLIC OPENSSL_ia32_rdrand |
|||
|
|||
ALIGN 16 |
|||
OPENSSL_ia32_rdrand PROC PUBLIC |
|||
mov ecx,8 |
|||
$L$oop_rdrand:: |
|||
DB 72,15,199,240 |
|||
jc $L$break_rdrand |
|||
loop $L$oop_rdrand |
|||
$L$break_rdrand:: |
|||
cmp rax,0 |
|||
cmove rax,rcx |
|||
DB 0F3h,0C3h ;repret |
|||
OPENSSL_ia32_rdrand ENDP |
|||
|
|||
.text$ ENDS |
|||
END |
Loading…
Reference in new issue