* recog.c (constrain_operands): Validate mem operands.
From-SVN: r75624
This commit is contained in:
parent
c31d56ed06
commit
47069ecbe6
@ -1,3 +1,7 @@
|
||||
2004-01-09 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* recog.c (constrain_operands): Validate mem operands.
|
||||
|
||||
2004-01-09 James E Wilson <wilson@specifixinc.com>
|
||||
|
||||
* gcc.c (init_spec): Remove -lunwind from shared case.
|
||||
|
25
gcc/recog.c
25
gcc/recog.c
@ -2445,12 +2445,25 @@ constrain_operands (int strict)
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
if (GET_CODE (op) == MEM
|
||||
/* Before reload, accept what reload can turn into mem. */
|
||||
|| (strict < 0 && CONSTANT_P (op))
|
||||
/* During reload, accept a pseudo */
|
||||
|| (reload_in_progress && GET_CODE (op) == REG
|
||||
&& REGNO (op) >= FIRST_PSEUDO_REGISTER))
|
||||
/* Memory operands must be valid, to the extent
|
||||
required by STRICT. */
|
||||
if (GET_CODE (op) == MEM)
|
||||
{
|
||||
if (strict > 0
|
||||
&& !strict_memory_address_p (GET_MODE (op),
|
||||
XEXP (op, 0)))
|
||||
break;
|
||||
if (strict == 0
|
||||
&& !memory_address_p (GET_MODE (op), XEXP (op, 0)))
|
||||
break;
|
||||
win = 1;
|
||||
}
|
||||
/* Before reload, accept what reload can turn into mem. */
|
||||
else if (strict < 0 && CONSTANT_P (op))
|
||||
win = 1;
|
||||
/* During reload, accept a pseudo */
|
||||
else if (reload_in_progress && GET_CODE (op) == REG
|
||||
&& REGNO (op) >= FIRST_PSEUDO_REGISTER)
|
||||
win = 1;
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user