[adding gcc@] Hi, Jeff,
On Dec 6, 2023, Jeff Law <jeffreya...@gmail.com> wrote: > libgcc is currently failing to build on rl78, looks like it might be > strub related. Thanks for letting me know. >> /home/jlaw/test/gcc/libgcc/strub.c:149:1: error: unrecognizable insn: >> 149 | } >> | ^ >> (insn 30 64 33 4 (asm_operands/v ("") ("") 0 [ >> (mem/f:HI (reg:HI 8 r8) [1 *base_8+0 S2 A16]) >> ] >> [ >> (asm_input:HI ("m") /home/jlaw/test/gcc/libgcc/strub.c:147) >> ] >> [] /home/jlaw/test/gcc/libgcc/strub.c:147) >> "/home/jlaw/test/gcc/libgcc/strub.c":147:3 -1 >> (expr_list:REG_DEAD (reg:HI 8 r8) >> (nil))) >> during RTL pass: cprop_hardreg This looks like a latent bug in the port. This was just a plain asm insn in strub.c: /* Make sure the stack overwrites are not optimized away. */ asm ("" : : "m" (end[0])); whose constraint passes during reload, rl78_alloc_physical_registers leaves it alone and clears virt_insns_ok, so when cprog_hardreg attempts to extract constraints again, rl78_as_legitimate_address rejects r8 as the address because virt insns are no longer ok. I'm not at all familiar with this port, and I don't know what was supposed to happen here, but ISTM that either physical registers should be allocated for asms, or non-B0 regs should be accepted in asms. I don't see a maintainer listed for rl78; is there anyone familiar enough with it to confirm (or dispute ;-) my suspicions, and discuss possibilities to get this fixed? DJ, AFAICT was you who contributed the port. Do you have any wisdom about it to share? TIA, -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Think Assange & Stallman. The empires strike back