https://github.com/DavidSpickett created https://github.com/llvm/llvm-project/pull/145033
This controls whether tag checking is performed for loads and stores, or stores only. It requires a specific architecture feature which we detect with a HWCAP3 and cpuinfo feature. Live process tests look for this and adjust expectations accordingly, core file tests are using an updated file with this feature enabled. The size of the core file has increased and there's nothing I can do about that. Could be the presence of new architecure features or kernel changes since I last generated them. I can generate a smaller file that has the tag segment, but that segment does not actually contain tag data. So that's no use. (and I will fix handling of such files later) >From ba8fcf4ef14e25b8a628b994988d6a67bdbea7df Mon Sep 17 00:00:00 2001 From: David Spickett <david.spick...@linaro.org> Date: Thu, 19 Jun 2025 10:43:48 +0000 Subject: [PATCH 1/2] [lldb][AArch64] Add HWCAP3 to register field detection This will be used to detect the presence of Arm's new Memory Tagging store only checking feature. This commit just adds the plubming to get that value into the detection function. FreeBSD has not allocated a number for HWCAP3 and already has AT_ARGV defined as 29. So instead of attempting to read from FreeBSD processes, I've explictly passed nullopt. We don't want to be reading some other entry accidentally. If/when FreeBSD adds HWCAP3 we can handle it like we do for AUXV_FREEBSD_AT_HWCAP. No extra tests here, those will be coming with the next change for MTE support. --- .../NativeRegisterContextFreeBSD_arm64.cpp | 3 +- .../NativeRegisterContextLinux_arm64.cpp | 5 ++- .../Plugins/Process/Utility/AuxVector.cpp | 1 + .../Plugins/Process/Utility/AuxVector.h | 1 + .../Utility/RegisterFlagsDetector_arm64.cpp | 36 +++++++++++++------ .../Utility/RegisterFlagsDetector_arm64.h | 25 ++++++++----- .../RegisterContextPOSIXCore_arm64.cpp | 13 ++++--- 7 files changed, 59 insertions(+), 25 deletions(-) diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp index 7adc00622ec2d..d21dac221aa22 100644 --- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp @@ -44,7 +44,8 @@ NativeRegisterContextFreeBSD::CreateHostNativeRegisterContextFreeBSD( NativeProcessFreeBSD &process = native_thread.GetProcess(); g_register_flags_detector.DetectFields( process.GetAuxValue(AuxVector::AUXV_FREEBSD_AT_HWCAP).value_or(0), - process.GetAuxValue(AuxVector::AUXV_AT_HWCAP2).value_or(0)); + process.GetAuxValue(AuxVector::AUXV_AT_HWCAP2).value_or(0), + /*hwcap3=*/0); } return new NativeRegisterContextFreeBSD_arm64(target_arch, native_thread); diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp index 884c7d4b9e359..b1c7421bef8d5 100644 --- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp +++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp @@ -162,10 +162,13 @@ NativeRegisterContextLinux::CreateHostNativeRegisterContextLinux( opt_regsets.Set(RegisterInfoPOSIX_arm64::eRegsetMaskTLS); + std::optional<uint64_t> auxv_at_hwcap3 = + process.GetAuxValue(AuxVector::AUXV_AT_HWCAP3); std::lock_guard<std::mutex> lock(g_register_flags_detector_mutex); if (!g_register_flags_detector.HasDetected()) g_register_flags_detector.DetectFields(auxv_at_hwcap.value_or(0), - auxv_at_hwcap2.value_or(0)); + auxv_at_hwcap2.value_or(0), + auxv_at_hwcap3.value_or(0)); auto register_info_up = std::make_unique<RegisterInfoPOSIX_arm64>(target_arch, opt_regsets); diff --git a/lldb/source/Plugins/Process/Utility/AuxVector.cpp b/lldb/source/Plugins/Process/Utility/AuxVector.cpp index f495ffb1924e7..50500a8593e1d 100644 --- a/lldb/source/Plugins/Process/Utility/AuxVector.cpp +++ b/lldb/source/Plugins/Process/Utility/AuxVector.cpp @@ -84,6 +84,7 @@ const char *AuxVector::GetEntryName(EntryType type) const { case ENTRY_NAME(AUXV_AT_BASE_PLATFORM); break; case ENTRY_NAME(AUXV_AT_RANDOM); break; case ENTRY_NAME(AUXV_AT_HWCAP2); break; + case ENTRY_NAME(AUXV_AT_HWCAP3); break; case ENTRY_NAME(AUXV_AT_EXECFN); break; case ENTRY_NAME(AUXV_AT_SYSINFO); break; case ENTRY_NAME(AUXV_AT_SYSINFO_EHDR); break; diff --git a/lldb/source/Plugins/Process/Utility/AuxVector.h b/lldb/source/Plugins/Process/Utility/AuxVector.h index 2670b34f6b0af..7733e0ffc6832 100644 --- a/lldb/source/Plugins/Process/Utility/AuxVector.h +++ b/lldb/source/Plugins/Process/Utility/AuxVector.h @@ -57,6 +57,7 @@ class AuxVector { AUXV_AT_BASE_PLATFORM = 24, ///< String identifying real platforms. AUXV_AT_RANDOM = 25, ///< Address of 16 random bytes. AUXV_AT_HWCAP2 = 26, ///< Extension of AT_HWCAP. + AUXV_AT_HWCAP3 = 29, ///< Extension of AT_HWCAP. AUXV_AT_EXECFN = 31, ///< Filename of executable. AUXV_AT_SYSINFO = 32, ///< Pointer to the global system page used for system /// calls and other nice things. diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp index 042940b7dff6e..d339a59689f7f 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp @@ -29,8 +29,10 @@ using namespace lldb_private; Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { (void)hwcap; + (void)hwcap3; if (!(hwcap2 & HWCAP2_FPMR)) return {}; @@ -53,8 +55,10 @@ Arm64RegisterFlagsDetector::DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2) { Arm64RegisterFlagsDetector::Fields Arm64RegisterFlagsDetector::DetectGCSFeatureFields(uint64_t hwcap, - uint64_t hwcap2) { + uint64_t hwcap2, + uint64_t hwcap3) { (void)hwcap2; + (void)hwcap3; if (!(hwcap & HWCAP_GCS)) return {}; @@ -67,8 +71,10 @@ Arm64RegisterFlagsDetector::DetectGCSFeatureFields(uint64_t hwcap, } Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { (void)hwcap; + (void)hwcap3; if (!(hwcap2 & HWCAP2_SME)) return {}; @@ -83,9 +89,10 @@ Arm64RegisterFlagsDetector::DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2) { } Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, - uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { (void)hwcap; + (void)hwcap3; if (!(hwcap2 & HWCAP2_MTE)) return {}; @@ -103,7 +110,10 @@ Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, } Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { + (void)hwcap3; + static const FieldEnum rmode_enum( "rmode_enum", {{0, "RN"}, {1, "RP"}, {2, "RM"}, {3, "RZ"}}); @@ -142,10 +152,12 @@ Arm64RegisterFlagsDetector::DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2) { } Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { // fpsr's contents are constant. (void)hwcap; (void)hwcap2; + (void)hwcap3; return { // Bits 31-28 are N/Z/C/V, only used by AArch32. @@ -162,7 +174,10 @@ Arm64RegisterFlagsDetector::DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2) { } Arm64RegisterFlagsDetector::Fields -Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2) { +Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { + (void)hwcap3; + // The fields here are a combination of the Arm manual's SPSR_EL1, // plus a few changes where Linux has decided not to make use of them at all, // or at least not from userspace. @@ -207,9 +222,10 @@ Arm64RegisterFlagsDetector::DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2) { return cpsr_fields; } -void Arm64RegisterFlagsDetector::DetectFields(uint64_t hwcap, uint64_t hwcap2) { +void Arm64RegisterFlagsDetector::DetectFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3) { for (auto ® : m_registers) - reg.m_flags.SetFields(reg.m_detector(hwcap, hwcap2)); + reg.m_flags.SetFields(reg.m_detector(hwcap, hwcap2, hwcap3)); m_has_detected = true; } diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h index 7daebcc71db04..aec2bf9f4886f 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h +++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h @@ -40,7 +40,7 @@ class Arm64RegisterFlagsDetector { /// If called more than once, fields will be redetected each time from /// scratch. If the target would not have this register at all, the list of /// fields will be left empty. - void DetectFields(uint64_t hwcap, uint64_t hwcap2); + void DetectFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3); /// Add the field information of any registers named in this class, /// to the relevant RegisterInfo instances. Note that this will be done @@ -53,15 +53,22 @@ class Arm64RegisterFlagsDetector { private: using Fields = std::vector<RegisterFlags::Field>; - using DetectorFn = std::function<Fields(uint64_t, uint64_t)>; + using DetectorFn = std::function<Fields(uint64_t, uint64_t, uint64_t)>; - static Fields DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2); - static Fields DetectGCSFeatureFields(uint64_t hwcap, uint64_t hwcap2); + static Fields DetectCPSRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectFPSRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectFPCRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectSVCRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectFPMRFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); + static Fields DetectGCSFeatureFields(uint64_t hwcap, uint64_t hwcap2, + uint64_t hwcap3); struct RegisterEntry { RegisterEntry(llvm::StringRef name, unsigned size, DetectorFn detector) diff --git a/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp index bd02bb0e69a4d..d5046d369ab2f 100644 --- a/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp +++ b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp @@ -96,14 +96,19 @@ RegisterContextCorePOSIX_arm64::RegisterContextCorePOSIX_arm64( llvm::Triple::OSType os = process->GetArchitecture().GetTriple().getOS(); if ((os == llvm::Triple::Linux) || (os == llvm::Triple::FreeBSD)) { AuxVector aux_vec(process->GetAuxvData()); - std::optional<uint64_t> auxv_at_hwcap = aux_vec.GetAuxValue( - os == llvm::Triple::FreeBSD ? AuxVector::AUXV_FREEBSD_AT_HWCAP - : AuxVector::AUXV_AT_HWCAP); + bool is_freebsd = os == llvm::Triple::FreeBSD; + std::optional<uint64_t> auxv_at_hwcap = + aux_vec.GetAuxValue(is_freebsd ? AuxVector::AUXV_FREEBSD_AT_HWCAP + : AuxVector::AUXV_AT_HWCAP); std::optional<uint64_t> auxv_at_hwcap2 = aux_vec.GetAuxValue(AuxVector::AUXV_AT_HWCAP2); + std::optional<uint64_t> auxv_at_hwcap3 = + is_freebsd ? std::nullopt + : aux_vec.GetAuxValue(AuxVector::AUXV_AT_HWCAP3); m_register_flags_detector.DetectFields(auxv_at_hwcap.value_or(0), - auxv_at_hwcap2.value_or(0)); + auxv_at_hwcap2.value_or(0), + auxv_at_hwcap3.value_or(0)); m_register_flags_detector.UpdateRegisterInfo(GetRegisterInfo(), GetRegisterCount()); } >From e9c693f07c049fc87ddba82cf318bcbf0621505d Mon Sep 17 00:00:00 2001 From: David Spickett <david.spick...@linaro.org> Date: Thu, 19 Jun 2025 13:12:49 +0000 Subject: [PATCH 2/2] [lldb][AArch64][Linux] Show MTE store only setting in mte_ctrl This controls whether tag checking is performed for loads and stores, or stores only. It requires a specific architecture feature which we detect with a HWCAP3 and cpuinfo feature. Live process tests look for this and adjust expectations accordingly, core file tests are using an updated file with this feature enabled. The size of the core file has increased and there's nothing I can do about that. Could be the presence of new architecure features or kernel changes since I last generated them. I can generate a smaller file that has the tag segment, but that segment does not actually contain tag data. So that's no use. (and I will fix handling of such files later) --- .../Python/lldbsuite/test/lldbtest.py | 3 ++ .../Utility/RegisterFlagsDetector_arm64.cpp | 18 +++++++--- .../TestMTECtrlRegister.py | 32 ++++++++++++------ .../TestAArch64LinuxMTEMemoryTagCoreFile.py | 11 +++--- .../API/linux/aarch64/mte_core_file/core.mte | Bin 20608 -> 417920 bytes .../linux/aarch64/mte_core_file/core.nomte | Bin 20480 -> 32768 bytes .../API/linux/aarch64/mte_core_file/main.c | 2 +- 7 files changed, 47 insertions(+), 19 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index a4ff96e4158ce..a47ffabdecd0e 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -1380,6 +1380,9 @@ def isAArch64SMEFA64(self): def isAArch64MTE(self): return self.isAArch64() and "mte" in self.getCPUInfo() + def isAArch64MTEStoreOnly(self): + return self.isAArch64() and "mtestoreonly" in self.getCPUInfo() + def isAArch64GCS(self): return self.isAArch64() and "gcs" in self.getCPUInfo() diff --git a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp index d339a59689f7f..cae416a4eccb0 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp @@ -26,6 +26,8 @@ #define HWCAP2_EBF16 (1ULL << 32) #define HWCAP2_FPMR (1ULL << 48) +#define HWCAP3_MTE_STORE_ONLY (1ULL << 1) + using namespace lldb_private; Arm64RegisterFlagsDetector::Fields @@ -92,7 +94,6 @@ Arm64RegisterFlagsDetector::Fields Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2, uint64_t hwcap3) { (void)hwcap; - (void)hwcap3; if (!(hwcap2 & HWCAP2_MTE)) return {}; @@ -104,9 +105,18 @@ Arm64RegisterFlagsDetector::DetectMTECtrlFields(uint64_t hwcap, uint64_t hwcap2, static const FieldEnum tcf_enum( "tcf_enum", {{0, "TCF_NONE"}, {1, "TCF_SYNC"}, {2, "TCF_ASYNC"}, {3, "TCF_ASYMM"}}); - return {{"TAGS", 3, 18}, // 16 bit bitfield shifted up by PR_MTE_TAG_SHIFT. - {"TCF", 1, 2, &tcf_enum}, - {"TAGGED_ADDR_ENABLE", 0}}; + + std::vector<RegisterFlags::Field> fields; + fields.reserve(5); + if (hwcap3 & HWCAP3_MTE_STORE_ONLY) + fields.push_back({"STORE_ONLY", 19}); + fields.insert( + std::end(fields), + {{"TAGS", 3, 18}, // 16 bit bitfield shifted up by PR_MTE_TAG_SHIFT. + {"TCF", 1, 2, &tcf_enum}, + {"TAGGED_ADDR_ENABLE", 0}}); + + return fields; } Arm64RegisterFlagsDetector::Fields diff --git a/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py b/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py index 2570f267bf46e..c003d87f8ca37 100644 --- a/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py +++ b/lldb/test/API/commands/register/register/aarch64_mte_ctrl_register/TestMTECtrlRegister.py @@ -34,29 +34,41 @@ def test_mte_ctrl_register(self): substrs=["stop reason = breakpoint 1."], ) - def check_mte_ctrl(async_err, sync_err): + has_store_only = self.isAArch64MTEStoreOnly() + + def check_mte_ctrl(async_err, sync_err, store_only): # Bit 0 = tagged addressing enabled # Bit 1 = synchronous faults # Bit 2 = asynchronous faults - value = "0x{:016x}".format((async_err << 2) | (sync_err << 1) | 1) + # Bit 19 = store only checking mode + value = "0x{:016x}".format( + (store_only << 19) | (async_err << 2) | (sync_err << 1) | 1 + ) expected = [value] if self.hasXMLSupport(): + fields = "(" + if has_store_only: + fields += f"STORE_ONLY = {store_only}, " + tfc_modes = ["NONE", "SYNC", "ASYNC", "ASYMM"] - expected.append( - f"(TAGS = 0, TCF = TCF_{tfc_modes[async_err << 1 | sync_err]}, TAGGED_ADDR_ENABLE = 1)".format( - async_err, sync_err - ) - ) + fields += f"TAGS = 0, TCF = TCF_{tfc_modes[async_err << 1 | sync_err]}, TAGGED_ADDR_ENABLE = 1)" + + expected.append(fields) self.expect("register read mte_ctrl", substrs=expected) # We start enabled with synchronous faults. - check_mte_ctrl(0, 1) + check_mte_ctrl(0, 1, 0) # Change to asynchronous faults. self.runCmd("register write mte_ctrl 5") - check_mte_ctrl(1, 0) + check_mte_ctrl(1, 0, 0) # This would return to synchronous faults if we did not restore the # previous value. self.expect("expression setup_mte()", substrs=["= 0"]) - check_mte_ctrl(1, 0) + check_mte_ctrl(1, 0, 0) + + # Store only checking requires FEAT_MTE_STORE_ONLY. + if has_store_only: + self.runCmd(f"register write mte_ctrl {1 | (1 << 19)}") + check_mte_ctrl(0, 0, 1) diff --git a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py index a9879f67d8b8f..82f59760b64e3 100644 --- a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py +++ b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py @@ -10,8 +10,8 @@ class AArch64LinuxMTEMemoryTagCoreFileTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True - MTE_BUF_ADDR = hex(0xFFFF82C74000) - BUF_ADDR = hex(0xFFFF82C73000) + MTE_BUF_ADDR = hex(0xFFFFA733B000) + BUF_ADDR = hex(0xFFFFA733A000) @skipIfLLVMTargetMissing("AArch64") def test_mte_tag_core_file_memory_region(self): @@ -215,7 +215,7 @@ def test_mte_tag_fault_reason(self): self.expect( "bt", substrs=[ - "* thread #1, name = 'a.out.mte', stop reason = SIGSEGV: sync tag check fault (fault address=0xffff82c74010)" + "* thread #1, name = 'a.out.mte', stop reason = SIGSEGV: sync tag check fault (fault address=0xffffa733b010)" ], ) @@ -231,12 +231,15 @@ def test_mte_ctrl_register(self): self.runCmd("target create --core core.mte") # The expected value is: # * Allowed tags value of 0xFFFF, shifted up by 3 resulting in 0x7fff8. + # * Bit 19 set to 0, which means that store only checking is disabled. # * Bit 1 set to enable synchronous tag faults. # * Bit 0 set to enable the tagged address ABI. expected = ["mte_ctrl = 0x000000000007fffb"] if self.hasXMLSupport(): - expected.append("(TAGS = 65535, TCF = TCF_SYNC, TAGGED_ADDR_ENABLE = 1)") + expected.append( + "(STORE_ONLY = 0, TAGS = 65535, TCF = TCF_SYNC, TAGGED_ADDR_ENABLE = 1)" + ) self.expect("register read mte_ctrl", substrs=expected) diff --git a/lldb/test/API/linux/aarch64/mte_core_file/core.mte b/lldb/test/API/linux/aarch64/mte_core_file/core.mte index 84a3266667e7718d9a72ee757343346fda8cf786..188d06d11c71efd08b2ffce1bbf7b50ad92be8da 100644 GIT binary patch literal 417920 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 z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kiZ9!Kxd)T=_Oa^s#1A5Fvf@#JJ#-{tfro^T7Ua-$boV(8_y%<K42O; zZ&oUkQL5q7bMH19eQ>^`b4KBiM*jMvZGN#&nPF{ru_Fr}d3O7DrOK;pJ(B-9zs(<1 zM>+L{FIeEHlrQ?JZHL(Vs?kr_diqYb@uhw#A8pO8M`n+-Plb^lvfAgd?O*WAfNh^E zT?K8v5c*et`y3}<C+vJwEa^$`6Th@e=3n1MyV_^QL)tS|GVZiH*A^gx%f9m}_Yoll ztrkwiapALe2)u6ih~;%-|Is<)Af;d4{`qxgKYD@X8wHQ@&stkWZM(bgD|X5YXPHkD zM>K|Vl280@-HpF1!vxqt%v*`qd$DcL9E^j>CS&aikz-06-+J^5sX+|Tl}lHgou8K{ z!=*gx`%c`{COaNM<nMaNt}Dh2suDFp|149b%8X-y<1;BH&2FLr8%BwGk!~t9<$U3z z9FJS4BA=*~GkqRj6Okud-0NxQCvCsqU5Miu$APfxd)OYAVh8;8_!YV`-tC{VaoV8W z_t|+Dhy7Zajqm-5jW>vSC2f=V60aWVRnSHMw(xM1SK2eH&(7QK8*M%J{C<HGO6r&P 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 literal 20608 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 Le*L%OpB4QVat^#p diff --git a/lldb/test/API/linux/aarch64/mte_core_file/core.nomte b/lldb/test/API/linux/aarch64/mte_core_file/core.nomte index 201f2880e6dc27c14306b980f518651ceeb2282d..454ff8361cc3f0acc5950f1af4d446f1034b0ae2 100644 GIT binary patch literal 32768 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 literal 20480 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 diff --git a/lldb/test/API/linux/aarch64/mte_core_file/main.c b/lldb/test/API/linux/aarch64/mte_core_file/main.c index 89027e0ea75d2..df1b4c637ac0a 100644 --- a/lldb/test/API/linux/aarch64/mte_core_file/main.c +++ b/lldb/test/API/linux/aarch64/mte_core_file/main.c @@ -18,7 +18,7 @@ int main(int argc, char const *argv[]) { #ifdef NO_MTE - *(char *)(0) = 0; + __builtin_trap(); #endif if (prctl(PR_SET_TAGGED_ADDR_CTRL, _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits