From 7cad0c0eccc0f5efbe1db54d94c4aa09903bedc7 Mon Sep 17 00:00:00 2001 From: Nitin A Kamble Date: Sat, 15 Sep 2007 10:25:41 +0300 Subject: [PATCH] --- yaml --- r: 68436 b: refs/heads/master c: 55bebde45ec252295b08cb3990f15df2228dbf0e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/kvm/x86_emulate.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 24ae9b78658f..15a14e9af34d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bbe9abbdaca366510db1f2df25f4c7b48cba38eb +refs/heads/master: 55bebde45ec252295b08cb3990f15df2228dbf0e diff --git a/trunk/drivers/kvm/x86_emulate.c b/trunk/drivers/kvm/x86_emulate.c index ba53e59f558a..57f1a5ad0110 100644 --- a/trunk/drivers/kvm/x86_emulate.c +++ b/trunk/drivers/kvm/x86_emulate.c @@ -111,8 +111,12 @@ static u8 opcode_table[256] = { 0, 0, ImplicitOps|Mov, 0, SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* insb, insw/insd */ SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* outsb, outsw/outsd */ - /* 0x70 - 0x7F */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x70 - 0x77 */ + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + /* 0x78 - 0x7F */ + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, /* 0x80 - 0x87 */ ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM, @@ -1268,6 +1272,13 @@ x86_emulate_memop(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) ) == 0) return -1; return 0; + case 0x70 ... 0x7f: /* jcc (short) */ { + int rel = insn_fetch(s8, 1, _eip); + + if (test_cc(b, _eflags)) + JMP_REL(rel); + break; + } case 0x9c: /* pushf */ src.val = (unsigned long) _eflags; goto push;