On 9/29/25 8:01 AM, Yoshinori Sato wrote:
gcc/ChangeLog:
* config/rx/predicates.md (rx_plt_call_operand): New predicate.
* config/rx/rx.md (PIC_REG): New constant.
(UNSPEC_PIC): Likewise.
(UNSPEC_GOT): Likewise.
(UNSPEC_GOTOFF): Likewise.
(UNSPEC_PLT): Likewise.
(UNSPEC_GOTFUNCDESC): Likewise.
(UNSPEC_GOTOFFFUNCDESC): Likewise.
(UNSPEC_PCOFFSET): Likewise.
(UNSPEC_PIC_RESTORE): Likewise.
(UNSPEC_PC_LOCATION): Likewise.
(tablejump): Use relative in pic case.
(call): Add FDPIC call.
(call_value): Likewise.
(call_internal): Add use PICREG.
(call_value_internal): Likewise.
(mov<register_modes:mode>): Generate got reference code in pic.
(addsi3): Generate got reference code in pic.
(sym2GOT): New.
(sym2GOTreg): New.
(sym2GOTOFF): New.
(sym2GOTOFFreg): New.
(sym2GOTFUNCDESC): New.
(sym2GOTFUNCDESCreg): New.
(sym2GOTOFFFUNCDESC): New.
(sym2GOTOFFFUNCDESCreg): New.
(sym2PLT): New.
(call_fdpic): New.
(call_internal_fd): New.
(call_internal_plt): New.
(call_value_fdpic): New.
(call_value_internal_fd): New.
(call_value_internal_plt): New.
(pcoffset_label): New.
(set_got): New.
(load_pc_location): New.
Thanks. I'll have to dive into this when I've got a bit more time.
But I did want to raise the LRA issue now. The rx port really needs to
be flipped to use LRA instead of reload. We've got only a few more
weeks for that transition to happen (or at least start) or the rx port
is likely to fail to build for gcc-16.
It may "just work", in which case we just need to remove the conditional
code like rx_enable_lra and the TARGET_ENABLE_LRA stuff.
Jeff