hppa: Fix integer REG+D address reloads
I made a mistake in the previous change to integer_store_memory_operand. There is no support pa_emit_move sequence to handle secondary reloads of integer REG+D instructions. Further, the Q constraint is used for some non-simple instructions (movb and addib). Thus, we need to return true when reload is in progress. 2023-11-22 John David Anglin <danglin@gcc.gnu.org> gcc/ChangeLog: PR target/112617 * config/pa/predicates.md (integer_store_memory_operand): Return true for REG+D addresses when reload_in_progress is true.
This commit is contained in:
parent
3f266c84a1
commit
a89224f819
1 changed files with 7 additions and 0 deletions
|
@ -308,6 +308,13 @@
|
||||||
|
|
||||||
if (reg_plus_base_memory_operand (op, mode))
|
if (reg_plus_base_memory_operand (op, mode))
|
||||||
{
|
{
|
||||||
|
/* There is no support for handling secondary reloads of integer
|
||||||
|
REG+D instructions in pa_emit_move_sequence. Further, the Q
|
||||||
|
constraint is used in more than simple move instructions. So,
|
||||||
|
we must return true and let reload handle the reload. */
|
||||||
|
if (reload_in_progress)
|
||||||
|
return true;
|
||||||
|
|
||||||
/* Extract CONST_INT operand. */
|
/* Extract CONST_INT operand. */
|
||||||
if (GET_CODE (op) == SUBREG)
|
if (GET_CODE (op) == SUBREG)
|
||||||
op = SUBREG_REG (op);
|
op = SUBREG_REG (op);
|
||||||
|
|
Loading…
Add table
Reference in a new issue