On 9/4/25 23:14, Jim Lin wrote:
Previously the spec
https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/70
has changed the save/restore routines to save/restore the registers which
are really used for ILP32E/LP64 rather than always save/restore all
of ra/s0/s1.

I also found here that lacks the implementation for lp64e. If it's
necessary I will file anothor patch for that.
Yea, that seems like an independent followup to me.


gcc/ChangeLog:

        * config/riscv/riscv.cc (riscv_compute_frame_info): Remove the
         dedicated calculation for RVE.

libgcc/ChangeLog:

        * config/riscv/save-restore.S: Only save/restore the registers
         which are really used for ILP32E/LP64.

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/save-restore-cfi-3.c: New test.
---

Not a big fan of how the restore functions are handled with the _2 falling into _1 falling into _0, but presumably that's done to save space which is going to be critical for cases where the "E" variants get used. So I won't object to that.

OK and pushed to the trunk.

Thanks,
Jeff

Reply via email to