diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-07-06 04:51:09 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-08-01 23:40:24 -0400 |
commit | e97e883f8bfbe02cfc2bfff45e68921dfe590c7e (patch) | |
tree | ca9ba2e7f5ca10b406aecaf1c9401f937dbed248 /arch | |
parent | ce7a0ad3bdcd86e6cf907eb5992fecb1503daa26 (diff) |
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')
-rw-r--r-- | arch/x86/kvm/emulate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index ad8d7cdd1eb9..59568ad21ab3 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -123,7 +123,7 @@ static u32 opcode_table[256] = { | |||
123 | /* 0x20 - 0x27 */ | 123 | /* 0x20 - 0x27 */ |
124 | ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock, | 124 | ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock, |
125 | ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, | 125 | ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, |
126 | DstAcc | SrcImmByte, DstAcc | SrcImm, 0, 0, | 126 | ByteOp | DstAcc | SrcImmByte, DstAcc | SrcImm, 0, 0, |
127 | /* 0x28 - 0x2F */ | 127 | /* 0x28 - 0x2F */ |
128 | ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock, | 128 | ByteOp | DstMem | SrcReg | ModRM | Lock, DstMem | SrcReg | ModRM | Lock, |
129 | ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, | 129 | ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, |