aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-09-12 16:05:09 +0100
committerRichard Sandiford <richard.sandiford@arm.com>2023-09-12 16:05:09 +0100
commit67a36b6f5d6be11d280081b461e72910aca2fc54 (patch)
treea556b4206f96ac76e12d42be0d974479357964f4 /gcc/go
parent492b60670e69b0a7f11345b69a3c922c20d5d8c3 (diff)
downloadgcc-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