s390: Check for ADDR_REGS in s390_decompose_addrstyle_without_index
An explicit check for address registers was not required so far since during register allocation the processing of address constraints was sufficient. However, address constraints themself do not check for REGNO_OK_FOR_{BASE,INDEX}_P. Thus, with the newly introduced late-combine pass in r15-1579-g792f97b44ffc5e we generate new insns with invalid address registers which aren't fixed up afterwards. Fixed by explicitly checking for address registers in s390_decompose_addrstyle_without_index such that those new insns are rejected. gcc/ChangeLog: PR target/115634 * config/s390/s390.cc (s390_decompose_addrstyle_without_index): Check for ADDR_REGS in s390_decompose_addrstyle_without_index.
This commit is contained in:
parent
7886830bb4
commit
187eeb99ec
1 changed files with 3 additions and 1 deletions
|
@ -3347,7 +3347,9 @@ s390_decompose_addrstyle_without_index (rtx op, rtx *base,
|
|||
while (op && GET_CODE (op) == SUBREG)
|
||||
op = SUBREG_REG (op);
|
||||
|
||||
if (op && GET_CODE (op) != REG)
|
||||
if (op && (!REG_P (op)
|
||||
|| (reload_completed
|
||||
&& !REGNO_OK_FOR_BASE_P (REGNO (op)))))
|
||||
return false;
|
||||
|
||||
if (offset)
|
||||
|
|
Loading…
Add table
Reference in a new issue