[AArch64] Relocate saved_varargs_size.
From-SVN: r211270
This commit is contained in:
parent
3483442092
commit
8799637aad
@ -1,3 +1,15 @@
|
||||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.h (machine_function): Move
|
||||
saved_varargs_size from here...
|
||||
(aarch64_frameGTY): ... to here.
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_expand_prologue)
|
||||
(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
|
||||
(aarch64_initial_elimination_offset)
|
||||
(aarch64_setup_incoming_varargs): Adjust location of
|
||||
saved_varargs_size.
|
||||
|
||||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
|
||||
|
@ -2130,9 +2130,9 @@ aarch64_expand_prologue (void)
|
||||
rtx insn;
|
||||
|
||||
aarch64_layout_frame ();
|
||||
original_frame_size = get_frame_size () + cfun->machine->saved_varargs_size;
|
||||
gcc_assert ((!cfun->machine->saved_varargs_size || cfun->stdarg)
|
||||
&& (cfun->stdarg || !cfun->machine->saved_varargs_size));
|
||||
original_frame_size = get_frame_size () + cfun->machine->frame.saved_varargs_size;
|
||||
gcc_assert ((!cfun->machine->frame.saved_varargs_size || cfun->stdarg)
|
||||
&& (cfun->stdarg || !cfun->machine->frame.saved_varargs_size));
|
||||
frame_size = (original_frame_size + cfun->machine->frame.saved_regs_size
|
||||
+ crtl->outgoing_args_size);
|
||||
offset = frame_size = AARCH64_ROUND_UP (frame_size,
|
||||
@ -2296,7 +2296,7 @@ aarch64_expand_epilogue (bool for_sibcall)
|
||||
rtx cfa_reg;
|
||||
|
||||
aarch64_layout_frame ();
|
||||
original_frame_size = get_frame_size () + cfun->machine->saved_varargs_size;
|
||||
original_frame_size = get_frame_size () + cfun->machine->frame.saved_varargs_size;
|
||||
frame_size = (original_frame_size + cfun->machine->frame.saved_regs_size
|
||||
+ crtl->outgoing_args_size);
|
||||
offset = frame_size = AARCH64_ROUND_UP (frame_size,
|
||||
@ -2495,7 +2495,7 @@ aarch64_final_eh_return_addr (void)
|
||||
{
|
||||
HOST_WIDE_INT original_frame_size, frame_size, offset, fp_offset;
|
||||
aarch64_layout_frame ();
|
||||
original_frame_size = get_frame_size () + cfun->machine->saved_varargs_size;
|
||||
original_frame_size = get_frame_size () + cfun->machine->frame.saved_varargs_size;
|
||||
frame_size = (original_frame_size + cfun->machine->frame.saved_regs_size
|
||||
+ crtl->outgoing_args_size);
|
||||
offset = frame_size = AARCH64_ROUND_UP (frame_size,
|
||||
@ -4258,7 +4258,7 @@ aarch64_initial_elimination_offset (unsigned from, unsigned to)
|
||||
aarch64_layout_frame ();
|
||||
frame_size = (get_frame_size () + cfun->machine->frame.saved_regs_size
|
||||
+ crtl->outgoing_args_size
|
||||
+ cfun->machine->saved_varargs_size);
|
||||
+ cfun->machine->frame.saved_varargs_size);
|
||||
|
||||
frame_size = AARCH64_ROUND_UP (frame_size, STACK_BOUNDARY / BITS_PER_UNIT);
|
||||
offset = frame_size;
|
||||
@ -6959,7 +6959,7 @@ aarch64_setup_incoming_varargs (cumulative_args_t cum_v, enum machine_mode mode,
|
||||
|
||||
/* We don't save the size into *PRETEND_SIZE because we want to avoid
|
||||
any complication of having crtl->args.pretend_args_size changed. */
|
||||
cfun->machine->saved_varargs_size
|
||||
cfun->machine->frame.saved_varargs_size
|
||||
= (AARCH64_ROUND_UP (gr_saved * UNITS_PER_WORD,
|
||||
STACK_BOUNDARY / BITS_PER_UNIT)
|
||||
+ vr_saved * UNITS_PER_VREG);
|
||||
|
@ -514,6 +514,13 @@ extern enum aarch64_processor aarch64_tune;
|
||||
struct GTY (()) aarch64_frame
|
||||
{
|
||||
HOST_WIDE_INT reg_offset[FIRST_PSEUDO_REGISTER];
|
||||
|
||||
/* The number of extra stack bytes taken up by register varargs.
|
||||
This area is allocated by the callee at the very top of the
|
||||
frame. This value is rounded up to a multiple of
|
||||
STACK_BOUNDARY. */
|
||||
HOST_WIDE_INT saved_varargs_size;
|
||||
|
||||
HOST_WIDE_INT saved_regs_size;
|
||||
/* Padding if needed after the all the callee save registers have
|
||||
been saved. */
|
||||
@ -526,11 +533,6 @@ struct GTY (()) aarch64_frame
|
||||
typedef struct GTY (()) machine_function
|
||||
{
|
||||
struct aarch64_frame frame;
|
||||
|
||||
/* The number of extra stack bytes taken up by register varargs.
|
||||
This area is allocated by the callee at the very top of the frame. */
|
||||
HOST_WIDE_INT saved_varargs_size;
|
||||
|
||||
} machine_function;
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user