[lldb] [Process/FreeBSDRemote] Introduce arm64 support
authorMichał Górny <mgorny@moritz.systems>
Thu, 21 Jan 2021 18:30:56 +0000 (19:30 +0100)
committerMichał Górny <mgorny@moritz.systems>
Sun, 31 Jan 2021 18:52:08 +0000 (19:52 +0100)
commitf43c0707f66a19236f58f5bd8be470e5fc625603
tree0058ab1442f45d68960c50359f86b5e85261daee
parent3d1200b9f6e305ea66080bb93fd34753c46066a1
[lldb] [Process/FreeBSDRemote] Introduce arm64 support

Introduce arm64 support in the FreeBSDRemote plugin.  The code
is roughly based on Linux and reuses the same POSIX RegisterInfos
(but the buffers need to be a few bytes larger due to stricter struct
member alignment in FreeBSD structures -- luckily, they do not affect
the actual member offsets).  It supports reading and writing
general-purpose and FPU registers.  SVE and hardware watchpoint support
is missing due to the limitations of FreeBSD ptrace(2) API.

Differential Revision: https://reviews.llvm.org/D95297
lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
lldb/source/Plugins/Process/FreeBSDRemote/CMakeLists.txt
lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_arm64.cpp [new file with mode: 0644]
lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_arm64.h [new file with mode: 0644]
lldb/unittests/Process/Utility/RegisterContextFreeBSDTest.cpp