Commit 7a61c8e3 by Richard Stallman

(call_insn_operand): New funcion.

From-SVN: r4430
parent bd96cb78
...@@ -468,6 +468,26 @@ logic_int (op, mode) ...@@ -468,6 +468,26 @@ logic_int (op, mode)
{ {
return (GET_CODE (op) == CONST_INT && LOGIC_INT (op)); return (GET_CODE (op) == CONST_INT && LOGIC_INT (op));
} }
/* Test for a valid operand for a call instruction.
Don't allow the arg pointer register or virtual regs
since they may change into reg + const, which the patterns
can't handle yet. */
int
call_insn_operand (op, mode)
rtx op;
enum machine_mode mode;
{
if (GET_CODE (op) == MEM
&& (CONSTANT_ADDRESS_P (XEXP (op, 0))
|| (GET_CODE (XEXP (op, 0)) == REG
&& XEXP (op, 0) != arg_pointer_rtx
&& !(REGNO (XEXP (op, 0)) >= FIRST_PSEUDO_REGISTER
&& REGNO (XEXP (op, 0)) <= LAST_VIRTUAL_REGISTER))))
return 1;
return 0;
}
/* Return the best assembler insn template /* Return the best assembler insn template
for moving operands[1] into operands[0] as a fullword. */ for moving operands[1] into operands[0] as a fullword. */
......
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