[all-commits] [llvm/llvm-project] 2f8e3d: [lldb][AArch64][Linux] Add field information for t...
David Spickett via All-commits
all-commits at lists.llvm.org
Fri Nov 10 01:01:35 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 2f8e3d55da68b08f63186fa9f98245145a180449
https://github.com/llvm/llvm-project/commit/2f8e3d55da68b08f63186fa9f98245145a180449
Author: David Spickett <david.spickett at linaro.org>
Date: 2023-11-10 (Fri, 10 Nov 2023)
Changed paths:
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/source/Plugins/Process/Utility/RegisterFlagsLinux_arm64.cpp
M lldb/source/Plugins/Process/Utility/RegisterFlagsLinux_arm64.h
M lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py
M lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
Log Message:
-----------
[lldb][AArch64][Linux] Add field information for the mte_ctrl register (#71808)
This is a Linux pseudo register provided by the NT_ARM_TAGGED_ADDR_CTRL
register set. It reflects the value passed to prctl
PR_SET_TAGGED_ADDR_CTRL.
https://docs.kernel.org/arch/arm64/memory-tagging-extension.html
The fields are made from the #defines the kernel provides for setting
the value. Its contents are constant so no runtime detection is needed
(once we've decided we have this register in the first place).
The permitted generated tags is technically a bitfield but at this time
we don't have a way to mark a field as preferring hex formatting.
```
(lldb) register read mte_ctrl
mte_ctrl = 0x000000000007fffb
= (TAGS = 65535, TCF_ASYNC = 0, TCF_SYNC = 1, TAGGED_ADDR_ENABLE = 1)
```
(4 bit tags mean 16 possible tags, 16 bit bitfield)
Testing has been added to TestMTECtrlRegister.py, which needed a more
granular way to check for XML support, so I've added hasXMLSupport that
can be used within a test case instead of skipping whole tests if XML
isn't supported.
Same for the core file tests.
More information about the All-commits
mailing list