aboutsummaryrefslogtreecommitdiffstats
path: root/tests/checkasm/x86
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-06-01 18:50:49 -0300
committerJames Almer <jamrial@gmail.com>2017-06-14 19:18:56 -0300
commit37388b119cf814c2af349e7acba32e33ea30c343 (patch)
tree59b0cfd8e2c39a3f89f8ca68cbbfc710cf90e11b /tests/checkasm/x86
parent12245ab1f677074b8ff83e87f76a41aba692ccd6 (diff)
downloadffmpeg-37388b119cf814c2af349e7acba32e33ea30c343.tar.gz
checkasm: add a checkasm_checked_call function that doesn't issue emms
Meant for DSP functions returning a float or double, as they'd fail if emms is called after every run on x86_32. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'tests/checkasm/x86')
-rw-r--r--tests/checkasm/x86/checkasm.asm13
1 files changed, 7 insertions, 6 deletions
diff --git a/tests/checkasm/x86/checkasm.asm b/tests/checkasm/x86/checkasm.asm
index d12333b308..683aae80e3 100644
--- a/tests/checkasm/x86/checkasm.asm
+++ b/tests/checkasm/x86/checkasm.asm
@@ -169,15 +169,15 @@ cglobal checked_call%1, 2,15,16,max_args*8+8
jz .clobber_ok
report_fail error_message
.clobber_ok:
-%ifnid %1, _emms
+%ifidn %1, _emms
+ emms
+%elifnidn %1, _float
fstenv [rsp]
cmp word [rsp + 8], 0xffff
je .emms_ok
report_fail error_message_emms
emms
.emms_ok:
-%else
- emms
%endif
RET
%endmacro
@@ -223,15 +223,15 @@ cglobal checked_call%1, 1,7
jz .clobber_ok
report_fail error_message
.clobber_ok:
-%ifnid %1, _emms
+%ifidn %1, _emms
+ emms
+%elifnidn %1, _float
fstenv [esp]
cmp word [esp + 8], 0xffff
je .emms_ok
report_fail error_message_emms
emms
.emms_ok:
-%else
- emms
%endif
add esp, max_args*4
REP_RET
@@ -241,3 +241,4 @@ cglobal checked_call%1, 1,7
CHECKED_CALL
CHECKED_CALL _emms
+CHECKED_CALL _float