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