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