llvm-project/lldb
David Spickett 787f91b0bb [lldb] Remove non-address bits from addresses given to memory tag commands
Although the memory tag commands use a memory tag manager to handle
addresses, that only removes the top byte.

That top byte is 4 bits of memory tag and 4 free bits, which is more
than it should strictly remove but that's how it is for now.

There are other non-address bit uses like pointer authentication.
To ensure the memory tag manager only has to deal with memory tags,
use the ABI plugin to remove the rest.

The tag access test has been updated to sign all the relevant pointers
and require that we're running on a system with pointer authentication
in addition to memory tagging.

The pointers will look like:
<4 bit user tag><4 bit memory tag><signature><bit virtual address>

Note that there is currently no API for reading memory tags. It will
also have to consider this when it arrives.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D117672
2022-01-20 10:48:14 +00:00
..
bindings [lldb] Introduce SBPlatform::SetSDKRoot 2022-01-19 12:49:47 +01:00
cmake [lldb] Use `GNUInstallDirs` to support custom installation dirs. 2021-12-22 00:28:53 +00:00
docs [lldb/doc] Rephrase tutorial paragraph (NFC) 2022-01-14 16:23:26 -08:00
examples [LLDB][NFC] Fix a typo in comment 2022-01-14 22:01:18 +08:00
include/lldb [lldb] Rename MemoryTagManager RemoveNonAddressBits to RemoveTagBits 2022-01-20 10:47:05 +00:00
packages/Python/lldbsuite [lldb] [llgs] Implement qXfer:siginfo:read 2022-01-13 11:24:36 +01:00
resources [lldb] Remove stale LLDB-Info.plist 2021-01-08 10:12:16 -08:00
scripts Prefer /usr/bin/env xxx over /usr/bin/xxx where xxx = perl, python, awk 2021-02-25 11:32:27 +01:00
source [lldb] Remove non-address bits from addresses given to memory tag commands 2022-01-20 10:48:14 +00:00
test [lldb] Remove non-address bits from addresses given to memory tag commands 2022-01-20 10:48:14 +00:00
third_party/Python/module [lldb][NFC] Inclusive language: replace master/slave names for ptys 2021-11-12 10:54:18 -06:00
tools [lldb] Remove the requirement for windows clients to specify -DIMPORT_LIBLLDB 2022-01-19 12:49:47 +01:00
unittests [lldb] Rename MemoryTagManager RemoveNonAddressBits to RemoveTagBits 2022-01-20 10:47:05 +00:00
utils [lldb] Match test dependencies name to other LLVM projects. 2021-05-21 00:10:27 -07:00
.clang-format
.clang-tidy [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
.gitignore
CMakeLists.txt [lldb] Use `GNUInstallDirs` to support custom installation dirs. 2021-12-22 00:28:53 +00:00
CODE_OWNERS.txt [CODE OWNERS] Add wallace as code owner 2022-01-12 12:36:30 -08:00
LICENSE.TXT
use_lldb_suite_root.py