Commit acae4681ae29768c1d5f1641f5a2501c9ace8cf0

Authored by bellard
1 parent 42ad6ae9

fixed imul im test - added TEST_VM86 define for x86_64 tests


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1182 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 7 additions and 5 deletions
tests/test-i386.c
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 32
33 #define TEST_CMOV 0 33 #define TEST_CMOV 0
34 #define TEST_FCOMI 0 34 #define TEST_FCOMI 0
  35 +#define TEST_VM86
35 //#define LINUX_VM86_IOPL_FIX 36 //#define LINUX_VM86_IOPL_FIX
36 //#define TEST_P4_FLAGS 37 //#define TEST_P4_FLAGS
37 38
@@ -372,7 +373,7 @@ void test_imulw2(int op0, int op1) @@ -372,7 +373,7 @@ void test_imulw2(int op0, int op1)
372 s1 = op1; 373 s1 = op1;
373 res = s0; 374 res = s0;
374 flags = 0; 375 flags = 0;
375 - asm ("push %4\n\t" 376 + asm volatile ("push %4\n\t"
376 "popf\n\t" 377 "popf\n\t"
377 "imulw %w2, %w0\n\t" 378 "imulw %w2, %w0\n\t"
378 "pushf\n\t" 379 "pushf\n\t"
@@ -390,7 +391,7 @@ void test_imull2(int op0, int op1) @@ -390,7 +391,7 @@ void test_imull2(int op0, int op1)
390 s1 = op1; 391 s1 = op1;
391 res = s0; 392 res = s0;
392 flags = 0; 393 flags = 0;
393 - asm ("push %4\n\t" 394 + asm volatile ("push %4\n\t"
394 "popf\n\t" 395 "popf\n\t"
395 "imull %2, %0\n\t" 396 "imull %2, %0\n\t"
396 "pushf\n\t" 397 "pushf\n\t"
@@ -406,7 +407,7 @@ void test_imull2(int op0, int op1) @@ -406,7 +407,7 @@ void test_imull2(int op0, int op1)
406 int res, flags;\ 407 int res, flags;\
407 flags = 0;\ 408 flags = 0;\
408 res = 0;\ 409 res = 0;\
409 - asm ("push %3\n\t"\ 410 + asm volatile ("push %3\n\t"\
410 "popf\n\t"\ 411 "popf\n\t"\
411 "imul" size " $" #op0 ", %" size1 "2, %" size1 "0\n\t" \ 412 "imul" size " $" #op0 ", %" size1 "2, %" size1 "0\n\t" \
412 "pushf\n\t"\ 413 "pushf\n\t"\
@@ -414,7 +415,7 @@ void test_imull2(int op0, int op1) @@ -414,7 +415,7 @@ void test_imull2(int op0, int op1)
414 : "=r" (res), "=g" (flags)\ 415 : "=r" (res), "=g" (flags)\
415 : "r" (op1), "1" (flags), "0" (res));\ 416 : "r" (op1), "1" (flags), "0" (res));\
416 printf("%-10s A=%08x B=%08x R=%08x CC=%04x\n",\ 417 printf("%-10s A=%08x B=%08x R=%08x CC=%04x\n",\
417 - "imul" size, op0, op1, res, flags & CC_MASK);\ 418 + "imul" size " im", op0, op1, res, flags & CC_MASK);\
418 } 419 }
419 420
420 421
@@ -1673,7 +1674,6 @@ static void test_enter(void) @@ -1673,7 +1674,6 @@ static void test_enter(void)
1673 TEST_ENTER("w", uint16_t, 31); 1674 TEST_ENTER("w", uint16_t, 31);
1674 } 1675 }
1675 1676
1676 -  
1677 static void *call_end __init_call = NULL; 1677 static void *call_end __init_call = NULL;
1678 1678
1679 int main(int argc, char **argv) 1679 int main(int argc, char **argv)
@@ -1697,7 +1697,9 @@ int main(int argc, char **argv) @@ -1697,7 +1697,9 @@ int main(int argc, char **argv)
1697 test_lea(); 1697 test_lea();
1698 test_segs(); 1698 test_segs();
1699 test_code16(); 1699 test_code16();
  1700 +#ifdef TEST_VM86
1700 test_vm86(); 1701 test_vm86();
  1702 +#endif
1701 test_exceptions(); 1703 test_exceptions();
1702 test_self_modifying_code(); 1704 test_self_modifying_code();
1703 test_single_step(); 1705 test_single_step();