summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-05-10 15:10:02 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-05-10 15:10:02 +0000
commit564c8f9978499a12fc8efd8d3c4af54060d1adcf (patch)
tree9a620a52660918f8963d5027c0455a044cfad7a9
parentc50c0c3fbf65ce7a1cf42a2ea8974a930be7b667 (diff)
simplified exception support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@146 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--op-i386.c13
-rw-r--r--opc-i386.h8
2 files changed, 5 insertions, 16 deletions
diff --git a/op-i386.c b/op-i386.c
index fe1f7eb9db..dac8700357 100644
--- a/op-i386.c
+++ b/op-i386.c
@@ -622,10 +622,11 @@ void OPPROTO op_int_im(void)
raise_exception_err(EXCP0D_GPF, intno * 8 + 2);
}
-void OPPROTO op_int3(void)
+void OPPROTO op_raise_exception(void)
{
- EIP = PARAM1;
- raise_exception(EXCP03_INT3);
+ int exception_index;
+ exception_index = PARAM1;
+ raise_exception(exception_index);
}
void OPPROTO op_into(void)
@@ -638,12 +639,6 @@ void OPPROTO op_into(void)
FORCE_RET();
}
-void OPPROTO op_gpf(void)
-{
- EIP = PARAM1;
- raise_exception(EXCP0D_GPF);
-}
-
void OPPROTO op_cli(void)
{
env->eflags &= ~IF_MASK;
diff --git a/opc-i386.h b/opc-i386.h
index 2e48eb6eb3..de54d9c1da 100644
--- a/opc-i386.h
+++ b/opc-i386.h
@@ -230,13 +230,10 @@ DEF(add_bitl_A0_T1, 0)
DEF(jmp_T0, 0)
DEF(jmp_im, 1)
DEF(int_im, 2)
-DEF(int3, 1)
+DEF(raise_exception, 2)
DEF(into, 0)
-DEF(gpf, 1)
DEF(cli, 0)
DEF(sti, 0)
-DEF(cli_vm, 0)
-DEF(sti_vm, 1)
DEF(boundw, 0)
DEF(boundl, 0)
DEF(cmpxchg8b, 0)
@@ -557,11 +554,8 @@ DEF(xor_T0_1, 0)
DEF(set_cc_op, 1)
DEF(movl_eflags_T0, 0)
DEF(movw_eflags_T0, 0)
-DEF(movw_eflags_T0_vm, 1)
-DEF(movl_eflags_T0_vm, 1)
DEF(movb_eflags_T0, 0)
DEF(movl_T0_eflags, 0)
-DEF(movl_T0_eflags_vm, 0)
DEF(cld, 0)
DEF(std, 0)
DEF(clc, 0)