target/i386/tcg: ignore V3 in 32-bit mode
From the manual: "In 64-bit mode all 4 bits may be used. [...] In 32-bit and 16-bit modes bit 6 must be 1 (if bit 6 is not 1, the 2-byte VEX version will generate LDS instruction and the 3-byte VEX version will ignore this bit)." Cc: qemu-stable@nongnu.org Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> (cherry picked from commit 0db1b556e4bcd7a51f222cda9e14850f88fe3f88) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
b33a563281
commit
59c9137156
1 changed files with 1 additions and 1 deletions
|
|
@ -2665,7 +2665,7 @@ static void disas_insn(DisasContext *s, CPUState *cpu)
|
|||
goto unknown_op;
|
||||
}
|
||||
}
|
||||
s->vex_v = (~vex3 >> 3) & 0xf;
|
||||
s->vex_v = (~vex3 >> 3) & (CODE64(s) ? 15 : 7);
|
||||
s->vex_l = (vex3 >> 2) & 1;
|
||||
s->prefix |= pp_prefix[vex3 & 3] | PREFIX_VEX;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue