diff options
author | Kito Cheng <kito.cheng@sifive.com> | 2025-05-12 02:38:39 -0700 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2025-05-19 14:31:42 +0800 |
commit | a3e78dda4d51bc37adcfa088237e2b8567e76da2 (patch) | |
tree | 9229e6e56aec66526e11e4ffecb42a25bfb28a81 /libstdc++-v3 | |
parent | 2ec5082dd24cef5149ba645ee88a9acd8b4c290a (diff) | |
download | gcc-a3e78dda4d51bc37adcfa088237e2b8567e76da2.zip gcc-a3e78dda4d51bc37adcfa088237e2b8567e76da2.tar.gz gcc-a3e78dda4d51bc37adcfa088237e2b8567e76da2.tar.bz2 |
RISC-V: Support Zilsd code gen
This commit adds the code gen support for Zilsd, which is a
newly added extension for RISC-V. The Zilsd extension allows
for loading and storing 64-bit values using even-odd register
pairs.
We only try to do miminal code gen support for that, which means only
use the new instructions when the load store is 64 bits data, we can use
that to optimize the code gen of memcpy/memset/memmove and also the
prologue and epilogue of functions, but I think that probably should be
done in a follow up patch.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_legitimize_move): Handle
load/store with odd-even reg pair.
(riscv_split_64bit_move_p): Don't split load/store if zilsd enabled.
(riscv_hard_regno_mode_ok): Only allow even reg can be used for
64 bits mode for zilsd.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/zilsd-code-gen.c: New test.
Diffstat (limited to 'libstdc++-v3')
0 files changed, 0 insertions, 0 deletions