https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86257

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
Adding a nop before the .byte fixes this:
...
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index eb77ef3c08f..d088b1e7fe0 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -14733,7 +14733,11 @@
   "TARGET_64BIT"
 {
   if (!TARGET_X32)
-    fputs (ASM_BYTE "0x66\n", asm_out_file);
+    {
+      if (debug_info_level >= DINFO_LEVEL_TERSE)
+        fputs ("\tnop\n", asm_out_file);
+      fputs (ASM_BYTE "0x66\n", asm_out_file);
+    }
   output_asm_insn
     ("lea{q}\t{%E1@tlsgd(%%rip), %%rdi|rdi, %E1@tlsgd[rip]}", operands);
   if (TARGET_SUN_TLS || flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
...

Reply via email to