summaryrefslogtreecommitdiffstats
path: root/drivers/kvm
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2007-09-15 09:41:26 +0200
committerAvi Kivity <avi@qumranet.com>2007-10-13 10:18:29 +0200
commit26a3e983d154beca544afd36f293cfef10657f24 (patch)
tree61dc0fb2a00a2aafdd0d7e2bf535629891665ee1 /drivers/kvm
parentKVM: x86 emulator: lea (diff)
downloadlinux-26a3e983d154beca544afd36f293cfef10657f24.tar.xz
linux-26a3e983d154beca544afd36f293cfef10657f24.zip
KVM: x86 emulator: jmp abs
Implement emulation of instruction: jump absolute r/m opcode: 0xff /4 Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r--drivers/kvm/x86_emulate.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index 4c78a4ff868f..cf8db670df7f 100644
--- a/drivers/kvm/x86_emulate.c
+++ b/drivers/kvm/x86_emulate.c
@@ -1148,6 +1148,12 @@ push:
case 1: /* dec */
emulate_1op("dec", dst, _eflags);
break;
+ case 4: /* jmp abs */
+ if (b == 0xff)
+ _eip = dst.val;
+ else
+ goto cannot_emulate;
+ break;
case 6: /* push */
/* 64-bit mode: PUSH always pushes a 64-bit operand. */
if (mode == X86EMUL_MODE_PROT64) {