Commit f0f54117 authored by Janne Grunau's avatar Janne Grunau

checkasm: x86: post commit review fixes

Check the full FPU tag word instead of only the lower half and simplify
the comparison.
Use upper-case function base name as macro name to instantiate both
checked_call variants.
parent f4f27e4c
...@@ -98,7 +98,7 @@ cglobal stack_clobber, 1,2 ...@@ -98,7 +98,7 @@ cglobal stack_clobber, 1,2
; void checkasm_checked_call(void *func, ...) ; void checkasm_checked_call(void *func, ...)
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
INIT_XMM INIT_XMM
%macro check_call 0-1 %macro CHECKED_CALL 0-1
cglobal checked_call%1, 2,15,16,max_args*8+8 cglobal checked_call%1, 2,15,16,max_args*8+8
mov t0, r0 mov t0, r0
...@@ -171,9 +171,8 @@ cglobal checked_call%1, 2,15,16,max_args*8+8 ...@@ -171,9 +171,8 @@ cglobal checked_call%1, 2,15,16,max_args*8+8
.clobber_ok: .clobber_ok:
%ifnid %1, _emms %ifnid %1, _emms
fstenv [rsp] fstenv [rsp]
mov r9h, [rsp + 8] cmp word [rsp + 8], 0xffff
add r9h, 1 je .emms_ok
jz .emms_ok
report_fail error_message_emms report_fail error_message_emms
emms emms
.emms_ok: .emms_ok:
...@@ -201,7 +200,7 @@ cglobal checked_call%1, 2,15,16,max_args*8+8 ...@@ -201,7 +200,7 @@ cglobal checked_call%1, 2,15,16,max_args*8+8
mov eax, r3 mov eax, r3
%endmacro %endmacro
%macro check_call 0-1 %macro CHECKED_CALL 0-1
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; void checkasm_checked_call(void *func, ...) ; void checkasm_checked_call(void *func, ...)
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
...@@ -225,10 +224,9 @@ cglobal checked_call%1, 1,7 ...@@ -225,10 +224,9 @@ cglobal checked_call%1, 1,7
report_fail error_message report_fail error_message
.clobber_ok: .clobber_ok:
%ifnid %1, _emms %ifnid %1, _emms
fstenv [rsp] fstenv [esp]
mov r3h, [rsp + 8] cmp word [esp + 8], 0xffff
add r3h, 1 je .emms_ok
jz .emms_ok
report_fail error_message_emms report_fail error_message_emms
emms emms
.emms_ok: .emms_ok:
...@@ -241,5 +239,5 @@ cglobal checked_call%1, 1,7 ...@@ -241,5 +239,5 @@ cglobal checked_call%1, 1,7
%endif ; ARCH_X86_64 %endif ; ARCH_X86_64
check_call CHECKED_CALL
check_call _emms CHECKED_CALL _emms
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment