x86: fix CMPXCHG8B special case when disallowing q suffix outside of 64-bit mode
Jan Beulich
jbeulich@suse.com
Wed Mar 24 13:58:59 GMT 2021
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.
gas/
2021-03-XX Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (match_template): Use t instead of i.tm.
--- 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))
More information about the Binutils
mailing list