]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Fix more splitters accidentally calling gen_reg_rtx.
authorKito Cheng <kito.cheng@sifive.com>
Fri, 20 Sep 2019 10:41:51 +0000 (10:41 +0000)
committerKito Cheng <kito@gcc.gnu.org>
Fri, 20 Sep 2019 10:41:51 +0000 (10:41 +0000)
commita2eb0d21717c12c9dea1cf3c84dcf7557f60795f
tree5a280d5b1ddd19874b47da01de983249ce5ac9d4
parent905277d746c3bf3ef5756f2b42312e3c5f2c00da
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.

From-SVN: r275997
gcc/ChangeLog
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv.c
gcc/config/riscv/riscv.md