]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
x86: suppress optimization after potential non-insn
authorJan Beulich <jbeulich@suse.com>
Fri, 1 Dec 2023 07:27:49 +0000 (08:27 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 1 Dec 2023 07:27:49 +0000 (08:27 +0100)
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

index 059dd49feead7734ea4ff4bb799d2ce01845360a..f2f1e3b9f6427dca4f53cd633e0f25b8f1db1333 100644 (file)
@@ -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.  */