[AArch64] Add an assert to aarch64_layout_frame
This patch adds an assert that all the individual *_adjust allocations add up to the full frame size. With that safety net, it seemed slightly clearer to use crtl->outgoing_args_size as the final adjustment where appropriate, to match what's used in the comments. This is a bit overkill on its own, but I need to add more cases for SVE. 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64.c (aarch64_layout_frame): Assert that all the adjustments add up to the full frame size. Use crtl->outgoing_args_size directly as the final adjustment where appropriate. From-SVN: r277060
This commit is contained in:
parent
ab43763e51
commit
8e66b377a9
@ -1,3 +1,10 @@
|
||||
2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_layout_frame): Assert
|
||||
that all the adjustments add up to the full frame size.
|
||||
Use crtl->outgoing_args_size directly as the final adjustment
|
||||
where appropriate.
|
||||
|
||||
2019-10-16 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
|
||||
|
@ -5476,7 +5476,7 @@ aarch64_layout_frame (void)
|
||||
stp reg3, reg4, [sp, 16]
|
||||
sub sp, sp, outgoing_args_size */
|
||||
frame.callee_adjust = const_fp_offset;
|
||||
frame.final_adjust = frame.frame_size - frame.callee_adjust;
|
||||
frame.final_adjust = crtl->outgoing_args_size;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -5487,9 +5487,14 @@ aarch64_layout_frame (void)
|
||||
stp reg3, reg4, [sp, 16]
|
||||
sub sp, sp, outgoing_args_size */
|
||||
frame.initial_adjust = frame.hard_fp_offset;
|
||||
frame.final_adjust = frame.frame_size - frame.initial_adjust;
|
||||
frame.final_adjust = crtl->outgoing_args_size;
|
||||
}
|
||||
|
||||
/* Make sure the individual adjustments add up to the full frame size. */
|
||||
gcc_assert (known_eq (frame.initial_adjust
|
||||
+ frame.callee_adjust
|
||||
+ frame.final_adjust, frame.frame_size));
|
||||
|
||||
frame.laid_out = true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user