diff options
author | Avi Kivity <avi@redhat.com> | 2012-04-09 11:40:01 -0400 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2012-04-16 19:36:16 -0400 |
commit | 3e114eb4db3a33141b8c91bb53dae9ba6b015a32 (patch) | |
tree | f9aab444d0b356faa7b5f44d605c0622546d7042 /arch/x86 | |
parent | 49597d8116ad70aabb598e606b218ddd9315b0af (diff) |
KVM: x86 emulator: implement movntps
Used to write to framebuffers (by at least Icaros).
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | 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 b160fb1fc68b..fb39e0b32ed1 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -3440,6 +3440,10 @@ static struct gprefix pfx_0f_6f_0f_7f = { | |||
3440 | N, I(Sse | Aligned, em_mov), N, I(Sse | Unaligned, em_mov), | 3440 | N, I(Sse | Aligned, em_mov), N, I(Sse | Unaligned, em_mov), |
3441 | }; | 3441 | }; |
3442 | 3442 | ||
3443 | static struct gprefix pfx_vmovntpx = { | ||
3444 | I(0, em_mov), N, N, N, | ||
3445 | }; | ||
3446 | |||
3443 | static struct opcode opcode_table[256] = { | 3447 | static struct opcode opcode_table[256] = { |
3444 | /* 0x00 - 0x07 */ | 3448 | /* 0x00 - 0x07 */ |
3445 | I6ALU(Lock, em_add), | 3449 | I6ALU(Lock, em_add), |
@@ -3571,7 +3575,8 @@ static struct opcode twobyte_table[256] = { | |||
3571 | IIP(ModRM | SrcMem | Priv | Op3264, em_cr_write, cr_write, check_cr_write), | 3575 | IIP(ModRM | SrcMem | Priv | Op3264, em_cr_write, cr_write, check_cr_write), |
3572 | IIP(ModRM | SrcMem | Priv | Op3264, em_dr_write, dr_write, check_dr_write), | 3576 | IIP(ModRM | SrcMem | Priv | Op3264, em_dr_write, dr_write, check_dr_write), |
3573 | N, N, N, N, | 3577 | N, N, N, N, |
3574 | N, N, N, N, N, N, N, N, | 3578 | N, N, N, GP(ModRM | DstMem | SrcReg | Sse | Mov | Aligned, &pfx_vmovntpx), |
3579 | N, N, N, N, | ||
3575 | /* 0x30 - 0x3F */ | 3580 | /* 0x30 - 0x3F */ |
3576 | II(ImplicitOps | Priv, em_wrmsr, wrmsr), | 3581 | II(ImplicitOps | Priv, em_wrmsr, wrmsr), |
3577 | IIP(ImplicitOps, em_rdtsc, rdtsc, check_rdtsc), | 3582 | IIP(ImplicitOps, em_rdtsc, rdtsc, check_rdtsc), |