Commit c40cb38d by Richard Earnshaw Committed by Richard Earnshaw

re PR target/23783 (gcc.c-torture/compile/calls.c triggers an ICE)

	PR target/23783
	* arm.md (call): If the address isn't a SYMBOL_REF or a register,
	then force it into a register.
	(call_value): Likewise.

From-SVN: r105032
parent 5872662b
2005-10-06 Richard Earnshaw <richard.earnshaw@arm.com>
PR target/23783
* arm.md (call): If the address isn't a SYMBOL_REF or a register,
then force it into a register.
(call_value): Likewise.
2005-10-06 Richard Henderson <rth@redhat.com> 2005-10-06 Richard Henderson <rth@redhat.com>
PR 24049 PR 24049
......
...@@ -7455,8 +7455,10 @@ ...@@ -7455,8 +7455,10 @@
invoked it. */ invoked it. */
callee = XEXP (operands[0], 0); callee = XEXP (operands[0], 0);
if (GET_CODE (callee) != REG if ((GET_CODE (callee) == SYMBOL_REF
&& arm_is_longcall_p (operands[0], INTVAL (operands[2]), 0)) && arm_is_longcall_p (operands[0], INTVAL (operands[2]), 0))
|| (GET_CODE (callee) != SYMBOL_REF
&& GET_CODE (callee) != REG))
XEXP (operands[0], 0) = force_reg (Pmode, callee); XEXP (operands[0], 0) = force_reg (Pmode, callee);
}" }"
) )
...@@ -7545,8 +7547,10 @@ ...@@ -7545,8 +7547,10 @@
operands[3] = const0_rtx; operands[3] = const0_rtx;
/* See the comment in define_expand \"call\". */ /* See the comment in define_expand \"call\". */
if (GET_CODE (callee) != REG if ((GET_CODE (callee) == SYMBOL_REF
&& arm_is_longcall_p (operands[1], INTVAL (operands[3]), 0)) && arm_is_longcall_p (operands[1], INTVAL (operands[3]), 0))
|| (GET_CODE (callee) != SYMBOL_REF
&& GET_CODE (callee) != REG))
XEXP (operands[1], 0) = force_reg (Pmode, callee); XEXP (operands[1], 0) = force_reg (Pmode, callee);
}" }"
) )
......
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