diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-09-12 16:05:09 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-09-12 16:05:09 +0100 |
commit | 67a36b6f5d6be11d280081b461e72910aca2fc54 (patch) | |
tree | a556b4206f96ac76e12d42be0d974479357964f4 /gcc/go | |
parent | 492b60670e69b0a7f11345b69a3c922c20d5d8c3 (diff) | |
download | gcc-67a36b6f5d6be11d280081b461e72910aca2fc54.zip gcc-67a36b6f5d6be11d280081b461e72910aca2fc54.tar.gz gcc-67a36b6f5d6be11d280081b461e72910aca2fc54.tar.bz2 |
aarch64: Measure reg_offset from the bottom of the frame
reg_offset was measured from the bottom of the saved register area.
This made perfect sense with the original layout, since the bottom
of the saved register area was also the hard frame pointer address.
It became slightly less obvious with SVE, since we save SVE
registers below the hard frame pointer, but it still made sense.
However, if we want to allow different frame layouts, it's more
convenient and obvious to measure reg_offset from the bottom of
the frame. After previous patches, it's also a slight simplification
in its own right.
gcc/
* config/aarch64/aarch64.h (aarch64_frame): Add comment above
reg_offset.
* config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
from the bottom of the frame, rather than the bottom of the saved
register area. Measure reg_offset from the bottom of the frame
rather than the bottom of the saved register area.
(aarch64_save_callee_saves): Update accordingly.
(aarch64_restore_callee_saves): Likewise.
(aarch64_get_separate_components): Likewise.
(aarch64_process_components): Likewise.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions