diff options
author | Benjamin Maxwell <benjamin.maxwell@arm.com> | 2025-09-29 09:06:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-29 09:06:25 +0100 |
commit | f92c23d713c048f8729b66310ea3fef9715f16e5 (patch) | |
tree | 3dbb75a2e8da23af6f9c5d6c25098c8e059e00b2 /llvm/lib/Support/VirtualFileSystem.cpp | |
parent | 99774ec661a4487f0c334d8396487359db918cd1 (diff) | |
download | llvm-f92c23d713c048f8729b66310ea3fef9715f16e5.zip llvm-f92c23d713c048f8729b66310ea3fef9715f16e5.tar.gz llvm-f92c23d713c048f8729b66310ea3fef9715f16e5.tar.bz2 |
[AArch64][SME][SDAG] Add basic support for exception handling (#159363)
This patch adds basic support for exception handling to SelectionDAG for
ZT0, ZA, and agnostic ZA state. This works based on the following
assumptions:
- To throw an exception requires calling into the runtime
* The which will be a private ZA call (that commits the lazy save)
- Therefore, as noted in https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#exceptions
we will always enter the EH block with PSTATE.ZA=0 and TPIDR2_EL0=null,
so we can emit a restore of ZA/ZT0.
Note: This patch does not handle all cases yet. Currently, there is no
support for committing agnostic ZA state before `invoke`s, regardless of
whether the callee is also agnostic (to ensure ZA state is saved on all
normal returns).
Diffstat (limited to 'llvm/lib/Support/VirtualFileSystem.cpp')
0 files changed, 0 insertions, 0 deletions