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,6 +33,7 @@
33 #define TEST_CMOV 0 33 #define TEST_CMOV 0
34 #define TEST_FCOMI 0 34 #define TEST_FCOMI 0
35 //#define LINUX_VM86_IOPL_FIX 35 //#define LINUX_VM86_IOPL_FIX
  36 +//#define TEST_P4_FLAGS
36 37
37 #define xglue(x, y) x ## y 38 #define xglue(x, y) x ## y
38 #define glue(x, y) xglue(x, y) 39 #define glue(x, y) xglue(x, y)
@@ -352,7 +353,11 @@ void test_jcc(void) @@ -352,7 +353,11 @@ void test_jcc(void)
352 } 353 }
353 354
354 #undef CC_MASK 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 #define CC_MASK (CC_O | CC_C) 359 #define CC_MASK (CC_O | CC_C)
  360 +#endif
356 361
357 #define OP mul 362 #define OP mul
358 #include "test-i386-muldiv.h" 363 #include "test-i386-muldiv.h"
@@ -360,15 +365,6 @@ void test_jcc(void) @@ -360,15 +365,6 @@ void test_jcc(void)
360 #define OP imul 365 #define OP imul
361 #include "test-i386-muldiv.h" 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 void test_imulw2(int op0, int op1) 368 void test_imulw2(int op0, int op1)
373 { 369 {
374 int res, s1, s0, flags; 370 int res, s1, s0, flags;
@@ -405,6 +401,15 @@ void test_imull2(int op0, int op1) @@ -405,6 +401,15 @@ void test_imull2(int op0, int op1)
405 "imull", s0, s1, res, flags & CC_MASK); 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 void test_mul(void) 413 void test_mul(void)
409 { 414 {
410 test_imulb(0x1234561d, 4); 415 test_imulb(0x1234561d, 4);