diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2023-10-09 18:16:27 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-10-25 17:35:07 +0200 |
commit | e000687f1266d031528758271d0b16e288394ede (patch) | |
tree | 3b8a74be2cc7b8cb7d3bb881be7995fd783cfb9a /hw/usb/dev-storage-classic.c | |
parent | 183e6679e39fb5bcc17dbebaf668c1e83d8e57ee (diff) | |
download | qemu-e000687f1266d031528758271d0b16e288394ede.zip qemu-e000687f1266d031528758271d0b16e288394ede.tar.gz qemu-e000687f1266d031528758271d0b16e288394ede.tar.bz2 |
target/i386: validate VEX.W for AVX instructions
Instructions in VEX exception class 6 generally look at the value of
VEX.W. Note that the manual places some instructions incorrectly in
class 4, for example VPERMQ which has no non-VEX encoding and no legacy
SSE analogue. AMD does a mess of its own, as documented in the comment
that this patch adds.
Most of them are checked for VEX.W=0, and are listed in the manual
(though with an omission) in table 2-16; VPERMQ and VPERMPD check for
VEX.W=1, which is only listed in the instruction description. Others,
such as VPSRLV, VPSLLV and the FMA3 instructions, use VEX.W to switch
between a 32-bit and 64-bit operation.
Fix more of the class 4/class 6 mismatches, and implement the check for
VEX.W in TCG.
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/usb/dev-storage-classic.c')
0 files changed, 0 insertions, 0 deletions