aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/x86_emulate.c
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2007-09-15 03:41:26 -0400
committerAvi Kivity <avi@qumranet.com>2007-10-13 04:18:29 -0400
commit26a3e983d154beca544afd36f293cfef10657f24 (patch)
tree61dc0fb2a00a2aafdd0d7e2bf535629891665ee1 /drivers/kvm/x86_emulate.c
parent7e0b54b149315743f5743dbc0cf758012682024e (diff)
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/x86_emulate.c')
-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:
1148 case 1: /* dec */ 1148 case 1: /* dec */
1149 emulate_1op("dec", dst, _eflags); 1149 emulate_1op("dec", dst, _eflags);
1150 break; 1150 break;
1151 case 4: /* jmp abs */
1152 if (b == 0xff)
1153 _eip = dst.val;
1154 else
1155 goto cannot_emulate;
1156 break;
1151 case 6: /* push */ 1157 case 6: /* push */
1152 /* 64-bit mode: PUSH always pushes a 64-bit operand. */ 1158 /* 64-bit mode: PUSH always pushes a 64-bit operand. */
1153 if (mode == X86EMUL_MODE_PROT64) { 1159 if (mode == X86EMUL_MODE_PROT64) {