Commit 23d5d23d by Richard Kenner

(expand_inline_function): Copy args that are in hard regs instead of

substiting them directly into insns.

From-SVN: r5154
parent 842fbaaa
......@@ -1390,11 +1390,16 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add
constant equivalence.
If LOC is REG_USERVAR_P, the usual case, COPY must also have
that flag set if it is a register. */
that flag set if it is a register.
Also, don't allow hard registers here; they might not be valid
when substituted into insns. */
if ((GET_CODE (copy) != REG && GET_CODE (copy) != SUBREG)
|| (GET_CODE (copy) == REG && REG_USERVAR_P (loc)
&& ! REG_USERVAR_P (copy)))
&& ! REG_USERVAR_P (copy))
|| (GET_CODE (copy) == REG
&& REGNO (copy) < FIRST_PSEUDO_REGISTER))
{
temp = copy_to_mode_reg (GET_MODE (loc), copy);
REG_USERVAR_P (temp) = REG_USERVAR_P (loc);
......
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