Hi All,
This expands the comment on an assert we have in aarch64_layout_frame
and points to an existing comment somewhere else that has a much longer
explanation of what's going on.
Committed under the GCC Obvious rule.
Thanks,
Tamar
gcc/ChangeLog:
* config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
--
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 97da60762390db81df9cffaf316b909cd1609130..973c65aa4fb348450872036617362aa17310fb20 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -6531,7 +6531,9 @@ aarch64_layout_frame (void)
&& !crtl->abi->clobbers_full_reg_p (regno))
frame.reg_offset[regno] = SLOT_REQUIRED;
- /* With stack-clash, LR must be saved in non-leaf functions. */
+ /* With stack-clash, LR must be saved in non-leaf functions. The saving of
+ LR counts as an implicit probe which allows us to maintain the invariant
+ described in the comment at expand_prologue. */
gcc_assert (crtl->is_leaf
|| maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));