diff options
author | David Spickett <david.spickett@linaro.org> | 2023-07-28 08:03:40 +0000 |
---|---|---|
committer | David Spickett <david.spickett@linaro.org> | 2023-08-03 12:33:49 +0000 |
commit | 6239227172cdc92f3bb72131333f50f83a6439cf (patch) | |
tree | a517c2c846419c31afc6f69c55d48a13374c90d4 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f17601b9a7376564b689083477a76a26c7dff7e8 (diff) | |
download | llvm-6239227172cdc92f3bb72131333f50f83a6439cf.zip llvm-6239227172cdc92f3bb72131333f50f83a6439cf.tar.gz llvm-6239227172cdc92f3bb72131333f50f83a6439cf.tar.bz2 |
[lldb][AArch64] Save/restore TLS registers around expressions
Previously lldb was storing them but not restoring them. Meaning that this function:
```
void expr(uint64_t value) {
__asm__ volatile("msr tpidr_el0, %0" ::"r"(value));
}
```
When run from lldb:
```
(lldb) expression expr()
```
Would leave tpidr as `value` instead of the original value of the register.
A check for this scenario has been added to TestAArch64LinuxTLSRegisters.py,
which covers tpidr and the SME excluisve tpidr2 register when it's present.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D156512
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions