diff options
author | Fei Gao <gaofei@eswincomputing.com> | 2023-08-29 08:37:45 +0000 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2023-08-30 18:02:07 +0800 |
commit | b27d323a368033f0b37e93c57a57a35fd9997864 (patch) | |
tree | 936ab00ac95f407a6db0b1fe803a5e5f57f4e6dc /contrib/unused_functions.py | |
parent | 3d1d3132b9d4dc8b6069ad95dad624371124f297 (diff) | |
download | gcc-b27d323a368033f0b37e93c57a57a35fd9997864.zip gcc-b27d323a368033f0b37e93c57a57a35fd9997864.tar.gz gcc-b27d323a368033f0b37e93c57a57a35fd9997864.tar.bz2 |
RISC-V: support cm.popretz in zcmp
Generate cm.popretz instead of cm.popret if return value is 0.
gcc/ChangeLog:
* config/riscv/riscv.cc
(riscv_zcmp_can_use_popretz): true if popretz can be used
(riscv_gen_multi_pop_insn): interface to generate cm.pop[ret][z]
(riscv_expand_epilogue): expand cm.pop[ret][z] in epilogue
* config/riscv/riscv.md: define A0_REGNUM
* config/riscv/zc.md
(@gpr_multi_popretz_up_to_ra_<mode>): md for popretz ra
(@gpr_multi_popretz_up_to_s0_<mode>): md for popretz ra, s0
(@gpr_multi_popretz_up_to_s1_<mode>): likewise
(@gpr_multi_popretz_up_to_s2_<mode>): likewise
(@gpr_multi_popretz_up_to_s3_<mode>): likewise
(@gpr_multi_popretz_up_to_s4_<mode>): likewise
(@gpr_multi_popretz_up_to_s5_<mode>): likewise
(@gpr_multi_popretz_up_to_s6_<mode>): likewise
(@gpr_multi_popretz_up_to_s7_<mode>): likewise
(@gpr_multi_popretz_up_to_s8_<mode>): likewise
(@gpr_multi_popretz_up_to_s9_<mode>): likewise
(@gpr_multi_popretz_up_to_s11_<mode>): likewise
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rv32e_zcmp.c: add testcase for cm.popretz in rv32e
* gcc.target/riscv/rv32i_zcmp.c: add testcase for cm.popretz in rv32i
Diffstat (limited to 'contrib/unused_functions.py')
0 files changed, 0 insertions, 0 deletions