From: Richard Kenner Date: Fri, 13 Aug 1993 18:30:00 +0000 (-0400) Subject: (expand_inline_function): Copy args that are in hard regs instead of X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=23d5d23d23a4f75d7ecbaff702deb77d8fac0f7a;p=platform%2Fupstream%2Fgcc.git (expand_inline_function): Copy args that are in hard regs instead of substiting them directly into insns. From-SVN: r5154 --- diff --git a/gcc/integrate.c b/gcc/integrate.c index 894a938..bb48c28 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -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);