From 5e74b4959bdeb5660c5e6f3e7a293269043a9a67 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 25 Mar 2021 08:20:55 +0100 Subject: [PATCH] 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. --- gas/ChangeLog | 4 ++++ gas/config/tc-i386.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 1b9c1fb21c8..a54056667f1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2021-03-25 Jan Beulich + + * config/tc-i386.c (match_template): Use t instead of i.tm. + 2021-03-25 Jan Beulich * testsuite/gas/i386/avx512f-nondef.s: Add vgather cases. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 785d0c424c6..a2ba8d839e7 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)) -- 2.30.2