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

            Bug ID: 104673
           Summary: powerpc e500mc Error: unrecognized opcode: `isel'
           Product: gcc
           Version: 11.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: judge.packham at gmail dot com
  Target Milestone: ---

Created attachment 52503
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52503&action=edit
assembly file emitted by GCC

When building for powerpc with -mcpu=e500mc the generated assembly includes a
".machine ppc" directive which causes gas to ignore the command line -me500mc
flag. This means that it decides any e500mc specific instructions are invalid.

Attached is the generated assembly from a build with gcc 11.2 cross-compiled
for powerpc. As you can see the .machine directive says ppc but when gas sees
this it will reset it's internal state and decide the isel instruction is
invalid.

I think this might be an regression from
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=2d94f7dea9.

GCC only seems to have a limited set of machines it will emit which don't match
with what binutils uses.

Reply via email to