Correction to my last change
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Wed Aug 16 05:00:00 GMT 2000
I have no idea why this didn't show up on my testing on Alpha.
Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* calls.c (calls_function_1, expand_call): Only test
TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
*** calls.c 2000/08/16 01:15:36 1.149
--- calls.c 2000/08/16 11:55:49
*************** calls_function_1 (exp, which)
*** 282,287 ****
if (which == 0)
return 1;
! else if (TYPE_RETURNS_STACK_DEPRESSED
! (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0)))))
return 1;
else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
--- 282,289 ----
if (which == 0)
return 1;
! else if ((TREE_CODE (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0))))
! == FUNCTION_TYPE)
! && (TYPE_RETURNS_STACK_DEPRESSED
! (TREE_TYPE (TREE_TYPE (TREE_OPERAND (exp, 0))))))
return 1;
else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
*************** expand_call (exp, target, ignore)
*** 2196,2200 ****
/* Mark if the function returns with the stack pointer depressed. */
! if (TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (TREE_TYPE (p))))
{
flags |= ECF_SP_DEPRESSED;
--- 2198,2203 ----
/* Mark if the function returns with the stack pointer depressed. */
! if (TREE_CODE (TREE_TYPE (TREE_TYPE (p))) == FUNCTION_TYPE
! && TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (TREE_TYPE (p))))
{
flags |= ECF_SP_DEPRESSED;
*** function.c 2000/08/16 01:15:36 1.213
--- function.c 2000/08/16 11:55:59
*************** thread_prologue_and_epilogue_insns (f)
*** 7059,7063 ****
/* If this function returns with the stack depressed, massage
the epilogue to actually do that. */
! if (TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (current_function_decl)))
keep_stack_depressed (seq);
--- 7059,7064 ----
/* If this function returns with the stack depressed, massage
the epilogue to actually do that. */
! if (TREE_CODE (TREE_TYPE (current_function_decl)) == FUNCTION_TYPE
! && TYPE_RETURNS_STACK_DEPRESSED (TREE_TYPE (current_function_decl)))
keep_stack_depressed (seq);
More information about the Gcc-patches
mailing list