From 175ce60f0ff7f3423b49c0d41a88a0c51a08ac03 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 1 Dec 2023 08:27:49 +0100 Subject: x86: suppress optimization after potential non-insn Just like avoiding to do other transformations potentially affected by stand-alone prefixes or direct data emission, also avoid optimization on the following insn. --- gas/config/tc-i386.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gas') diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 059dd49..f2f1e3b 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5120,6 +5120,11 @@ md_assemble (char *line) retry: init_globals (); + /* Suppress optimization when the last thing we saw may not have been + a proper instruction (e.g. a stand-alone prefix or .byte). */ + if (last_insn->kind != last_insn_other) + i.no_optimize = true; + /* First parse an instruction mnemonic & call i386_operand for the operands. We assume that the scrubber has arranged it so that line[0] is the valid start of a (possibly prefixed) mnemonic. */ -- cgit v1.1