diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-27 00:01:20 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-27 00:01:20 +0000 |
commit | 2f6ecc62eef8c591d9266309362989e8518dad7e (patch) | |
tree | f13ad7e7df7506e17d1ee16edfdb67d018c20739 /target-i386 | |
parent | 0a61814043bbf21bd081820f8be44a11a300f96f (diff) | |
download | qemu-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.c | 1 |
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, ®_addr, &offset_addr); |