[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

Reply via email to