diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-17 12:03:04 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-17 12:03:04 +0000 |
commit | 91ebded8a38290059ebac02b2c4ffce08d4dc64b (patch) | |
tree | 49f6bddf80954a1c4e78d3fb239c6a52162fa590 /gcc/calls.c | |
parent | f24d382c97a8ef347ac6de422176d8940576f332 (diff) | |
download | gcc-91ebded8a38290059ebac02b2c4ffce08d4dc64b.tar.gz |
* calls.c (expand_call): Do not sibcall if
outgoing_reg_parm_stack_space does not match.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142792 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 03994d4ecf5..b94d29800a8 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2298,6 +2298,10 @@ expand_call (tree exp, rtx target, int ignore) It does not seem worth the effort since few optimizable sibling calls will return a structure. */ || structure_value_addr != NULL_RTX + /* If outgoing reg parm stack space changes, we can not do sibcall. */ + || (OUTGOING_REG_PARM_STACK_SPACE (funtype) + != OUTGOING_REG_PARM_STACK_SPACE (TREE_TYPE (current_function_decl))) + || (reg_parm_stack_space != REG_PARM_STACK_SPACE (fndecl)) /* Check whether the target is able to optimize the call into a sibcall. */ || !targetm.function_ok_for_sibcall (fndecl, exp) |