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

Reply via email to