diff options
Diffstat (limited to 'drivers/kvm')
-rw-r--r-- | drivers/kvm/x86_emulate.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index ba53e59f558a..57f1a5ad0110 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c | |||
@@ -111,8 +111,12 @@ static u8 opcode_table[256] = { | |||
111 | 0, 0, ImplicitOps|Mov, 0, | 111 | 0, 0, ImplicitOps|Mov, 0, |
112 | SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* insb, insw/insd */ | 112 | SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* insb, insw/insd */ |
113 | SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* outsb, outsw/outsd */ | 113 | SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* outsb, outsw/outsd */ |
114 | /* 0x70 - 0x7F */ | 114 | /* 0x70 - 0x77 */ |
115 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 115 | ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, |
116 | ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, | ||
117 | /* 0x78 - 0x7F */ | ||
118 | ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, | ||
119 | ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, | ||
116 | /* 0x80 - 0x87 */ | 120 | /* 0x80 - 0x87 */ |
117 | ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, | 121 | ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, |
118 | ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM, | 122 | ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM, |
@@ -1268,6 +1272,13 @@ special_insn: | |||
1268 | ) == 0) | 1272 | ) == 0) |
1269 | return -1; | 1273 | return -1; |
1270 | return 0; | 1274 | return 0; |
1275 | case 0x70 ... 0x7f: /* jcc (short) */ { | ||
1276 | int rel = insn_fetch(s8, 1, _eip); | ||
1277 | |||
1278 | if (test_cc(b, _eflags)) | ||
1279 | JMP_REL(rel); | ||
1280 | break; | ||
1281 | } | ||
1271 | case 0x9c: /* pushf */ | 1282 | case 0x9c: /* pushf */ |
1272 | src.val = (unsigned long) _eflags; | 1283 | src.val = (unsigned long) _eflags; |
1273 | goto push; | 1284 | goto push; |