llvm-capstone/lldb/test
David Spickett 43812c8c87 [lldb][AArch64] Linux corefile support for SME
This adds the ability to read streaming SVE registers,
ZA, SVCR and SVG from core files.

Streaming SVE is in a new note NT_ARM_SSVE but otherwise
has the same format as SVE. So I've done the same as I
did for live processes and reused the existing SVE state
with an extra state for the mode variable.

ZA is in a note NT_ARM_ZA and again the handling matches
live processes. Except that it gets setup only once. A
disabled ZA reads as 0s as usual.

SVCR and SVG are pseudo registers, generated from the notes.

An important detail is that the notes represent what
you would have got if you read from ptrace at the time of
the crash.

This means that for a corefile in non-streaming mode,
there is still an NT_ARM_SSVE note and we check the header
flags to tell if it is active. We cannot just say if you
have the note you're in streaming mode.

The kernel does not provide register values for the inactive
mode and even if it did, they would be undefined, so if we find
streaming state, we ignore the non-streaming state.

Same for ZA, a disabled ZA still has the header in the note.

The tests do not cover all combinations but enough different
vector lengths, modes and ZA states to be confident.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D158500
2023-09-21 13:24:34 +01:00
..
API [lldb][AArch64] Linux corefile support for SME 2023-09-21 13:24:34 +01:00
Shell [lldb][AArch64] Re-enable clone follow tests on AArch64 Linux 2023-09-08 14:10:08 +00:00
Unit [lldb] Make TSan errors fatal when running the test suite 2023-08-07 13:20:38 -07:00
CMakeLists.txt [lldb] Remove reproducer test suite (NFC) 2023-05-26 09:33:40 -07:00
lit.cfg.py [NFC][Py Reformat] Reformat python files in lldb 2023-05-25 12:54:09 -07:00
lit.site.cfg.py.in Use lit_config.substitute instead of foo % lit_config.params everywhere 2022-03-16 09:57:41 +01:00