https://github.com/DavidSpickett updated 
https://github.com/llvm/llvm-project/pull/213977

>From 85887245f60879e9ef86957f7e7a494ca43ec606 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:49:38 +0000
Subject: [PATCH 01/12] [lldb][AArch64][Linux] Add function to get register
 buffers

Replaces Get<set>Buffer methods.
---
 .../NativeRegisterContextLinux_arm64.cpp      | 32 +++++++++++++++++++
 .../Linux/NativeRegisterContextLinux_arm64.h  |  2 ++
 2 files changed, 34 insertions(+)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 99b93ed82f5e6..736f87da7e442 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -157,6 +157,38 @@ size_t NativeRegisterContextLinux_arm64::GetSetSize(
   }
 }
 
+void *NativeRegisterContextLinux_arm64::GetSetBuffer(
+    NativeRegisterContextLinux_arm64::RegisterSetType set) {
+  switch (set) {
+  case RegisterSetType::GPR:
+    return &m_gpr_arm64;
+  case RegisterSetType::FPR:
+    return &m_fpr;
+  case RegisterSetType::SVE:
+    return m_sve_ptrace_payload.data();
+  case RegisterSetType::SVE_HEADER:
+    return &m_sve_header;
+  case RegisterSetType::PAC:
+    return &m_pac_mask;
+  case RegisterSetType::MTE:
+    return &m_mte_ctrl_reg;
+  case RegisterSetType::TLS:
+    return &m_tls_regs;
+  case RegisterSetType::ZA:
+    return m_za_ptrace_payload.data();
+  case RegisterSetType::ZA_HEADER:
+    return &m_za_header;
+  case RegisterSetType::ZT:
+    return m_zt_reg.data();
+  case RegisterSetType::FPMR:
+    return &m_fpmr_reg;
+  case RegisterSetType::GCS:
+    return &m_gcs_regs;
+  case RegisterSetType::POE:
+    return &m_poe_regs;
+  }
+}
+
 // A NativeRegisterContext is constructed per thread, but all threads' 
registers
 // will contain the same fields. Therefore this mutex prevents each instance
 // competing with the other, and subsequent instances from having to detect the
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index f9e7de073da6d..51e7a8a380d72 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -122,6 +122,8 @@ class NativeRegisterContextLinux_arm64
 
   size_t GetSetSize(RegisterSetType set) const;
 
+  void *GetSetBuffer(RegisterSetType set);
+
   void MakeValid(RegisterSetType set) { m_validity |= set; }
 
   [[nodiscard]] bool IsValid(RegisterSetType set) const {

>From fb4b5b2d34bb89c9f4987e3972633ffb67d6fd22 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:53:21 +0000
Subject: [PATCH 02/12] convert ZA

---
 .../NativeRegisterContextLinux_arm64.cpp      | 23 +++++++++++--------
 .../Linux/NativeRegisterContextLinux_arm64.h  |  2 --
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 736f87da7e442..bd4476f62a933 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -549,7 +549,8 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
       // ZA is part of the SME set but uses a separate member buffer for
       // storage. Therefore its effective byte offset is always 0 even if it
       // isn't 0 within the SME register set.
-      src = (uint8_t *)GetZABuffer() + GetSetSize(RegisterSetType::ZA_HEADER);
+      src = (uint8_t *)GetSetBuffer(RegisterSetType::ZA) +
+            GetSetSize(RegisterSetType::ZA_HEADER);
     } else if (GetRegisterInfo().IsSMERegZT(reg)) {
       // Unlike ZA, the kernel will return register data for ZT0 when ZA is not
       // enabled. This data will be all 0s so we don't have to invent anything
@@ -834,7 +835,8 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
       // ZA is part of the SME set but not stored with the other SME registers.
       // So its byte offset is effectively always 0.
-      dst = (uint8_t *)GetZABuffer() + GetSetSize(RegisterSetType::ZA_HEADER);
+      dst = (uint8_t *)GetSetBuffer(RegisterSetType::ZA) +
+            GetSetSize(RegisterSetType::ZA_HEADER);
       ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
       // While this is writing a header that contains a vector length, the only
@@ -1057,8 +1059,9 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
     // Use the header size not the buffer size, as we may be using the buffer
     // for fake data, which we do not want to write out.
     assert(m_za_header.size <= GetSetSize(RegisterSetType::ZA));
-    dst = AddSavedRegisters(dst, RegisterSetType::ZA, GetZABuffer(),
-                            m_za_header.size);
+    dst =
+        AddSavedRegisters(dst, RegisterSetType::ZA,
+                          GetSetBuffer(RegisterSetType::ZA), m_za_header.size);
   }
 
   if ((GetRegisterInfo().IsSVEPresent() || GetRegisterInfo().IsSSVEPresent()) 
&&
@@ -1075,8 +1078,9 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
 
   if ((m_sve_state == SVEState::Streaming) && GetRegisterInfo().IsZAPresent()) 
{
     assert(m_za_header.size <= GetSetSize(RegisterSetType::ZA));
-    dst = AddSavedRegisters(dst, RegisterSetType::ZA, GetZABuffer(),
-                            m_za_header.size);
+    dst =
+        AddSavedRegisters(dst, RegisterSetType::ZA,
+                          GetSetBuffer(RegisterSetType::ZA), m_za_header.size);
   }
 
   // If ZT0 is present and we are going to be restoring an active ZA (which
@@ -1297,7 +1301,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       // may be incorrect due to being filled with dummy data previously. 
Resize
       // this so WriteZA uses the correct size.
       m_za_ptrace_payload.resize(m_za_header.size);
-      ::memcpy(GetZABuffer(), src, GetSetSize(RegisterSetType::ZA));
+      ::memcpy(GetSetBuffer(RegisterSetType::ZA), src,
+               GetSetSize(RegisterSetType::ZA));
       MakeValid(RegisterSetType::ZA);
 
       error = WriteZA();
@@ -1714,7 +1719,7 @@ Status NativeRegisterContextLinux_arm64::ReadZA() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetZABuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::ZA);
   ioVec.iov_len = GetSetSize(RegisterSetType::ZA);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::ZA),
@@ -1737,7 +1742,7 @@ Status NativeRegisterContextLinux_arm64::WriteZA() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetZABuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::ZA);
   ioVec.iov_len = GetSetSize(RegisterSetType::ZA);
 
   Invalidate(RegisterSetType::ZA);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 51e7a8a380d72..435736674bf63 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -274,8 +274,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetPOEBuffer() { return &m_poe_regs; }
 
-  void *GetZABuffer() { return m_za_ptrace_payload.data(); };
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From 34bc86618643a1121455947d686e64f8b77ba304 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:53:58 +0000
Subject: [PATCH 03/12] convert POE

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index bd4476f62a933..d8108569775e7 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -595,7 +595,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetPOEOffset();
     assert(offset < GetSetSize(RegisterSetType::POE));
-    src = (uint8_t *)GetPOEBuffer() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::POE) + offset;
   } else
     return Status::FromErrorString(
         "failed - register wasn't recognized to be a GPR or an FPR, "
@@ -884,7 +884,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetPOEOffset();
     assert(offset < GetSetSize(RegisterSetType::POE));
-    dst = (uint8_t *)GetPOEBuffer() + offset;
+    dst = (uint8_t *)GetSetBuffer(RegisterSetType::POE) + offset;
     ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
     return WritePOE();
@@ -1112,7 +1112,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
   }
 
   if (GetRegisterInfo().IsPOEPresent()) {
-    dst = AddSavedRegisters(dst, RegisterSetType::POE, GetPOEBuffer(),
+    dst = AddSavedRegisters(dst, RegisterSetType::POE,
+                            GetSetBuffer(RegisterSetType::POE),
                             GetSetSize(RegisterSetType::POE));
   }
 
@@ -1358,7 +1359,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
     }
     case RegisterSetType::POE:
       error = RestoreRegisters(
-          GetPOEBuffer(), &src, GetSetSize(RegisterSetType::POE), kind,
+          GetSetBuffer(RegisterSetType::POE), &src,
+          GetSetSize(RegisterSetType::POE), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WritePOE, this));
       break;
     case RegisterSetType::PAC:
@@ -1829,7 +1831,7 @@ Status NativeRegisterContextLinux_arm64::ReadPOE() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetPOEBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::POE);
   ioVec.iov_len = GetSetSize(RegisterSetType::POE);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::POE),
@@ -1849,7 +1851,7 @@ Status NativeRegisterContextLinux_arm64::WritePOE() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetPOEBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::POE);
   ioVec.iov_len = GetSetSize(RegisterSetType::POE);
 
   Invalidate(RegisterSetType::POE);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 435736674bf63..ade208696d585 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -272,8 +272,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetGCSBuffer() { return &m_gcs_regs; }
 
-  void *GetPOEBuffer() { return &m_poe_regs; }
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From 6193bbcd0313538c7e77e1aa4e2c58e4151521fa Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:55:08 +0000
Subject: [PATCH 04/12] convert GCS

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index d8108569775e7..f4a79e4d37115 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -587,7 +587,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetGCSOffset();
     assert(offset < GetSetSize(RegisterSetType::GCS));
-    src = (uint8_t *)GetGCSBuffer() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::GCS) + offset;
   } else if (GetRegisterInfo().IsPOEReg(reg)) {
     error = ReadPOE();
     if (error.Fail())
@@ -873,7 +873,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetGCSOffset();
     assert(offset < GetSetSize(RegisterSetType::GCS));
-    dst = (uint8_t *)GetGCSBuffer() + offset;
+    dst = (uint8_t *)GetSetBuffer(RegisterSetType::GCS) + offset;
     ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
     return WriteGCS();
@@ -1107,7 +1107,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
   }
 
   if (GetRegisterInfo().IsGCSPresent()) {
-    dst = AddSavedRegisters(dst, RegisterSetType::GCS, GetGCSBuffer(),
+    dst = AddSavedRegisters(dst, RegisterSetType::GCS,
+                            GetSetBuffer(RegisterSetType::GCS),
                             GetSetSize(RegisterSetType::GCS));
   }
 
@@ -1351,7 +1352,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       const uint8_t *new_gcs_src =
           reinterpret_cast<const uint8_t *>(&new_gcs_regs);
       error = RestoreRegisters(
-          GetGCSBuffer(), &new_gcs_src, GetSetSize(RegisterSetType::GCS), kind,
+          GetSetBuffer(RegisterSetType::GCS), &new_gcs_src,
+          GetSetSize(RegisterSetType::GCS), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteGCS, this));
       src += GetSetSize(RegisterSetType::GCS);
 
@@ -1666,7 +1668,7 @@ Status NativeRegisterContextLinux_arm64::ReadGCS() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetGCSBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::GCS);
   ioVec.iov_len = GetSetSize(RegisterSetType::GCS);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::GCS),
@@ -1686,7 +1688,7 @@ Status NativeRegisterContextLinux_arm64::WriteGCS() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetGCSBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::GCS);
   ioVec.iov_len = GetSetSize(RegisterSetType::GCS);
 
   Invalidate(RegisterSetType::GCS);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index ade208696d585..4d8dbe39465d4 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -270,8 +270,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetFPMRBuffer() { return &m_fpmr_reg; }
 
-  void *GetGCSBuffer() { return &m_gcs_regs; }
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From f90b335f324e3af0ba7a550c9c43e1153f94e641 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:55:54 +0000
Subject: [PATCH 05/12] convert fpmr

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index f4a79e4d37115..b937f271e8c8e 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -579,7 +579,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetFPMROffset();
     assert(offset < GetSetSize(RegisterSetType::FPMR));
-    src = (uint8_t *)GetFPMRBuffer() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::FPMR) + offset;
   } else if (GetRegisterInfo().IsGCSReg(reg)) {
     error = ReadGCS();
     if (error.Fail())
@@ -862,7 +862,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetFPMROffset();
     assert(offset < GetSetSize(RegisterSetType::FPMR));
-    dst = (uint8_t *)GetFPMRBuffer() + offset;
+    dst = (uint8_t *)GetSetBuffer(RegisterSetType::FPMR) + offset;
     ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
     return WriteFPMR();
@@ -1102,7 +1102,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
   }
 
   if (GetRegisterInfo().IsFPMRPresent()) {
-    dst = AddSavedRegisters(dst, RegisterSetType::FPMR, GetFPMRBuffer(),
+    dst = AddSavedRegisters(dst, RegisterSetType::FPMR,
+                            GetSetBuffer(RegisterSetType::FPMR),
                             GetSetSize(RegisterSetType::FPMR));
   }
 
@@ -1330,7 +1331,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       break;
     case RegisterSetType::FPMR:
       error = RestoreRegisters(
-          GetFPMRBuffer(), &src, GetSetSize(RegisterSetType::FPMR), kind,
+          GetSetBuffer(RegisterSetType::FPMR), &src,
+          GetSetSize(RegisterSetType::FPMR), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteFPMR, this));
       break;
     case RegisterSetType::GCS: {
@@ -1797,7 +1799,7 @@ Status NativeRegisterContextLinux_arm64::ReadFPMR() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetFPMRBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::FPMR);
   ioVec.iov_len = GetSetSize(RegisterSetType::FPMR);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::FPMR),
@@ -1817,7 +1819,7 @@ Status NativeRegisterContextLinux_arm64::WriteFPMR() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetFPMRBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::FPMR);
   ioVec.iov_len = GetSetSize(RegisterSetType::FPMR);
 
   Invalidate(RegisterSetType::FPMR);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 4d8dbe39465d4..ed062a5e7c0ae 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -268,8 +268,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetSVEBuffer() { return m_sve_ptrace_payload.data(); }
 
-  void *GetFPMRBuffer() { return &m_fpmr_reg; }
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From d064f5e2202670569271c6edc7d8a0be48615c9c Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:57:28 +0000
Subject: [PATCH 06/12] convert SVE

---
 .../NativeRegisterContextLinux_arm64.cpp      | 23 ++++++++++---------
 .../Linux/NativeRegisterContextLinux_arm64.h  |  2 --
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index b937f271e8c8e..d77434bde6885 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -420,7 +420,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
       }
 
       assert(offset < GetSetSize(RegisterSetType::SVE));
-      src = (uint8_t *)GetSVEBuffer() + offset;
+      src = (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset;
     }
   } else if (GetRegisterInfo().IsTLSReg(reg)) {
     error = ReadTLS();
@@ -499,13 +499,13 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
         if (GetRegisterInfo().IsSVEZReg(reg)) {
           offset = CalculateSVEOffset(reg_info);
           assert(offset < GetSetSize(RegisterSetType::SVE));
-          ::memcpy(sve_reg_non_live.data(), (uint8_t *)GetSVEBuffer() + offset,
-                   16);
+          ::memcpy(sve_reg_non_live.data(),
+                   (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset, 16);
         }
       } else {
         offset = CalculateSVEOffset(reg_info);
         assert(offset < GetSetSize(RegisterSetType::SVE));
-        src = (uint8_t *)GetSVEBuffer() + offset;
+        src = (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset;
       }
     }
   } else if (GetRegisterInfo().IsPAuthReg(reg)) {
@@ -684,7 +684,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
       }
 
       assert(offset < GetSetSize(RegisterSetType::SVE));
-      dst = (uint8_t *)GetSVEBuffer() + offset;
+      dst = (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset;
       ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
       return WriteAllSVE();
     }
@@ -790,7 +790,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
           // first 16 bytes only as SVE payload mirrors legacy fpsimd structure
           offset = CalculateSVEOffset(reg_info);
           assert(offset < GetSetSize(RegisterSetType::SVE));
-          dst = (uint8_t *)GetSVEBuffer() + offset;
+          dst = (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset;
           ::memcpy(dst, reg_value.GetBytes(), 16);
 
           return WriteAllSVE();
@@ -800,7 +800,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
       } else {
         offset = CalculateSVEOffset(reg_info);
         assert(offset < GetSetSize(RegisterSetType::SVE));
-        dst = (uint8_t *)GetSVEBuffer() + offset;
+        dst = (uint8_t *)GetSetBuffer(RegisterSetType::SVE) + offset;
         ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
         return WriteAllSVE();
       }
@@ -1069,7 +1069,7 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
     dst = AddRegisterSetType(dst, RegisterSetType::SVE);
     std::memcpy(dst, &m_sve_state, sizeof(m_sve_state));
     dst += sizeof(m_sve_state);
-    dst = AddSavedRegistersData(dst, GetSVEBuffer(),
+    dst = AddSavedRegistersData(dst, GetSetBuffer(RegisterSetType::SVE),
                                 GetSetSize(RegisterSetType::SVE));
   } else {
     dst = AddSavedRegisters(dst, RegisterSetType::FPR, GetFPRBuffer(),
@@ -1216,7 +1216,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
 
       // Write header and register data, incrementing src this time.
       error = RestoreRegisters(
-          GetSVEBuffer(), &src, GetSetSize(RegisterSetType::SVE), kind,
+          GetSetBuffer(RegisterSetType::SVE), &src,
+          GetSetSize(RegisterSetType::SVE), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteAllSVE, this));
       break;
     case RegisterSetType::FPR: {
@@ -1543,7 +1544,7 @@ Status NativeRegisterContextLinux_arm64::ReadAllSVE() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetSVEBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::SVE);
   ioVec.iov_len = GetSetSize(RegisterSetType::SVE);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::SVE),
@@ -1564,7 +1565,7 @@ Status NativeRegisterContextLinux_arm64::WriteAllSVE() {
 
   struct iovec ioVec;
 
-  ioVec.iov_base = GetSVEBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::SVE);
   ioVec.iov_len = GetSetSize(RegisterSetType::SVE);
 
   Invalidate(RegisterSetType::SVE);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index ed062a5e7c0ae..b617b00fc010c 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -266,8 +266,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetZTBuffer() { return m_zt_reg.data(); }
 
-  void *GetSVEBuffer() { return m_sve_ptrace_payload.data(); }
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From d4005c0ed755b02f0352075acb8b52d9aac4da2a Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:58:23 +0000
Subject: [PATCH 07/12] convert ZT

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index d77434bde6885..8817c01c504b3 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -559,7 +559,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
       if (error.Fail())
         return error;
 
-      src = (uint8_t *)GetZTBuffer();
+      src = (uint8_t *)GetSetBuffer(RegisterSetType::ZT);
     } else {
       error = ReadSMESVG();
       if (error.Fail())
@@ -848,7 +848,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
       if (error.Fail())
         return error;
 
-      dst = (uint8_t *)GetZTBuffer();
+      dst = (uint8_t *)GetSetBuffer(RegisterSetType::ZT);
       ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
       return WriteZT();
@@ -1093,7 +1093,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
       GetRegisterInfo().IsZTPresent() &&
       // And ZA is enabled.
       m_za_header.size > sizeof(m_za_header))
-    dst = AddSavedRegisters(dst, RegisterSetType::ZT, GetZTBuffer(),
+    dst = AddSavedRegisters(dst, RegisterSetType::ZT,
+                            GetSetBuffer(RegisterSetType::ZT),
                             GetSetSize(RegisterSetType::ZT));
 
   if (GetRegisterInfo().IsMTEPresent()) {
@@ -1327,7 +1328,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       // if the state we are restoring had an active ZA. Restoring ZT0 will
       // always come after restoring ZA.
       error = RestoreRegisters(
-          GetZTBuffer(), &src, GetSetSize(RegisterSetType::ZT), kind,
+          GetSetBuffer(RegisterSetType::ZT), &src,
+          GetSetSize(RegisterSetType::ZT), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteZT, this));
       break;
     case RegisterSetType::FPMR:
@@ -1765,7 +1767,7 @@ Status NativeRegisterContextLinux_arm64::ReadZT() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetZTBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::ZT);
   ioVec.iov_len = GetSetSize(RegisterSetType::ZT);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::ZT),
@@ -1784,7 +1786,7 @@ Status NativeRegisterContextLinux_arm64::WriteZT() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetZTBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::ZT);
   ioVec.iov_len = GetSetSize(RegisterSetType::ZT);
 
   Invalidate(RegisterSetType::ZT);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index b617b00fc010c..cc427ab54743c 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -264,8 +264,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
-  void *GetZTBuffer() { return m_zt_reg.data(); }
-
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }
 
   llvm::Error ReadHardwareDebugInfo() override;

>From dd66568de759f0be9efb8b10596d1138c4bc63ef Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:59:03 +0000
Subject: [PATCH 08/12] convert TLS

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 8817c01c504b3..220db619e26d6 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -429,7 +429,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetTLSOffset();
     assert(offset < GetSetSize(RegisterSetType::TLS));
-    src = (uint8_t *)GetTLSBuffer() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::TLS) + offset;
   } else if (GetRegisterInfo().IsSVEReg(reg)) {
     if (m_sve_state == SVEState::Disabled || m_sve_state == SVEState::Unknown)
       return Status::FromErrorString("SVE disabled or not supported");
@@ -823,7 +823,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetTLSOffset();
     assert(offset < GetSetSize(RegisterSetType::TLS));
-    dst = (uint8_t *)GetTLSBuffer() + offset;
+    dst = (uint8_t *)GetSetBuffer(RegisterSetType::TLS) + offset;
     ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
     return WriteTLS();
@@ -1120,7 +1120,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
                             GetSetSize(RegisterSetType::POE));
   }
 
-  dst = AddSavedRegisters(dst, RegisterSetType::TLS, GetTLSBuffer(),
+  dst = AddSavedRegisters(dst, RegisterSetType::TLS,
+                          GetSetBuffer(RegisterSetType::TLS),
                           GetSetSize(RegisterSetType::TLS));
 
   return error;
@@ -1292,7 +1293,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       break;
     case RegisterSetType::TLS:
       error = RestoreRegisters(
-          GetTLSBuffer(), &src, GetSetSize(RegisterSetType::TLS), kind,
+          GetSetBuffer(RegisterSetType::TLS), &src,
+          GetSetSize(RegisterSetType::TLS), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteTLS, this));
       break;
     case RegisterSetType::ZA:
@@ -1637,7 +1639,7 @@ Status NativeRegisterContextLinux_arm64::ReadTLS() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetTLSBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::TLS);
   ioVec.iov_len = GetSetSize(RegisterSetType::TLS);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::TLS),
@@ -1657,7 +1659,7 @@ Status NativeRegisterContextLinux_arm64::WriteTLS() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetTLSBuffer();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::TLS);
   ioVec.iov_len = GetSetSize(RegisterSetType::TLS);
 
   Invalidate(RegisterSetType::TLS);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index cc427ab54743c..938bd19a66291 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -260,8 +260,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetMTEControl() { return &m_mte_ctrl_reg; }
 
-  void *GetTLSBuffer() { return &m_tls_regs; }
-
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }

>From f62393cfbe64fc6d897409225577c167591a8b29 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 14:59:45 +0000
Subject: [PATCH 09/12] convert MTE

---
 .../Linux/NativeRegisterContextLinux_arm64.cpp     | 14 ++++++++------
 .../Linux/NativeRegisterContextLinux_arm64.h       |  2 --
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 220db619e26d6..34c40d2cb358e 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -523,7 +523,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetMTEOffset();
     assert(offset < GetSetSize(RegisterSetType::MTE));
-    src = (uint8_t *)GetMTEControl() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::MTE) + offset;
   } else if (GetRegisterInfo().IsSMEReg(reg)) {
     if (GetRegisterInfo().IsSMERegZA(reg)) {
       error = ReadZAHeader();
@@ -812,7 +812,7 @@ Status NativeRegisterContextLinux_arm64::WriteRegister(
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetMTEOffset();
     assert(offset < GetSetSize(RegisterSetType::MTE));
-    dst = (uint8_t *)GetMTEControl() + offset;
+    dst = (uint8_t *)GetSetBuffer(RegisterSetType::MTE) + offset;
     ::memcpy(dst, reg_value.GetBytes(), reg_info->byte_size);
 
     return WriteMTEControl();
@@ -1098,7 +1098,8 @@ Status 
NativeRegisterContextLinux_arm64::ReadAllRegisterValues(
                             GetSetSize(RegisterSetType::ZT));
 
   if (GetRegisterInfo().IsMTEPresent()) {
-    dst = AddSavedRegisters(dst, RegisterSetType::MTE, GetMTEControl(),
+    dst = AddSavedRegisters(dst, RegisterSetType::MTE,
+                            GetSetBuffer(RegisterSetType::MTE),
                             GetSetSize(RegisterSetType::MTE));
   }
 
@@ -1288,7 +1289,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
     }
     case RegisterSetType::MTE:
       error = RestoreRegisters(
-          GetMTEControl(), &src, GetSetSize(RegisterSetType::MTE), kind,
+          GetSetBuffer(RegisterSetType::MTE), &src,
+          GetSetSize(RegisterSetType::MTE), kind,
           std::bind(&NativeRegisterContextLinux_arm64::WriteMTEControl, this));
       break;
     case RegisterSetType::TLS:
@@ -1603,7 +1605,7 @@ Status NativeRegisterContextLinux_arm64::ReadMTEControl() 
{
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetMTEControl();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::MTE);
   ioVec.iov_len = GetSetSize(RegisterSetType::MTE);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::MTE),
@@ -1623,7 +1625,7 @@ Status 
NativeRegisterContextLinux_arm64::WriteMTEControl() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetMTEControl();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::MTE);
   ioVec.iov_len = GetSetSize(RegisterSetType::MTE);
 
   Invalidate(RegisterSetType::MTE);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 938bd19a66291..559d9df232ef3 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -258,8 +258,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetPACMask() { return &m_pac_mask; }
 
-  void *GetMTEControl() { return &m_mte_ctrl_reg; }
-
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }

>From fd9dde3786567925b4791a163040a9c63c601c00 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 15:00:31 +0000
Subject: [PATCH 10/12] convert PAC

---
 .../Process/Linux/NativeRegisterContextLinux_arm64.cpp        | 4 ++--
 .../Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h  | 2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 34c40d2cb358e..6bb25fc6e5f61 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -515,7 +515,7 @@ NativeRegisterContextLinux_arm64::ReadRegister(const 
RegisterInfo *reg_info,
 
     offset = reg_info->byte_offset - GetRegisterInfo().GetPAuthOffset();
     assert(offset < GetSetSize(RegisterSetType::PAC));
-    src = (uint8_t *)GetPACMask() + offset;
+    src = (uint8_t *)GetSetBuffer(RegisterSetType::PAC) + offset;
   } else if (GetRegisterInfo().IsMTEReg(reg)) {
     error = ReadMTEControl();
     if (error.Fail())
@@ -1515,7 +1515,7 @@ Status NativeRegisterContextLinux_arm64::ReadPAuthMask() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetPACMask();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::PAC);
   ioVec.iov_len = GetSetSize(RegisterSetType::PAC);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::PAC),
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 559d9df232ef3..0adfc70ca309a 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -256,8 +256,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetZAHeader() { return &m_za_header; }
 
-  void *GetPACMask() { return &m_pac_mask; }
-
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }

>From cc804f251353c42853ee224b366934cb94d47d86 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 15:01:29 +0000
Subject: [PATCH 11/12] convert ZA header

---
 .../Process/Linux/NativeRegisterContextLinux_arm64.cpp       | 5 +++--
 .../Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h | 2 --
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index 6bb25fc6e5f61..e92a84b40699d 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -1305,7 +1305,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
       // ZA header size you pass in. Therefore we must write header and 
register
       // data (if present) in one go every time. Read the header only first 
just
       // to get the size.
-      ::memcpy(GetZAHeader(), src, GetSetSize(RegisterSetType::ZA_HEADER));
+      ::memcpy(GetSetBuffer(RegisterSetType::ZA_HEADER), src,
+               GetSetSize(RegisterSetType::ZA_HEADER));
       // Read the header and register data. Can't use the buffer size here, it
       // may be incorrect due to being filled with dummy data previously. 
Resize
       // this so WriteZA uses the correct size.
@@ -1713,7 +1714,7 @@ Status NativeRegisterContextLinux_arm64::ReadZAHeader() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetZAHeader();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::ZA_HEADER);
   ioVec.iov_len = GetSetSize(RegisterSetType::ZA_HEADER);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::ZA_HEADER),
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 0adfc70ca309a..544f98c139800 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -254,8 +254,6 @@ class NativeRegisterContextLinux_arm64
 
   void *GetSVEHeader() { return &m_sve_header; }
 
-  void *GetZAHeader() { return &m_za_header; }
-
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }

>From 4f5bb1b3fbd85467cf14afe66b7100ba4b03f5c5 Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Tue, 4 Aug 2026 15:02:22 +0000
Subject: [PATCH 12/12] convert SVE header

---
 .../Process/Linux/NativeRegisterContextLinux_arm64.cpp     | 7 ++++---
 .../Process/Linux/NativeRegisterContextLinux_arm64.h       | 2 --
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
index e92a84b40699d..97bb2a0f45d14 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -1198,7 +1198,8 @@ Status 
NativeRegisterContextLinux_arm64::WriteAllRegisterValues(
 
       // First write SVE header. We do not use RestoreRegisters because we do
       // not want src to be modified yet.
-      ::memcpy(GetSVEHeader(), src, GetSetSize(RegisterSetType::SVE_HEADER));
+      ::memcpy(GetSetBuffer(RegisterSetType::SVE_HEADER), src,
+               GetSetSize(RegisterSetType::SVE_HEADER));
       if (!sve::vl_valid(m_sve_header.vl)) {
         Invalidate(RegisterSetType::SVE_HEADER);
         error = Status::FromErrorStringWithFormat(
@@ -1497,7 +1498,7 @@ Status NativeRegisterContextLinux_arm64::ReadSVEHeader() {
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetSVEHeader();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::SVE_HEADER);
   ioVec.iov_len = GetSetSize(RegisterSetType::SVE_HEADER);
 
   error = ReadRegisterSet(&ioVec, GetSetSize(RegisterSetType::SVE_HEADER),
@@ -1536,7 +1537,7 @@ Status NativeRegisterContextLinux_arm64::WriteSVEHeader() 
{
     return error;
 
   struct iovec ioVec;
-  ioVec.iov_base = GetSVEHeader();
+  ioVec.iov_base = GetSetBuffer(RegisterSetType::SVE_HEADER);
   ioVec.iov_len = GetSetSize(RegisterSetType::SVE_HEADER);
 
   Invalidate(RegisterSetType::SVE_HEADER);
diff --git 
a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h 
b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 544f98c139800..86a317c11505a 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -252,8 +252,6 @@ class NativeRegisterContextLinux_arm64
 
   void SetSVERegVG(uint64_t vg) { m_sve_header.vl = vg * 8; }
 
-  void *GetSVEHeader() { return &m_sve_header; }
-
   void *GetSMEPseudoBuffer() { return &m_sme_pseudo_regs; }
 
   size_t GetSMEPseudoBufferSize() { return sizeof(m_sme_pseudo_regs); }

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to