From: Richard Kenner Date: Tue, 25 Apr 1995 23:08:04 +0000 (-0400) Subject: (assign_parms): If STACK_REGS is defined... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9dc0f531444e86626bd6ede1d14aa8d0131eca1c;p=gcc.git (assign_parms): If STACK_REGS is defined... (assign_parms): If STACK_REGS is defined, generate USE insns before the function body, thus showing which registers are filled with parameters. From-SVN: r9461 --- diff --git a/gcc/function.c b/gcc/function.c index 48bcc9f3d8a..6a936ff22b6 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3497,6 +3497,17 @@ assign_parms (fndecl, second_time) } #endif /* 0 */ +#ifdef STACK_REGS + /* We need this "use" info, because the gcc-register->stack-register + converter in reg-stack.c needs to know which registers are active + at the start of the function call. The actual parameter loading + instructions are not always available then anymore, since they might + have been optimised away. */ + + if (GET_CODE (entry_parm) == REG && !(hide_last_arg && last_named)) + emit_insn (gen_rtx (USE, GET_MODE (entry_parm), entry_parm)); +#endif + /* ENTRY_PARM is an RTX for the parameter as it arrives, in the mode in which it arrives. STACK_PARM is an RTX for a stack slot where the parameter can live