aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSheng Yang <sheng.yang@intel.com>2007-10-15 02:24:20 -0400
committerAvi Kivity <avi@qumranet.com>2007-10-22 06:03:29 -0400
commita012e65aee48379a7a87eadafa74f878b61522b9 (patch)
tree0580d8335376e22570babc858caff4577c8be6bc
parent8668a3c468ed55d19514117a5a959d91d3d03823 (diff)
KVM: x86 emulator: implement 'movnti mem, reg'
Implement emulation of instruction: movnti m32/m64, r32/r64 opcode: 0x0f 0xc3 Signed-off-by: Sheng Yang <sheng.yang@intel.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r--drivers/kvm/x86_emulate.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index 80b1758e2d33..0a8696d9b82c 100644
--- a/drivers/kvm/x86_emulate.c
+++ b/drivers/kvm/x86_emulate.c
@@ -212,7 +212,8 @@ static u16 twobyte_table[256] = {
212 0, 0, ByteOp | DstReg | SrcMem | ModRM | Mov, 212 0, 0, ByteOp | DstReg | SrcMem | ModRM | Mov,
213 DstReg | SrcMem16 | ModRM | Mov, 213 DstReg | SrcMem16 | ModRM | Mov,
214 /* 0xC0 - 0xCF */ 214 /* 0xC0 - 0xCF */
215 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0, 0, 215 0, 0, 0, DstMem | SrcReg | ModRM | Mov, 0, 0, 0, ImplicitOps | ModRM,
216 0, 0, 0, 0, 0, 0, 0, 0,
216 /* 0xD0 - 0xDF */ 217 /* 0xD0 - 0xDF */
217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
218 /* 0xE0 - 0xEF */ 219 /* 0xE0 - 0xEF */
@@ -1501,6 +1502,10 @@ twobyte_insn:
1501 dst.bytes = op_bytes; 1502 dst.bytes = op_bytes;
1502 dst.val = (d & ByteOp) ? (s8) src.val : (s16) src.val; 1503 dst.val = (d & ByteOp) ? (s8) src.val : (s16) src.val;
1503 break; 1504 break;
1505 case 0xc3: /* movnti */
1506 dst.bytes = op_bytes;
1507 dst.val = (op_bytes == 4) ? (u32) src.val : (u64) src.val;
1508 break;
1504 } 1509 }
1505 goto writeback; 1510 goto writeback;
1506 1511