Commit ff7f012a by Daniel Jacobowitz Committed by Daniel Jacobowitz

calls.c (expand_call): Handle current_function_pretend_args_size when checking for sibcalls.

	* calls.c (expand_call): Handle current_function_pretend_args_size
	when checking for sibcalls.

From-SVN: r99113
parent fda05890
2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
* calls.c (expand_call): Handle current_function_pretend_args_size
when checking for sibcalls.
2005-05-02 Kazu Hirata <kazu@cs.umass.edu> 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21294 PR tree-optimization/21294
......
...@@ -2197,8 +2197,11 @@ expand_call (tree exp, rtx target, int ignore) ...@@ -2197,8 +2197,11 @@ expand_call (tree exp, rtx target, int ignore)
the argument areas are shared. */ the argument areas are shared. */
|| (fndecl && decl_function_context (fndecl) == current_function_decl) || (fndecl && decl_function_context (fndecl) == current_function_decl)
/* If this function requires more stack slots than the current /* If this function requires more stack slots than the current
function, we cannot change it into a sibling call. */ function, we cannot change it into a sibling call.
|| args_size.constant > current_function_args_size current_function_pretend_args_size is not part of the
stack allocated by our caller. */
|| args_size.constant > (current_function_args_size
- current_function_pretend_args_size)
/* If the callee pops its own arguments, then it must pop exactly /* If the callee pops its own arguments, then it must pop exactly
the same number of arguments as the current function. */ the same number of arguments as the current function. */
|| (RETURN_POPS_ARGS (fndecl, funtype, args_size.constant) || (RETURN_POPS_ARGS (fndecl, funtype, args_size.constant)
......
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