https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91683
--- Comment #20 from Jim Wilson <wilson at gcc dot gnu.org> --- Author: wilson Date: Thu Sep 19 01:19:25 2019 New Revision: 275925 URL: https://gcc.gnu.org/viewcvs?rev=275925&root=gcc&view=rev Log: RISC-V: Fix more splitters accidentally calling gen_reg_rtx. PR target/91683 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter. (riscv_move_integer): Likewise. * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new riscv_move_integer arg. (riscv_legitimize_move): Likewise. (riscv_force_temporary): New parameter in_splitter. Don't call force_reg if true. (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary arg. (riscv_add_offset): Likewise. (riscv_split_symbol): New parameter in_splitter. Pass to riscv_force_temporary. (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol arg. (riscv_move_integer): New parameter in_splitter. New local can_create_psuedo. Don't call riscv_split_integer or force_reg when in_splitter TRUE. (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer, riscv_split_symbol, and riscv_force_temporary args. * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new riscv_move_integer arg. (low<mode>+2): Pass TRUE for new riscv_split_symbol arg. Modified: trunk/gcc/ChangeLog trunk/gcc/config/riscv/riscv-protos.h trunk/gcc/config/riscv/riscv.c trunk/gcc/config/riscv/riscv.md