>From 49e5d97bd85e5097c5846e239201cc71a77e32bc Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 28 Mar 2012 18:59:48 +0200 Subject: [PATCH] KVM: x86 emulator: implement movntps Used to write to framebuffers (by at least Icaros). Note: lacks #GP on unaligned writes. Signed-off-by: Avi Kivity --- arch/x86/kvm/emulate.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 8375622..11c700a 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -3418,6 +3418,10 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt) N, N, N, I(Sse, em_movdqu), }; +static struct gprefix pfx_vmovntpx = { + I(0, em_movdqu), N, N, N, +}; + static struct opcode opcode_table[256] = { /* 0x00 - 0x07 */ I6ALU(Lock, em_add), @@ -3549,7 +3553,8 @@ static int check_perm_out(struct x86_emulate_ctxt *ctxt) IIP(ModRM | SrcMem | Priv | Op3264, em_cr_write, cr_write, check_cr_write), IIP(ModRM | SrcMem | Priv | Op3264, em_dr_write, dr_write, check_dr_write), N, N, N, N, - N, N, N, N, N, N, N, N, + N, N, N, GP(ModRM | DstMem | SrcReg | Sse | Mov, &pfx_vmovntpx), + N, N, N, N, /* 0x30 - 0x3F */ II(ImplicitOps | Priv, em_wrmsr, wrmsr), IIP(ImplicitOps, em_rdtsc, rdtsc, check_rdtsc), -- 1.7.9