mirror of
https://github.com/reactos/reactos.git
synced 2025-02-21 16:04:57 +00:00
[LIBM] Fix up some asm files
This allows to compile them with GAS after translation
This commit is contained in:
parent
af6d3bb18f
commit
105426b81a
5 changed files with 32 additions and 32 deletions
|
@ -90,12 +90,12 @@ fmod PROC FRAME
|
|||
fnclex ; clear exception flags
|
||||
; in preparation for fprem
|
||||
|
||||
@@:
|
||||
@again:
|
||||
DB 0d9h, 0f8h ; fprem
|
||||
|
||||
DB 09bh, 0dfh, 0e0h ; fstsw ax
|
||||
test ax, 4 SHL X87SW_C
|
||||
jnz @b ; do it again in case of partial result
|
||||
jnz @again ; do it again in case of partial result
|
||||
|
||||
DB 0ddh, 01ch, 024h ; fstp QWORD PTR [rsp]
|
||||
movlpd xmm0, QWORD PTR [rsp] ; result
|
||||
|
@ -133,14 +133,14 @@ fmod PROC FRAME
|
|||
@raise:
|
||||
mov eax, INVALID ; raise exception
|
||||
mov r8, FPIND
|
||||
jmp @f
|
||||
jmp @fail
|
||||
|
||||
@error:
|
||||
xor eax, eax ; no exception
|
||||
movd r8, xmm0
|
||||
jmp @f
|
||||
jmp @fail
|
||||
|
||||
@@:
|
||||
@fail:
|
||||
lea rcx, [@fmodz] ; fname
|
||||
mov edx, FPCODEFMOD ; opcode
|
||||
; mov r8, INDEF ; value
|
||||
|
|
|
@ -90,12 +90,12 @@ fmodf PROC FRAME
|
|||
fnclex ; clear exception flags
|
||||
; in preparation for fprem
|
||||
|
||||
@@:
|
||||
@again:
|
||||
DB 0d9h, 0f8h ; fprem
|
||||
|
||||
DB 9bh, 0dfh, 0e0h ; fstsw ax
|
||||
test ax, 00400h
|
||||
jnz @b ; do it again in case of partial result
|
||||
jnz @again ; do it again in case of partial result
|
||||
|
||||
DB 0d9h, 1ch, 24h ; fstp DWORD PTR [rsp]
|
||||
movss xmm0, DWORD PTR [rsp] ; result
|
||||
|
@ -133,14 +133,14 @@ fmodf PROC FRAME
|
|||
@raise:
|
||||
mov eax, INVALID ; raise exception
|
||||
mov r8d, FPIND
|
||||
jmp @f
|
||||
jmp @fail
|
||||
|
||||
@error:
|
||||
xor eax, eax ; no exception
|
||||
movd r8d, xmm0
|
||||
jmp @f
|
||||
jmp @fail
|
||||
|
||||
@@:
|
||||
@fail:
|
||||
lea rcx, [@fmodfz] ; fname
|
||||
mov edx, FPCODEFMOD ; opcode
|
||||
; mov r8d, [rsp] ; value
|
||||
|
|
|
@ -391,11 +391,11 @@ Llog_fma3:
|
|||
xor rax,rax
|
||||
vpsrlq xmm3,xmm0,52
|
||||
vmovq rax,xmm0
|
||||
vpsubq xmm3,xmm3,QWORD PTR __mask_1023
|
||||
vpsubq xmm3,xmm3,XMMWORD PTR __mask_1023
|
||||
vcvtdq2pd xmm6,xmm3 ; xexp
|
||||
|
||||
; NaN or inf
|
||||
vpand xmm5,xmm0,QWORD PTR __real_inf
|
||||
vpand xmm5,xmm0,XMMWORD PTR __real_inf
|
||||
vcomisd xmm5,QWORD PTR __real_inf
|
||||
je Llog_fma3_x_is_inf_or_nan
|
||||
|
||||
|
@ -404,7 +404,7 @@ Llog_fma3:
|
|||
vcomisd xmm0,xmm5
|
||||
jbe Llog_fma3_x_is_zero_or_neg
|
||||
|
||||
vpand xmm2,xmm0,QWORD PTR __real_mant
|
||||
vpand xmm2,xmm0,XMMWORD PTR __real_mant
|
||||
vsubsd xmm4,xmm0,QWORD PTR __real_one
|
||||
|
||||
vcomisd xmm6,QWORD PTR __mask_1023_f
|
||||
|
@ -412,21 +412,21 @@ Llog_fma3:
|
|||
|
||||
Llog_fma3_continue_common:
|
||||
; compute index into the log tables
|
||||
vpand xmm1,xmm0,QWORD PTR __mask_mant_all8
|
||||
vpand xmm3,xmm0,QWORD PTR __mask_mant9
|
||||
vpand xmm1,xmm0,XMMWORD PTR __mask_mant_all8
|
||||
vpand xmm3,xmm0,XMMWORD PTR __mask_mant9
|
||||
vpsllq xmm3,xmm3,1
|
||||
vpaddq xmm1,xmm3,xmm1
|
||||
vmovq rax,xmm1
|
||||
|
||||
; near one codepath
|
||||
vpand xmm4,xmm4,QWORD PTR __real_notsign
|
||||
vpand xmm4,xmm4,XMMWORD PTR __real_notsign
|
||||
vcomisd xmm4,QWORD PTR __real_threshold
|
||||
jb Llog_fma3_near_one
|
||||
|
||||
; F,Y
|
||||
shr rax,44
|
||||
vpor xmm2,xmm2,QWORD PTR __real_half
|
||||
vpor xmm1,xmm1,QWORD PTR __real_half
|
||||
vpor xmm2,xmm2,XMMWORD PTR __real_half
|
||||
vpor xmm1,xmm1,XMMWORD PTR __real_half
|
||||
lea r9,QWORD PTR __log_F_inv_qword
|
||||
|
||||
; f = F - Y,r = f * inv
|
||||
|
@ -501,10 +501,10 @@ Llog_fma3_near_one:
|
|||
|
||||
|
||||
Llog_fma3_denormal_adjust:
|
||||
vpor xmm2,xmm2,QWORD PTR __real_one
|
||||
vpor xmm2,xmm2,XMMWORD PTR __real_one
|
||||
vsubsd xmm2,xmm2,QWORD PTR __real_one
|
||||
vpsrlq xmm5,xmm2,52
|
||||
vpand xmm2,xmm2,QWORD PTR __real_mant
|
||||
vpand xmm2,xmm2,XMMWORD PTR __real_mant
|
||||
vmovapd xmm0,xmm2
|
||||
vpsubd xmm5,xmm5,XMMWORD PTR __mask_2045
|
||||
vcvtdq2pd xmm6,xmm5
|
||||
|
|
|
@ -382,7 +382,7 @@ Llog10_fma3:
|
|||
xor rax,rax
|
||||
vpsrlq xmm3,xmm0,52
|
||||
vmovq rax,xmm0
|
||||
vpsubq xmm3,xmm3,QWORD PTR __int_1023
|
||||
vpsubq xmm3,xmm3,XMMWORD PTR __int_1023
|
||||
vcvtdq2pd xmm6,xmm3 ; xmm6 <-- (double)xexp
|
||||
|
||||
; NaN or Inf?
|
||||
|
@ -404,21 +404,21 @@ Llog10_fma3:
|
|||
|
||||
Llog10_fma3_continue_common:
|
||||
; compute index into the log tables
|
||||
vpand xmm1,xmm0,DWORD PTR __mask_mant_top8
|
||||
vpand xmm3,xmm0,DWORD PTR __mask_mant9
|
||||
vpand xmm1,xmm0,XMMWORD PTR __mask_mant_top8
|
||||
vpand xmm3,xmm0,XMMWORD PTR __mask_mant9
|
||||
vpsllq xmm3,xmm3,1
|
||||
vpaddq xmm1,xmm3,xmm1
|
||||
vmovq rax,xmm1
|
||||
|
||||
; near one codepath
|
||||
vpand xmm4,xmm4,DWORD PTR __real_notsign
|
||||
vpand xmm4,xmm4,XMMWORD PTR __real_notsign
|
||||
vcomisd xmm4,QWORD PTR __real_threshold
|
||||
jb Llog10_fma3_near_one
|
||||
|
||||
; F,Y
|
||||
shr rax,44
|
||||
vpor xmm2,xmm2,DWORD PTR __real_half
|
||||
vpor xmm1,xmm1,DWORD PTR __real_half
|
||||
vpor xmm2,xmm2,XMMWORD PTR __real_half
|
||||
vpor xmm1,xmm1,XMMWORD PTR __real_half
|
||||
lea r9,DWORD PTR __log_F_inv_qword
|
||||
|
||||
; f = F - Y,r = f * inv
|
||||
|
@ -486,7 +486,7 @@ Llog10_fma3_near_one:
|
|||
vmulsd xmm5,xmm5,xmm2
|
||||
vaddsd xmm4,xmm4,xmm5
|
||||
vsubsd xmm4,xmm4,xmm6
|
||||
vpand xmm3,xmm0,QWORD PTR __mask_lower
|
||||
vpand xmm3,xmm0,XMMWORD PTR __mask_lower
|
||||
vsubsd xmm0,xmm0,xmm3
|
||||
vaddsd xmm4,xmm4,xmm0
|
||||
|
||||
|
@ -505,12 +505,12 @@ Llog10_fma3_near_one:
|
|||
|
||||
|
||||
Llog10_fma3_denormal_adjust:
|
||||
vpor xmm2,xmm2,QWORD PTR __real_one
|
||||
vpor xmm2,xmm2,XMMWORD PTR __real_one
|
||||
vsubsd xmm2,xmm2,QWORD PTR __real_one
|
||||
vpsrlq xmm5,xmm2,52
|
||||
vpand xmm2,xmm2,QWORD PTR __mask_mant
|
||||
vpand xmm2,xmm2,XMMWORD PTR __mask_mant
|
||||
vmovapd xmm0,xmm2
|
||||
vpsubd xmm5,xmm5,DWORD PTR __mask_2045
|
||||
vpsubd xmm5,xmm5,XMMWORD PTR __mask_2045
|
||||
vcvtdq2pd xmm6,xmm5
|
||||
jmp Llog10_fma3_continue_common
|
||||
|
||||
|
|
|
@ -1219,7 +1219,7 @@ Lpow_sse2_near_one:
|
|||
movsd xmm3, QWORD PTR [r9+r8*8]
|
||||
addsd xmm3, QWORD PTR [rdx+r8*8]
|
||||
mulsd xmm4, xmm3
|
||||
andpd xmm4, QWORD PTR __real_fffffffff8000000
|
||||
andpd xmm4, XMMWORD PTR __real_fffffffff8000000
|
||||
movsd xmm5, xmm4 ; r1
|
||||
mulsd xmm4, xmm0
|
||||
subsd xmm1, xmm4
|
||||
|
@ -2028,7 +2028,7 @@ Lpow_fma3_near_one:
|
|||
vmovsd xmm3, QWORD PTR [r9+r8*8]
|
||||
vaddsd xmm3, xmm3, QWORD PTR [rdx+r8*8]
|
||||
vmulsd xmm4, xmm4, xmm3 ; xmm4 <-- r = f*inv
|
||||
vandpd xmm4, xmm4, QWORD PTR __real_fffffffff8000000 ; r1
|
||||
vandpd xmm4, xmm4, XMMWORD PTR __real_fffffffff8000000 ; r1
|
||||
vmovapd xmm5, xmm4 ; xmm5 <-- copy of r1
|
||||
; mulsd xmm4, xmm0 ; xmm4 <-- F*r1
|
||||
; subsd xmm1, xmm4 ; xmm1 <-- f - F*r1
|
||||
|
|
Loading…
Reference in a new issue