Commit 1fd5360d by J"orn Rennecke Committed by Joern Rennecke

* expr.c (force_operand): Use convert_to_mode for conversions.

From-SVN: r108196
parent 444aea52
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
* expr.c (force_operand): Use convert_to_mode for conversions.
2005-12-07 J"orn Rennecke <joern.rennecke@st.com>
* reload.h (reg_equiv_invariant): Declare.
* reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
register also when reg_equiv_invariant[R] is set.
......
......@@ -5867,8 +5867,20 @@ force_operand (rtx value, rtx target)
}
if (UNARY_P (value))
{
int unsignedp = 0;
op1 = force_operand (XEXP (value, 0), NULL_RTX);
return expand_simple_unop (GET_MODE (value), code, op1, target, 0);
switch (code)
{
case ZERO_EXTEND: case UNSIGNED_FIX: case UNSIGNED_FLOAT:
unsignedp = 1;
/* fall through. */
case TRUNCATE:
case SIGN_EXTEND: case FIX: case FLOAT:
return convert_to_mode (GET_MODE (value), op1, unsignedp);
default:
return expand_simple_unop (GET_MODE (value), code, op1, target, 0);
}
}
#ifdef INSN_SCHEDULING
......
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