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