aboutsummaryrefslogtreecommitdiff
path: root/target-i386
diff options
context:
space:
mode:
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-04-27 00:01:20 +0000
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>2007-04-27 00:01:20 +0000
commit2f6ecc62eef8c591d9266309362989e8518dad7e (patch)
treef13ad7e7df7506e17d1ee16edfdb67d018c20739 /target-i386
parent0a61814043bbf21bd081820f8be44a11a300f96f (diff)
downloadqemu-2f6ecc62eef8c591d9266309362989e8518dad7e.zip
qemu-2f6ecc62eef8c591d9266309362989e8518dad7e.tar.gz
qemu-2f6ecc62eef8c591d9266309362989e8518dad7e.tar.bz2
Workaround qemu guest SIGSEGVs with cmpxchg8b insn, by Juergen Keil.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2732 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386')
-rw-r--r--target-i386/translate.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 735acb0..53ccc85 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -3797,6 +3797,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
mod = (modrm >> 6) & 3;
if (mod == 3)
goto illegal_op;
+ gen_jmp_im(pc_start - s->cs_base);
if (s->cc_op != CC_OP_DYNAMIC)
gen_op_set_cc_op(s->cc_op);
gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);