https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119966
            Bug ID: 119966
           Summary: pru: Invalid register in RTL expression starting with
                    r16-160-ge6f89d78c1a752
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dimitar at gcc dot gnu.org
  Target Milestone: ---

Cross building libbacktrace for pru-unknown-elf results in ICE:

  elf.c:5006:1: internal compiler error: in pru_asm_regname, at
config/pru/pru.cc:1704

Indeed, SI mode is selected for register r0.b1, which is invalid. Only r0 is
valid for SI mode:

(gdb) pr insn
(insn 3961 7067 3962 149 (set (reg:SI 56 r14.b0)
        (and:SI (reg:SI 1 r0.b1 [ _201 ])
            (const_int 3 [0x3])))
"../../pru-gcc-build/pru/libstdc++-v3/src/libbacktrace/elf.c":4651:8 494
{and_implsisisi__noz_z0_z1_z2}
     (expr_list:REG_DEAD (reg:QI 4 r1.b0) 
        (expr_list:REG_DEAD (reg:QI 3 r0.b3)
            (expr_list:REG_DEAD (reg:QI 2 r0.b2)
                (expr_list:REG_DEAD (reg:QI 1 r0.b1)
                    (nil))))))


This started with  r16-160-ge6f89d78c1a752

Reply via email to