This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fix amd64 bootstrap


So this is in fact fallout from my last unsigned alignment patch.
The previous code sort of accidentailly worked with the narrower
signed alignment.


r~


        * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
        before rounding.

Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.562
diff -c -p -d -r1.562 function.c
*** function.c	26 Jul 2004 17:51:20 -0000	1.562
--- function.c	27 Jul 2004 21:48:56 -0000
*************** assign_stack_local_1 (enum machine_mode 
*** 455,465 ****
  	  use logical operations which are unambiguous.  */
  #ifdef FRAME_GROWS_DOWNWARD
        function->x_frame_offset
! 	= (FLOOR_ROUND (function->x_frame_offset - frame_phase, alignment)
  	   + frame_phase);
  #else
        function->x_frame_offset
! 	= (CEIL_ROUND (function->x_frame_offset - frame_phase, alignment)
  	   + frame_phase);
  #endif
      }
--- 455,467 ----
  	  use logical operations which are unambiguous.  */
  #ifdef FRAME_GROWS_DOWNWARD
        function->x_frame_offset
! 	= (FLOOR_ROUND (function->x_frame_offset - frame_phase,
! 			(unsigned HOST_WIDE_INT) alignment)
  	   + frame_phase);
  #else
        function->x_frame_offset
! 	= (CEIL_ROUND (function->x_frame_offset - frame_phase,
! 		       (unsigned HOST_WIDE_INT) alignment)
  	   + frame_phase);
  #endif
      }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]