aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorBenjamin Maxwell <benjamin.maxwell@arm.com>2025-08-06 09:21:57 +0100
committerGitHub <noreply@github.com>2025-08-06 09:21:57 +0100
commitff5fa711b3078b3305aa5b5a2d02f9d97421c662 (patch)
treec062ed1ffb7d07fe129e9b80d45fee96199a40de /llvm/lib/Object/ELFObjectFile.cpp
parent753885eaaf8745a64f502a3a65fa89456d632cd5 (diff)
downloadllvm-ff5fa711b3078b3305aa5b5a2d02f9d97421c662.zip
llvm-ff5fa711b3078b3305aa5b5a2d02f9d97421c662.tar.gz
llvm-ff5fa711b3078b3305aa5b5a2d02f9d97421c662.tar.bz2
[AArch64][SVE] Tweak how SVE CFI expressions are emitted (#151677)
The main change in this patch is we go from emitting the expression: @ cfa - NumBytes - NumScalableBytes * VG To: @ cfa - VG * NumScalableBytes - NumBytes That is, VG is the first expression. This is for a future patch that adds an alternative way to resolve VG (which uses the CFA, so it is convenient for the CFA to be at the top of the stack). Since doing this is fairly churn-heavy, I took the opportunity to also save up to 4-bytes per SVE CFI expression. This is done by folding LEB128 constants to literals when in the range 0 to 31, and using the offset in `DW_OP_breg*` expressions.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions