aboutsummaryrefslogtreecommitdiff
path: root/target-i386/translate.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-04 17:02:19 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-04 17:02:19 +0000
commitdb620f46a8c8b168831812eabd7428a952964334 (patch)
tree755a1cb01456c96211ca74ca7e048811655fe9c1 /target-i386/translate.c
parent3cd9acb410f313b03ad9348f36d86ad8d3bf703f (diff)
reworked SVM interrupt handling logic - fixed vmrun EIP saved value - reworked cr8 handling - added CPUState.hflags2
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4662 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/translate.c')
-rw-r--r--target-i386/translate.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 40a85f8111..fb695003d5 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -6569,10 +6569,11 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
gen_exception(s, EXCP0D_GPF, pc_start - s->cs_base);
break;
} else {
- tcg_gen_helper_0_1(helper_vmrun,
- tcg_const_i32(s->aflag));
- s->cc_op = CC_OP_EFLAGS;
- gen_eob(s);
+ tcg_gen_helper_0_2(helper_vmrun,
+ tcg_const_i32(s->aflag),
+ tcg_const_i32(s->pc - pc_start));
+ tcg_gen_exit_tb(0);
+ s->is_jmp = 3;
}
break;
case 1: /* VMMCALL */