]> err.no Git - linux-2.6/commitdiff
KVM: x86 emulator: jmp abs
authorNitin A Kamble <nitin.a.kamble@intel.com>
Sat, 15 Sep 2007 07:41:26 +0000 (10:41 +0300)
committerAvi Kivity <avi@qumranet.com>
Sat, 13 Oct 2007 08:18:29 +0000 (10:18 +0200)
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>
drivers/kvm/x86_emulate.c

index 4c78a4ff868f8eeb821c3f958c3e2016c64d1982..cf8db670df7f47efc3e4a84f09d505a5d6d5bd2c 100644 (file)
@@ -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) {