diff options
author | Nitin A Kamble <nitin.a.kamble@intel.com> | 2007-09-15 03:41:26 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-10-13 04:18:29 -0400 |
commit | 26a3e983d154beca544afd36f293cfef10657f24 (patch) | |
tree | 61dc0fb2a00a2aafdd0d7e2bf535629891665ee1 /drivers/kvm/x86_emulate.c | |
parent | 7e0b54b149315743f5743dbc0cf758012682024e (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.c | 6 |
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) { |