aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-gen.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-09-14 08:43:45 +0200
committerJan Beulich <jbeulich@suse.com>2023-09-14 08:43:45 +0200
commit4fc85f37dc7ab02867c5f7ee69e65b2f5eba51d8 (patch)
treef55f309481456714ee115fcfea9d68d0549ac649 /opcodes/i386-gen.c
parent2548c261604611b5c72f5a28ae54b6d9a15617ac (diff)
downloadgdb-4fc85f37dc7ab02867c5f7ee69e65b2f5eba51d8.zip
gdb-4fc85f37dc7ab02867c5f7ee69e65b2f5eba51d8.tar.gz
gdb-4fc85f37dc7ab02867c5f7ee69e65b2f5eba51d8.tar.bz2
x86: support AVX10.1 vector size restrictions
Recognize "/<number>" suffixes on both -march=+avx10.1 and the corresponding .arch directive, setting an upper bound on the vector size that insns may use. Such a restriction can be reset by setting a new base architecture, by using a suffix-less form, by disabling AVX10, or by enabling any other VEX/EVEX-based vector extension. While for most insns we can suppress their use with too wide operands via registers becoming unavailable (or in Intel syntax memory operand size specifiers not being recognized), mask register insns have to have their minimum required vector size specified in a new attribute. (Of course this new attribute could also be used on other insns.) Note that .insn continues to be permitted to emit EVEX{512,256} (and VEX256 ones) encodings regardless of vector size restrictions in place. Of course these can't be expressed using zmm (or ymm) operands then, but need using the EVEX.512.* forms (broadcast forms may be usable right now, but this may go away so shouldn't be relied upon). This is why no assertions should be added to build_{e,}vex_prefix().
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r--opcodes/i386-gen.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 8b6eb2e..a3e388a 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -464,6 +464,7 @@ static bitfield opcode_modifiers[] =
BITFIELD (StaticRounding),
BITFIELD (SAE),
BITFIELD (Disp8MemShift),
+ BITFIELD (Vsz),
BITFIELD (Optimize),
BITFIELD (ATTMnemonic),
BITFIELD (ATTSyntax),