@samitouri / QOSamiQemu / commits / 7bdcdf1141

target/i386/tcg: treat VEX as disabling high-byte registers

This does not have any functional effect because the only instruction where it would make a difference is VPINSRB/VPINSRW, and they disable high-byte registers even for the non-AVX encoding. However, with APX it becomes a general property of the EVEX prefix and it makes sense to treat VEX the same way since it *does* include REX bits. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Paolo Bonzini committed Dec 10, 2025 at 13:22 UTC 7bdcdf11416155d8bbb35e6239a0553ec3f5a16e
1 file changed +1 -1
target/i386/tcg/translate.c
+1 -1
@@ -208,7 +208,7 @@ typedef struct DisasContext {
208 #endif
209
210 #ifdef TARGET_X86_64
211 -#define REX_PREFIX(S) (((S)->prefix & PREFIX_REX) != 0)
211 +#define REX_PREFIX(S) (((S)->prefix & (PREFIX_REX | PREFIX_VEX)) != 0)
212 #define REX_W(S) ((S)->vex_w)
213 #define REX_R(S) ((S)->rex_r + 0)
214 #define REX_X(S) ((S)->rex_x + 0)