diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-09-24 18:41:56 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-09-24 18:41:56 +0000 |
commit | 3b21e03e043236a0569383ff5d677c336e3d8b3a (patch) | |
tree | a7912035f32e2e8c5a13d8743a4a0880bcc2fc15 /target-i386/translate.c | |
parent | ba86345802fcede0b0f50393c97c128aa7a3f40c (diff) |
added SMM support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2169 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/translate.c')
-rw-r--r-- | target-i386/translate.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c index 5c6453d4fd..ad18af9757 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -6012,6 +6012,17 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) gen_lea_modrm(s, modrm, ®_addr, &offset_addr); /* ignore for now */ break; + case 0x1aa: /* rsm */ + if (!(s->flags & HF_SMM_MASK)) + goto illegal_op; + if (s->cc_op != CC_OP_DYNAMIC) { + gen_op_set_cc_op(s->cc_op); + s->cc_op = CC_OP_DYNAMIC; + } + gen_jmp_im(s->pc - s->cs_base); + gen_op_rsm(); + gen_eob(s); + break; case 0x110 ... 0x117: case 0x128 ... 0x12f: case 0x150 ... 0x177: |