aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDavid Spickett <david.spickett@linaro.org>2023-11-02 15:56:46 +0000
committerGitHub <noreply@github.com>2023-11-02 15:56:46 +0000
commit0d0ca51ffe1002cec3b1b7a332e290176b650390 (patch)
tree2cd363803701799d9a9ec67f9ccd438ee464349e /clang/lib/CodeGen/CodeGenModule.cpp
parent5e1d81ac680482eef401f944bccb6cf03bc7115f (diff)
downloadllvm-0d0ca51ffe1002cec3b1b7a332e290176b650390.zip
llvm-0d0ca51ffe1002cec3b1b7a332e290176b650390.tar.gz
llvm-0d0ca51ffe1002cec3b1b7a332e290176b650390.tar.bz2
[lldb][AArch64] Read SME2's ZT0 register from Linux core files (#70934)
The ZT0 register is always 64 bytes in size so it is a lot easier to handle than ZA which is scalable. In addition, reading an inactive ZT0 via ptrace returns all 0s, unlike ZA which returns no register data. This means that a corefile from a process where ZA and ZT0 were inactive still contains an NT_ARM_ZT note and we can simply say that if it's there, then we should be able to read from it. Along the way I removed a redundant check on the size of the ZA note. If that note's size is < the ZA header size, we do not have SME, and therefore could not have SME2 either. I have added ZT0 to the existing SME core files tests. This means that you need an SME2 system to generate them (Arm's FVP at this point). I think this is a fair tradeoff given that this is all running in simulation anyway and seperate ZT0 tests would be 99% identical copies of the ZA only tests.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions