summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-01-17 15:39:57 +0200
committerAvi Kivity <avi@redhat.com>2010-01-17 15:39:57 +0200
commitb874ce1db7d8654850c8a6606b95ffb1c7d22ce2 (patch)
tree0e031a914e520fdc6e86cd49c7b0156dd0decd92 /target-i386
parentMerge branch 'stable-0.12-upstream' into stable-0.12 (diff)
parentUpdate version and changelog for release (diff)
downloadqemu-kvm-b874ce1db7d8654850c8a6606b95ffb1c7d22ce2.tar.gz
qemu-kvm-b874ce1db7d8654850c8a6606b95ffb1c7d22ce2.tar.bz2
qemu-kvm-b874ce1db7d8654850c8a6606b95ffb1c7d22ce2.zip
Merge remote branch 'upstream/stable-0.12' into stable-0.12
* upstream/stable-0.12: (27 commits) Update version and changelog for release Update SeaBIOS to 0.5.1 Qemu's internal TFTP server breaks lock-step-iness of TFTP osdep.c: Fix accept4 fallback pc: add rombar to compat properties for pc-0.10 and pc-0.11 pci: allow loading roms via fw_cfg. roms: rework rom loading via fw fw_cfg: rom loader tweaks. roms: minor fixes and cleanups. pc: add machine type for 0.12 loader: more ignores for rom intended to be loaded by the bios vnc_refresh: return if vd->timer is NULL QMP: Don't free async event's 'data' Handle TFTP ERROR from client dmg: fix ->open failure virtio-pci: thinko fix pc-bios: Update README (SeaBIOS) vmware_vga: Check cursor dimensions passed from guest to avoid buffer overflow remove pending exception on vcpu reset. Fix CPU topology initialization ... Conflicts: hw/pc.c hw/pci.h qemu-options.hx Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'target-i386')
-rw-r--r--target-i386/helper.c2
-rw-r--r--target-i386/kvm.c1
-rw-r--r--target-i386/translate.c2
3 files changed, 5 insertions, 0 deletions
diff --git a/target-i386/helper.c b/target-i386/helper.c
index b58fd8253..fb22f88d8 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -619,6 +619,8 @@ void cpu_reset(CPUX86State *env)
env->dr[7] = DR7_FIXED_1;
cpu_breakpoint_remove_all(env, BP_CPU);
cpu_watchpoint_remove_all(env, BP_CPU);
+
+ env->mcg_status = 0;
}
void cpu_x86_close(CPUX86State *env)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 8584507ab..c338bf7cd 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -228,6 +228,7 @@ int kvm_arch_init_vcpu(CPUState *env)
void kvm_arch_reset_vcpu(CPUState *env)
{
+ env->exception_injected = -1;
env->interrupt_injected = -1;
env->nmi_injected = 0;
env->nmi_pending = 0;
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 64bc0a3f3..511a4eae9 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -6259,6 +6259,8 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
tval += next_eip;
if (s->dflag == 0)
tval &= 0xffff;
+ else if(!CODE64(s))
+ tval &= 0xffffffff;
gen_movtl_T0_im(next_eip);
gen_push_T0(s);
gen_jmp(s, tval);