From 23d5d23d23a4f75d7ecbaff702deb77d8fac0f7a Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 13 Aug 1993 14:30:00 -0400 Subject: [PATCH] (expand_inline_function): Copy args that are in hard regs instead of substiting them directly into insns. From-SVN: r5154 --- gcc/integrate.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/integrate.c b/gcc/integrate.c index 894a93847a7..bb48c28f2de 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); -- 2.30.2