aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-03-25 08:20:55 +0100
committerJan Beulich <jbeulich@suse.com>2021-03-25 08:20:55 +0100
commit5e74b4959bdeb5660c5e6f3e7a293269043a9a67 (patch)
treeac4646d88824e35566f0313f9ce547a7f76c6b82
parent596a02ff558a88b7ad75a9904fe3d6b1615fdd1a (diff)
downloadgdb-5e74b4959bdeb5660c5e6f3e7a293269043a9a67.zip
gdb-5e74b4959bdeb5660c5e6f3e7a293269043a9a67.tar.gz
gdb-5e74b4959bdeb5660c5e6f3e7a293269043a9a67.tar.bz2
x86: fix CMPXCHG8B special case when disallowing q suffix outside of 64-bit mode
In match_template() i.tm hasn't been filled yet, so it is necessarily t which needs checking. This is only a latent issue as no other templates with the same base_opcode have an extension_opcode of 1.
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-i386.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1b9c1fb..a540566 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
2021-03-25 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (match_template): Use t instead of i.tm.
+
+2021-03-25 Jan Beulich <jbeulich@suse.com>
+
* testsuite/gas/i386/avx512f-nondef.s: Add vgather cases.
* testsuite/gas/i386/x86-64-vgather-check.s: Add cases with
colliding registers in the upper half of the space.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 785d0c4..a2ba8d8 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -6290,7 +6290,7 @@ match_template (char mnem_suffix)
if (((i.suffix == QWORD_MNEM_SUFFIX
&& flag_code != CODE_64BIT
&& !(t->base_opcode == 0xfc7
- && i.tm.opcode_modifier.opcodeprefix == PREFIX_NONE
+ && t->opcode_modifier.opcodeprefix == PREFIX_NONE
&& t->extension_opcode == 1) /* cmpxchg8b */)
|| (i.suffix == LONG_MNEM_SUFFIX
&& !cpu_arch_flags.bitfield.cpui386))