Commit 791c2261d6f1d9fbb1c6d1194129828009f9025e

Authored by bellard
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);
... ...