aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-03-24 08:31:41 +0100
committerJan Beulich <jbeulich@suse.com>2021-03-24 08:31:41 +0100
commit311845694b1fd27ab869bbadd5d07969a62099f4 (patch)
treec2d047baffcf9531eef71eca7a6ba9b9140a6e26 /gas
parent5d82f23764e91b1ce06afc334d269c55c9b6b3d3 (diff)
downloadgdb-311845694b1fd27ab869bbadd5d07969a62099f4.zip
gdb-311845694b1fd27ab869bbadd5d07969a62099f4.tar.gz
gdb-311845694b1fd27ab869bbadd5d07969a62099f4.tar.bz2
x86: don't use opcode_length to identify pseudo prefixes
This is in preparation of opcode_length going away as a field in the templates. Identify pseudo prefixes by a base opcode of zero instead: No real prefix has an opcode of zero. This at the same time allows dropping a curious special case from i386-gen. Since most attributes are identical for all pseudo prefixes, take the opportunity and also template them.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 19c47b7..91a8ad0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2021-03-24 Jan Beulich <jbeulich@suse.com>
+
+ * config/tc-i386.c (parse_insn): Recognize pseudo prefixes by
+ base_opcode and extension_opcode.
+
2021-03-23 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (pte): Re-order opc_pfx[] entries.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 1f2e407..dfb64d4 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -5101,10 +5101,11 @@ parse_insn (char *line, char *mnemonic)
current_templates->start->name);
return NULL;
}
- if (current_templates->start->opcode_length == 0)
+
+ if (current_templates->start->base_opcode == PSEUDO_PREFIX)
{
/* Handle pseudo prefixes. */
- switch (current_templates->start->base_opcode)
+ switch (current_templates->start->extension_opcode)
{
case Prefix_Disp8:
/* {disp8} */