]> git.ipfire.org Git - thirdparty/gcc.git/commit
try multi-reg dest in default_zero_call_used_regs
authorAlexandre Oliva <oliva@adacore.com>
Tue, 5 Apr 2022 04:28:20 +0000 (01:28 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Tue, 5 Apr 2022 04:28:20 +0000 (01:28 -0300)
commit418967ca275853a570b0ae566d7022ff38e7cd0d
tree151cad8b0371780b64ba9d9ded748720d1b66636
parent5e09bb1b2e7ccea480a448fc45db3f3e1c1ae081
try multi-reg dest in default_zero_call_used_regs

When the mode of regno_reg_rtx is not hard_regno_mode_ok for the
target, try grouping the register with subsequent ones.  This enables
s16 to s31 and their hidden pairs to be zeroed with the default logic
on some arm variants.

for  gcc/ChangeLog

* targhooks.cc (default_zero_call_used_regs): Attempt to group
regs that the target refuses to use in their natural modes.
(zcur_select_mode_rtx): New.
* regs.h (struct target_regs): Add x_hard_regno_max_nregs.
(hard_regno_max_nregs): Define.
* reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
gcc/reginfo.cc
gcc/regs.h
gcc/targhooks.cc