mirror of https://github.com/xemu-project/xemu.git
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
This commit is contained in:
parent
42ad6ae973
commit
acae4681ae
|
@ -32,6 +32,7 @@
|
||||||
|
|
||||||
#define TEST_CMOV 0
|
#define TEST_CMOV 0
|
||||||
#define TEST_FCOMI 0
|
#define TEST_FCOMI 0
|
||||||
|
#define TEST_VM86
|
||||||
//#define LINUX_VM86_IOPL_FIX
|
//#define LINUX_VM86_IOPL_FIX
|
||||||
//#define TEST_P4_FLAGS
|
//#define TEST_P4_FLAGS
|
||||||
|
|
||||||
|
@ -372,7 +373,7 @@ void test_imulw2(int op0, int op1)
|
||||||
s1 = op1;
|
s1 = op1;
|
||||||
res = s0;
|
res = s0;
|
||||||
flags = 0;
|
flags = 0;
|
||||||
asm ("push %4\n\t"
|
asm volatile ("push %4\n\t"
|
||||||
"popf\n\t"
|
"popf\n\t"
|
||||||
"imulw %w2, %w0\n\t"
|
"imulw %w2, %w0\n\t"
|
||||||
"pushf\n\t"
|
"pushf\n\t"
|
||||||
|
@ -390,7 +391,7 @@ void test_imull2(int op0, int op1)
|
||||||
s1 = op1;
|
s1 = op1;
|
||||||
res = s0;
|
res = s0;
|
||||||
flags = 0;
|
flags = 0;
|
||||||
asm ("push %4\n\t"
|
asm volatile ("push %4\n\t"
|
||||||
"popf\n\t"
|
"popf\n\t"
|
||||||
"imull %2, %0\n\t"
|
"imull %2, %0\n\t"
|
||||||
"pushf\n\t"
|
"pushf\n\t"
|
||||||
|
@ -406,7 +407,7 @@ void test_imull2(int op0, int op1)
|
||||||
int res, flags;\
|
int res, flags;\
|
||||||
flags = 0;\
|
flags = 0;\
|
||||||
res = 0;\
|
res = 0;\
|
||||||
asm ("push %3\n\t"\
|
asm volatile ("push %3\n\t"\
|
||||||
"popf\n\t"\
|
"popf\n\t"\
|
||||||
"imul" size " $" #op0 ", %" size1 "2, %" size1 "0\n\t" \
|
"imul" size " $" #op0 ", %" size1 "2, %" size1 "0\n\t" \
|
||||||
"pushf\n\t"\
|
"pushf\n\t"\
|
||||||
|
@ -414,7 +415,7 @@ void test_imull2(int op0, int op1)
|
||||||
: "=r" (res), "=g" (flags)\
|
: "=r" (res), "=g" (flags)\
|
||||||
: "r" (op1), "1" (flags), "0" (res));\
|
: "r" (op1), "1" (flags), "0" (res));\
|
||||||
printf("%-10s A=%08x B=%08x R=%08x CC=%04x\n",\
|
printf("%-10s A=%08x B=%08x R=%08x CC=%04x\n",\
|
||||||
"imul" size, op0, op1, res, flags & CC_MASK);\
|
"imul" size " im", op0, op1, res, flags & CC_MASK);\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1673,7 +1674,6 @@ static void test_enter(void)
|
||||||
TEST_ENTER("w", uint16_t, 31);
|
TEST_ENTER("w", uint16_t, 31);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void *call_end __init_call = NULL;
|
static void *call_end __init_call = NULL;
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
@ -1697,7 +1697,9 @@ int main(int argc, char **argv)
|
||||||
test_lea();
|
test_lea();
|
||||||
test_segs();
|
test_segs();
|
||||||
test_code16();
|
test_code16();
|
||||||
|
#ifdef TEST_VM86
|
||||||
test_vm86();
|
test_vm86();
|
||||||
|
#endif
|
||||||
test_exceptions();
|
test_exceptions();
|
||||||
test_self_modifying_code();
|
test_self_modifying_code();
|
||||||
test_single_step();
|
test_single_step();
|
||||||
|
|
Loading…
Reference in New Issue