From 756002eef89d260672208d49386d2cb424581b86 Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Tue, 9 Sep 2025 19:09:31 +0100 Subject: [PATCH] unittests: Add test for x87 mode switches wrongly flushing NZCV --- unittests/ASM/FEX_bugs/X87MMXNZCV.asm | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 unittests/ASM/FEX_bugs/X87MMXNZCV.asm diff --git a/unittests/ASM/FEX_bugs/X87MMXNZCV.asm b/unittests/ASM/FEX_bugs/X87MMXNZCV.asm new file mode 100644 index 000000000..ce34ab007 --- /dev/null +++ b/unittests/ASM/FEX_bugs/X87MMXNZCV.asm @@ -0,0 +1,13 @@ +%ifdef CONFIG +{ + "RegData": {}, + "Env": { "FEX_X87REDUCEDPRECISION" : "1" } +} +%endif + +; FEX had a bug where a mmx->x87 switch would flush the saved NZCV value used for ftst, causing a crash in RA + +movq mm0, mm1 ; enters mmx state +ftst ; enters x87 state + +hlt