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

            Bug ID: 103307
           Summary: Unused "%!" before return
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: ubizjak at gmail dot com
  Target Milestone: ---
            Target: i386, x86-64

x86 backend has

i386.c:      output_asm_insn ("%!ret", NULL);
i386.c:    return "%!ret";
i386.md:  "%!ret\t%0"

Before MPX was removed, "%!" was mapped to

        case '!':
          if (ix86_bnd_prefixed_insn_p (current_output_insn))
            fputs ("bnd ", file);
          return;

After CET was added and MPX was removed, "%!" was mapped to

       case '!':
          if (ix86_notrack_prefixed_insn_p (current_output_insn))
            fputs ("notrack ", file);
          return;

ix86_notrack_prefixed_insn_p always returns false on RET since the
notrack prefix is only for indirect branches.  Therefore, "%!" before
RET is unused.

Reply via email to