Commit 401cec23 by Jim Wilson

(call_operand, call_operand_address): Accept any address not just REG rtx.

From-SVN: r4651
parent 6ffeae97
...@@ -113,7 +113,8 @@ restore_operand (op, mode) ...@@ -113,7 +113,8 @@ restore_operand (op, mode)
&& (REGNO (op) < 8 || (REGNO (op) >= 24 && REGNO (op) < 32))); && (REGNO (op) < 8 || (REGNO (op) >= 24 && REGNO (op) < 32)));
} }
/* PC-relative call insn on SPARC is independent of `memory_operand'. */ /* Call insn on SPARC can take a PC-relative constant address, or any regular
memory address. */
int int
call_operand (op, mode) call_operand (op, mode)
...@@ -123,7 +124,7 @@ call_operand (op, mode) ...@@ -123,7 +124,7 @@ call_operand (op, mode)
if (GET_CODE (op) != MEM) if (GET_CODE (op) != MEM)
abort (); abort ();
op = XEXP (op, 0); op = XEXP (op, 0);
return (REG_P (op) || CONSTANT_P (op)); return (CONSTANT_P (op) || memory_address_p (Pmode, op));
} }
int int
...@@ -131,7 +132,7 @@ call_operand_address (op, mode) ...@@ -131,7 +132,7 @@ call_operand_address (op, mode)
rtx op; rtx op;
enum machine_mode mode; enum machine_mode mode;
{ {
return (REG_P (op) || CONSTANT_P (op)); return (CONSTANT_P (op) || memory_address_p (Pmode, op));
} }
/* Returns 1 if OP is either a symbol reference or a sum of a symbol /* Returns 1 if OP is either a symbol reference or a sum of a symbol
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment