aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test-i386.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/tests/test-i386.c b/tests/test-i386.c
index 821b79b65d..0718f5a0e5 100644
--- a/tests/test-i386.c
+++ b/tests/test-i386.c
@@ -33,6 +33,7 @@
#define TEST_CMOV 0
#define TEST_FCOMI 0
//#define LINUX_VM86_IOPL_FIX
+//#define TEST_P4_FLAGS
#define xglue(x, y) x ## y
#define glue(x, y) xglue(x, y)
@@ -352,7 +353,11 @@ void test_jcc(void)
}
#undef CC_MASK
+#ifdef TEST_P4_FLAGS
+#define CC_MASK (CC_C | CC_P | CC_Z | CC_S | CC_O | CC_A)
+#else
#define CC_MASK (CC_O | CC_C)
+#endif
#define OP mul
#include "test-i386-muldiv.h"
@@ -360,15 +365,6 @@ void test_jcc(void)
#define OP imul
#include "test-i386-muldiv.h"
-#undef CC_MASK
-#define CC_MASK (0)
-
-#define OP div
-#include "test-i386-muldiv.h"
-
-#define OP idiv
-#include "test-i386-muldiv.h"
-
void test_imulw2(int op0, int op1)
{
int res, s1, s0, flags;
@@ -405,6 +401,15 @@ void test_imull2(int op0, int op1)
"imull", s0, s1, res, flags & CC_MASK);
}
+#undef CC_MASK
+#define CC_MASK (0)
+
+#define OP div
+#include "test-i386-muldiv.h"
+
+#define OP idiv
+#include "test-i386-muldiv.h"
+
void test_mul(void)
{
test_imulb(0x1234561d, 4);