Commit 791c2261d6f1d9fbb1c6d1194129828009f9025e
1 parent
163a7cb6
more complete eflags testing for multiplication (P4 case only)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@479 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
14 additions
and
9 deletions
tests/test-i386.c
| ... | ... | @@ -33,6 +33,7 @@ |
| 33 | 33 | #define TEST_CMOV 0 |
| 34 | 34 | #define TEST_FCOMI 0 |
| 35 | 35 | //#define LINUX_VM86_IOPL_FIX |
| 36 | +//#define TEST_P4_FLAGS | |
| 36 | 37 | |
| 37 | 38 | #define xglue(x, y) x ## y |
| 38 | 39 | #define glue(x, y) xglue(x, y) |
| ... | ... | @@ -352,7 +353,11 @@ void test_jcc(void) |
| 352 | 353 | } |
| 353 | 354 | |
| 354 | 355 | #undef CC_MASK |
| 356 | +#ifdef TEST_P4_FLAGS | |
| 357 | +#define CC_MASK (CC_C | CC_P | CC_Z | CC_S | CC_O | CC_A) | |
| 358 | +#else | |
| 355 | 359 | #define CC_MASK (CC_O | CC_C) |
| 360 | +#endif | |
| 356 | 361 | |
| 357 | 362 | #define OP mul |
| 358 | 363 | #include "test-i386-muldiv.h" |
| ... | ... | @@ -360,15 +365,6 @@ void test_jcc(void) |
| 360 | 365 | #define OP imul |
| 361 | 366 | #include "test-i386-muldiv.h" |
| 362 | 367 | |
| 363 | -#undef CC_MASK | |
| 364 | -#define CC_MASK (0) | |
| 365 | - | |
| 366 | -#define OP div | |
| 367 | -#include "test-i386-muldiv.h" | |
| 368 | - | |
| 369 | -#define OP idiv | |
| 370 | -#include "test-i386-muldiv.h" | |
| 371 | - | |
| 372 | 368 | void test_imulw2(int op0, int op1) |
| 373 | 369 | { |
| 374 | 370 | int res, s1, s0, flags; |
| ... | ... | @@ -405,6 +401,15 @@ void test_imull2(int op0, int op1) |
| 405 | 401 | "imull", s0, s1, res, flags & CC_MASK); |
| 406 | 402 | } |
| 407 | 403 | |
| 404 | +#undef CC_MASK | |
| 405 | +#define CC_MASK (0) | |
| 406 | + | |
| 407 | +#define OP div | |
| 408 | +#include "test-i386-muldiv.h" | |
| 409 | + | |
| 410 | +#define OP idiv | |
| 411 | +#include "test-i386-muldiv.h" | |
| 412 | + | |
| 408 | 413 | void test_mul(void) |
| 409 | 414 | { |
| 410 | 415 | test_imulb(0x1234561d, 4); | ... | ... |