lra: Don't remove the scratch in (mem:BLK (scratch))
LRA wants to replace SCRATCH registers with real registers. It should not do that with (mem:BLK (scratch)), which is special, not really a scratch register. 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org> * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch)) by ignoring it. From-SVN: r229551
This commit is contained in:
parent
0bb7645daa
commit
823bb05499
2 changed files with 10 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
|
||||
by ignoring it.
|
||||
|
||||
2015-10-29 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/68124
|
||||
|
|
|
@ -2874,6 +2874,11 @@ process_address_1 (int nop, bool check_only_p,
|
|||
enum constraint_num cn = lookup_constraint (constraint);
|
||||
bool change_p = false;
|
||||
|
||||
if (MEM_P (op)
|
||||
&& GET_MODE (op) == BLKmode
|
||||
&& GET_CODE (XEXP (op, 0)) == SCRATCH)
|
||||
return false;
|
||||
|
||||
if (insn_extra_address_constraint (cn))
|
||||
decompose_lea_address (&ad, curr_id->operand_loc[nop]);
|
||||
else if (MEM_P (op))
|
||||
|
|
Loading…
Add table
Reference in a new issue