function.c (locate_and_pad_parm): Record parameter alignment in stack_alignment_needed.
* function.c (locate_and_pad_parm): Record parameter alignment in stack_alignment_needed. From-SVN: r101732
This commit is contained in:
parent
bde1427e3b
commit
c7e777b576
2 changed files with 13 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-07-07 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* function.c (locate_and_pad_parm): Record parameter alignment in
|
||||
stack_alignment_needed.
|
||||
|
||||
2005-07-07 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
|
||||
|
|
|
@ -3256,7 +3256,7 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs,
|
|||
{
|
||||
tree sizetree;
|
||||
enum direction where_pad;
|
||||
int boundary;
|
||||
unsigned int boundary;
|
||||
int reg_parm_stack_space = 0;
|
||||
int part_size_in_regs;
|
||||
|
||||
|
@ -3291,6 +3291,13 @@ locate_and_pad_parm (enum machine_mode passed_mode, tree type, int in_regs,
|
|||
locate->where_pad = where_pad;
|
||||
locate->boundary = boundary;
|
||||
|
||||
/* Remember if the outgoing parameter requires extra alignment on the
|
||||
calling function side. */
|
||||
if (boundary > PREFERRED_STACK_BOUNDARY)
|
||||
boundary = PREFERRED_STACK_BOUNDARY;
|
||||
if (cfun->stack_alignment_needed < boundary)
|
||||
cfun->stack_alignment_needed = boundary;
|
||||
|
||||
#ifdef ARGS_GROW_DOWNWARD
|
||||
locate->slot_offset.constant = -initial_offset_ptr->constant;
|
||||
if (initial_offset_ptr->var)
|
||||
|
|
Loading…
Add table
Reference in a new issue