This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
rs6000.c patch 1 of 4
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 23 Apr 2004 21:22:05 +0930
- Subject: rs6000.c patch 1 of 4
This tidies rs6000_stack_info a little. "total_raw_size - fixed_size" is
tested in two places, so it makes sense to leave fixed_size out of the
sum.
* config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
to non_fixed_size, and leave out fixed_size from the sum.
Bootstrapped, reg tested powerpc-linux along with the next 3 patches.
Split for ease of review.
Index: gcc/config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.629
diff -u -p -r1.629 rs6000.c
--- gcc/config/rs6000/rs6000.c 22 Apr 2004 02:02:13 -0000 1.629
+++ gcc/config/rs6000/rs6000.c 23 Apr 2004 08:24:40 -0000
@@ -10762,7 +10762,7 @@ rs6000_stack_info (void)
rs6000_stack_t *info_ptr = &info;
int reg_size = TARGET_32BIT ? 4 : 8;
int ehrd_size;
- HOST_WIDE_INT total_raw_size;
+ HOST_WIDE_INT non_fixed_size;
/* Zero all fields portably. */
info = zero_info;
@@ -10993,14 +10993,13 @@ rs6000_stack_info (void)
(TARGET_ALTIVEC_ABI || ABI_DARWIN)
? 16 : 8);
- total_raw_size = (info_ptr->vars_size
+ non_fixed_size = (info_ptr->vars_size
+ info_ptr->parm_size
+ info_ptr->save_size
- + info_ptr->varargs_size
- + info_ptr->fixed_size);
+ + info_ptr->varargs_size);
- info_ptr->total_size =
- RS6000_ALIGN (total_raw_size, ABI_STACK_BOUNDARY / BITS_PER_UNIT);
+ info_ptr->total_size = RS6000_ALIGN (non_fixed_size + info_ptr->fixed_size,
+ ABI_STACK_BOUNDARY / BITS_PER_UNIT);
/* Determine if we need to allocate any stack frame:
@@ -11018,7 +11017,7 @@ rs6000_stack_info (void)
info_ptr->push_p = 1;
else if (DEFAULT_ABI == ABI_V4)
- info_ptr->push_p = total_raw_size > info_ptr->fixed_size;
+ info_ptr->push_p = non_fixed_size != 0;
else if (frame_pointer_needed)
info_ptr->push_p = 1;
@@ -11027,8 +11026,7 @@ rs6000_stack_info (void)
info_ptr->push_p = 1;
else
- info_ptr->push_p
- = total_raw_size - info_ptr->fixed_size > (TARGET_32BIT ? 220 : 288);
+ info_ptr->push_p = non_fixed_size > (TARGET_32BIT ? 220 : 288);
/* Zero offsets if we're not saving those registers. */
if (info_ptr->fp_size == 0)
--
Alan Modra
IBM OzLabs - Linux Technology Centre