RISC-V: Add cr and cf constraint
gcc/ChangeLog: * config/riscv/constraints.md (cr): New. (cf): New. * config/riscv/riscv.h (reg_class): Add RVC_GR_REGS and RVC_FP_REGS. (REG_CLASS_NAMES): Ditto. (REG_CLASS_CONTENTS): Ditto. * doc/md.texi: Document cr and cf constraint. * config/riscv/riscv.cc (riscv_regno_to_class): Update FP_REGS to RVC_FP_REGS since it smaller set. (riscv_secondary_memory_needed): Handle RVC_FP_REGS. (riscv_register_move_cost): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/constraint-cf-zfinx.c: New. * gcc.target/riscv/constraint-cf.c: New. * gcc.target/riscv/constraint-cr.c: New.
Showing
- gcc/config/riscv/constraints.md 6 additions, 0 deletionsgcc/config/riscv/constraints.md
- gcc/config/riscv/riscv.cc 17 additions, 11 deletionsgcc/config/riscv/riscv.cc
- gcc/config/riscv/riscv.h 6 additions, 0 deletionsgcc/config/riscv/riscv.h
- gcc/doc/md.texi 7 additions, 0 deletionsgcc/doc/md.texi
- gcc/testsuite/gcc.target/riscv/constraint-cf-zfinx.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/constraint-cf-zfinx.c
- gcc/testsuite/gcc.target/riscv/constraint-cf.c 14 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/constraint-cf.c
- gcc/testsuite/gcc.target/riscv/constraint-cr.c 13 additions, 0 deletionsgcc/testsuite/gcc.target/riscv/constraint-cr.c
Loading