summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorWei Yongjun <yjwei@cn.fujitsu.com>2010-07-06 08:51:09 (GMT)
committerAvi Kivity <avi@redhat.com>2010-08-02 03:40:24 (GMT)
commite97e883f8bfbe02cfc2bfff45e68921dfe590c7e (patch)
treeca9ba2e7f5ca10b406aecaf1c9401f937dbed248 /arch/x86
parentce7a0ad3bdcd86e6cf907eb5992fecb1503daa26 (diff)
downloadlinux-e97e883f8bfbe02cfc2bfff45e68921dfe590c7e.tar.xz
KVM: x86 emulator: fix 'and AL,imm8' instruction decoding
'and AL,imm8' should be mask as ByteOp, otherwise the dest operand length will no correct and we may fill the full EAX when writeback. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kvm/emulate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index ad8d7cd..59568ad 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -123,7 +123,7 @@ static u32 opcode_table[256] = {
/* 0x20 - 0x27 */
ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock,
ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM,
- DstAcc | SrcImmByte, DstAcc | SrcImm, 0, 0,
+ ByteOp | DstAcc | SrcImmByte, DstAcc | SrcImm, 0, 0,
/* 0x28 - 0x2F */
ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock,
ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM,