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