[Lldb-commits] [lldb] [llvm] [lldb] Extract reusable native register contexts (PR #233620)

Minsoo Choo via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 19 15:53:19 PDT 2026


https://github.com/mchoo7 created https://github.com/llvm/llvm-project/pull/233620

Unlike RegisterInfo, these files directly manipulate register state. Thus move these files to Plugins/Register instead of merging in lldbRegister. These could go to under Plugins/Process/Register, but since Darwin's RegisterContext is used by Plugins/ObjectFile, bring this up to Plugins/ folder.

>From c79891e6b4423405cc624c4deaa36ec67d944e3a Mon Sep 17 00:00:00 2001
From: Minsoo Choo <minsoo at minsoo.io>
Date: Sun, 6 Sep 2026 09:59:29 -0400
Subject: [PATCH] [lldb] Extract reusable native register contexts

---
 lldb/source/Plugins/CMakeLists.txt            |  1 +
 .../source/Plugins/Process/AIX/CMakeLists.txt |  1 +
 .../Process/AIX/NativeRegisterContextAIX.h    |  2 +-
 .../Plugins/Process/FreeBSD/CMakeLists.txt    |  1 +
 .../FreeBSD/NativeRegisterContextFreeBSD.h    |  2 +-
 .../NativeRegisterContextFreeBSD_arm64.h      |  2 +-
 .../NativeRegisterContextFreeBSD_x86.h        |  2 +-
 .../Plugins/Process/Linux/CMakeLists.txt      |  1 +
 .../Linux/NativeRegisterContextLinux.h        |  2 +-
 .../Linux/NativeRegisterContextLinux_arm.h    |  2 +-
 .../Linux/NativeRegisterContextLinux_arm64.h  |  2 +-
 .../NativeRegisterContextLinux_arm64dbreg.h   |  2 +-
 .../NativeRegisterContextLinux_loongarch64.h  |  2 +-
 .../Linux/NativeRegisterContextLinux_x86.h    |  2 +-
 .../Plugins/Process/NetBSD/CMakeLists.txt     |  1 +
 .../NetBSD/NativeRegisterContextNetBSD.h      |  2 +-
 .../NetBSD/NativeRegisterContextNetBSD_x86.h  |  2 +-
 .../Plugins/Process/Utility/CMakeLists.txt    |  6 -----
 .../Process/Windows/Common/CMakeLists.txt     |  1 +
 .../Common/NativeRegisterContextWindows.h     |  2 +-
 .../NativeRegisterContextWindows_arm64.h      |  2 +-
 lldb/source/Plugins/Register/CMakeLists.txt   |  1 +
 .../Plugins/Register/Native/CMakeLists.txt    | 21 ++++++++++++++++++
 .../Native}/NativeRegisterContextDBReg.cpp    |  1 -
 .../Native}/NativeRegisterContextDBReg.h      |  8 +++----
 .../NativeRegisterContextDBReg_arm.cpp        |  0
 .../Native}/NativeRegisterContextDBReg_arm.h  |  8 +++----
 .../NativeRegisterContextDBReg_arm64.cpp      |  0
 .../NativeRegisterContextDBReg_arm64.h        |  8 +++----
 .../NativeRegisterContextDBReg_loongarch.cpp  |  0
 .../NativeRegisterContextDBReg_loongarch.h    |  8 +++----
 .../NativeRegisterContextDBReg_x86.cpp        |  0
 .../Native}/NativeRegisterContextDBReg_x86.h  |  8 +++----
 .../NativeRegisterContextRegisterInfo.cpp     |  0
 .../NativeRegisterContextRegisterInfo.h       |  4 ++--
 .../source/Plugins/Process/Linux/BUILD.gn     |  1 +
 .../source/Plugins/Process/Utility/BUILD.gn   |  6 -----
 .../Plugins/Process/Windows/Common/BUILD.gn   |  1 +
 .../source/Plugins/Register/Native/BUILD.gn   | 22 +++++++++++++++++++
 39 files changed, 88 insertions(+), 49 deletions(-)
 create mode 100644 lldb/source/Plugins/Register/CMakeLists.txt
 create mode 100644 lldb/source/Plugins/Register/Native/CMakeLists.txt
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg.cpp (99%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg.h (93%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_arm.cpp (100%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_arm.h (82%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_arm64.cpp (100%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_arm64.h (78%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_loongarch.cpp (100%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_loongarch.h (79%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_x86.cpp (100%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextDBReg_x86.h (85%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextRegisterInfo.cpp (100%)
 rename lldb/source/Plugins/{Process/Utility => Register/Native}/NativeRegisterContextRegisterInfo.h (91%)
 create mode 100644 llvm/utils/gn/secondary/lldb/source/Plugins/Register/Native/BUILD.gn

diff --git a/lldb/source/Plugins/CMakeLists.txt b/lldb/source/Plugins/CMakeLists.txt
index fb6fe22382bc6..7465c2217805c 100644
--- a/lldb/source/Plugins/CMakeLists.txt
+++ b/lldb/source/Plugins/CMakeLists.txt
@@ -17,6 +17,7 @@ add_subdirectory(OperatingSystem)
 add_subdirectory(Platform)
 add_subdirectory(Process)
 add_subdirectory(REPL)
+add_subdirectory(Register)
 add_subdirectory(RegisterTypeBuilder)
 add_subdirectory(ScriptInterpreter)
 add_subdirectory(StructuredData)
diff --git a/lldb/source/Plugins/Process/AIX/CMakeLists.txt b/lldb/source/Plugins/Process/AIX/CMakeLists.txt
index f1f9121822736..fcb0042592ea1 100644
--- a/lldb/source/Plugins/Process/AIX/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/AIX/CMakeLists.txt
@@ -14,6 +14,7 @@ add_lldb_library(lldbPluginProcessAIX
     lldbUtility
     lldbPluginProcessPOSIX
     lldbPluginProcessUtility
+    lldbPluginRegisterNative
   )
 
 target_compile_definitions(lldbPluginProcessAIX PRIVATE "-D_ALL_SOURCE")
diff --git a/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h
index 1f4f79627db41..3acd872d3291b 100644
--- a/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h
+++ b/lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h
@@ -9,7 +9,7 @@
 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H
 #define LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "Plugins/Register/Native/NativeRegisterContextRegisterInfo.h"
 
 namespace lldb_private::process_aix {
 
diff --git a/lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt b/lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt
index 559e6ff0dd570..61249ad94324f 100644
--- a/lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt
@@ -16,4 +16,5 @@ add_lldb_library(lldbPluginProcessFreeBSD
     lldbUtility
     lldbPluginProcessPOSIX
     lldbPluginProcessUtility
+    lldbPluginRegisterNative
   )
diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
index b7f659ef24de2..ba810f8f2d415 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
@@ -9,7 +9,7 @@
 #ifndef lldb_NativeRegisterContextFreeBSD_h
 #define lldb_NativeRegisterContextFreeBSD_h
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "Plugins/Register/Native/NativeRegisterContextRegisterInfo.h"
 
 namespace lldb_private {
 namespace process_freebsd {
diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
index 5828af59a84ea..5654da18e054d 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
@@ -18,7 +18,7 @@
 // clang-format on
 
 #include "Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h"
 #include "Register/Common/RegisterInfo_arm64.h"
 
 #include <array>
diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86.h b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86.h
index 9d86935d13c32..ca97ab56970a9 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86.h
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86.h
@@ -22,7 +22,7 @@
 #include <optional>
 
 #include "Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_x86.h"
 #include "Register/Arch/RegisterContext_x86.h"
 #include "Register/Arch/lldb-x86-register-enums.h"
 
diff --git a/lldb/source/Plugins/Process/Linux/CMakeLists.txt b/lldb/source/Plugins/Process/Linux/CMakeLists.txt
index ce624a5211b05..38f3a86f53853 100644
--- a/lldb/source/Plugins/Process/Linux/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/Linux/CMakeLists.txt
@@ -30,4 +30,5 @@ add_lldb_library(lldbPluginProcessLinux
     lldbUtility
     lldbPluginProcessPOSIX
     lldbPluginProcessUtility
+    lldbPluginRegisterNative
   )
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
index 797eacc3bdd0f..17066be16b684 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
@@ -9,7 +9,7 @@
 #ifndef lldb_NativeRegisterContextLinux_h
 #define lldb_NativeRegisterContextLinux_h
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "Plugins/Register/Native/NativeRegisterContextRegisterInfo.h"
 #include "lldb/Host/common/NativeThreadProtocol.h"
 #include "lldb/Target/MemoryTagManager.h"
 #include "llvm/Support/Error.h"
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
index d4dbf920ea64a..cdb8c8f3eb3a1 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h
@@ -12,7 +12,7 @@
 #define lldb_NativeRegisterContextLinux_arm_h
 
 #include "Plugins/Process/Linux/NativeRegisterContextLinux.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_arm.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_arm.h"
 #include "Register/Common/RegisterInfo_arm.h"
 #include "Register/Arch/lldb-arm-register-enums.h"
 
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
index 163ea7c686606..80079e6885166 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
@@ -13,7 +13,7 @@
 
 #include "Plugins/Process/Linux/NativeRegisterContextLinux.h"
 #include "Plugins/Process/Utility/LinuxPTraceDefines_arm64sve.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h"
 #include "Register/Common/RegisterInfo_arm64.h"
 
 #include "llvm/ADT/BitmaskEnum.h"
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64dbreg.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64dbreg.h
index bca217851858d..a8bd386cb5aae 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64dbreg.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64dbreg.h
@@ -12,7 +12,7 @@
 // context for 64-bit server.
 
 #include "Plugins/Process/Linux/NativeProcessLinux.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg.h"
 #include "lldb/Utility/Status.h"
 
 namespace lldb_private {
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.h
index d2367cb455b74..7caadfb9fc52c 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_loongarch64.h
@@ -12,7 +12,7 @@
 #define lldb_NativeRegisterContextLinux_loongarch64_h
 
 #include "Plugins/Process/Linux/NativeRegisterContextLinux.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.h"
 #include "Register/Common/RegisterInfo_loongarch64.h"
 
 #include <asm/ptrace.h>
diff --git a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.h b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.h
index b58ae5bebe95f..4cf6005a4d133 100644
--- a/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.h
+++ b/lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86.h
@@ -12,7 +12,7 @@
 #define lldb_NativeRegisterContextLinux_x86_h
 
 #include "Plugins/Process/Linux/NativeRegisterContextLinux.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_x86.h"
 #include "Register/Linux/RegisterInfoLinux_x86.h"
 #include "Register/Arch/RegisterContext_x86.h"
 #include "Register/Arch/lldb-x86-register-enums.h"
diff --git a/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt b/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt
index 438e6b6c2a3c7..a24a42b7f4f81 100644
--- a/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt
@@ -13,5 +13,6 @@ add_lldb_library(lldbPluginProcessNetBSD
     lldbUtility
     lldbPluginProcessPOSIX
     lldbPluginProcessUtility
+    lldbPluginRegisterNative
     util
   )
diff --git a/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h b/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
index 08490aad9e0ba..0d5a21ff46bba 100644
--- a/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
+++ b/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h
@@ -11,7 +11,7 @@
 
 #include "lldb/Host/common/NativeThreadProtocol.h"
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "Plugins/Register/Native/NativeRegisterContextRegisterInfo.h"
 
 namespace lldb_private {
 namespace process_netbsd {
diff --git a/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86.h b/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86.h
index dba5ac78f67d3..7d0f5ee7a723e 100644
--- a/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86.h
+++ b/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86.h
@@ -23,7 +23,7 @@
 
 #include "Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h"
 #include "Register/Arch/RegisterContext_x86.h"
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_x86.h"
 #include "Register/Arch/lldb-x86-register-enums.h"
 
 namespace lldb_private {
diff --git a/lldb/source/Plugins/Process/Utility/CMakeLists.txt b/lldb/source/Plugins/Process/Utility/CMakeLists.txt
index 19a65bfa4fde1..e74e17971d035 100644
--- a/lldb/source/Plugins/Process/Utility/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/Utility/CMakeLists.txt
@@ -12,12 +12,6 @@ add_lldb_library(lldbPluginProcessUtility
   LinuxSignals.cpp
   MemoryTagManagerAArch64MTE.cpp
   NativeProcessSoftwareSingleStep.cpp
-  NativeRegisterContextDBReg.cpp
-  NativeRegisterContextDBReg_arm.cpp
-  NativeRegisterContextDBReg_arm64.cpp
-  NativeRegisterContextDBReg_loongarch.cpp
-  NativeRegisterContextDBReg_x86.cpp
-  NativeRegisterContextRegisterInfo.cpp
   NetBSDSignals.cpp
   OpenBSDSignals.cpp
   RegisterContextDarwin_arm.cpp
diff --git a/lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt b/lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt
index c6d8713a83159..87fad29b80764 100644
--- a/lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/Windows/Common/CMakeLists.txt
@@ -28,6 +28,7 @@ add_lldb_library(lldbPluginProcessWindowsCommon PLUGIN
     lldbHost
     lldbInterpreter
     lldbPluginDynamicLoaderWindowsDYLD
+    lldbPluginRegisterNative
     lldbSymbol
     lldbTarget
     ws2_32
diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h
index 2b71f639d562e..f75469cc58abd 100644
--- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h
+++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h
@@ -9,7 +9,7 @@
 #ifndef liblldb_NativeRegisterContextWindows_h_
 #define liblldb_NativeRegisterContextWindows_h_
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "Plugins/Register/Native/NativeRegisterContextRegisterInfo.h"
 #include "lldb/Host/common/NativeThreadProtocol.h"
 #include "lldb/Utility/DataBufferHeap.h"
 
diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
index 3824fc227f4f4..fd00009fdd33c 100644
--- a/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
+++ b/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.h
@@ -12,7 +12,7 @@
 
 #include "NativeRegisterContextWindows.h"
 
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h"
+#include "Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h"
 #include "Register/Common/RegisterInfo_arm64.h"
 #include "Register/Arch/lldb-arm64-register-enums.h"
 
diff --git a/lldb/source/Plugins/Register/CMakeLists.txt b/lldb/source/Plugins/Register/CMakeLists.txt
new file mode 100644
index 0000000000000..d862398db31b0
--- /dev/null
+++ b/lldb/source/Plugins/Register/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(Native)
diff --git a/lldb/source/Plugins/Register/Native/CMakeLists.txt b/lldb/source/Plugins/Register/Native/CMakeLists.txt
new file mode 100644
index 0000000000000..dc049817a1379
--- /dev/null
+++ b/lldb/source/Plugins/Register/Native/CMakeLists.txt
@@ -0,0 +1,21 @@
+add_lldb_library(lldbPluginRegisterNative NO_PLUGIN_DEPENDENCIES
+  NativeRegisterContextDBReg.cpp
+  NativeRegisterContextDBReg_arm.cpp
+  NativeRegisterContextDBReg_arm64.cpp
+  NativeRegisterContextDBReg_loongarch.cpp
+  NativeRegisterContextDBReg_x86.cpp
+  NativeRegisterContextRegisterInfo.cpp
+
+  LINK_COMPONENTS
+    Support
+  LINK_LIBS
+    lldbCore
+    lldbHost
+    lldbRegister
+    lldbUtility
+  ALLOWED_INTERNAL_DEPENDENCIES
+    lldbCore
+    lldbHost
+    lldbRegister
+    lldbUtility
+  )
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.cpp
similarity index 99%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.cpp
index 50d416028e89b..f35027e935140 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.cpp
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.cpp
@@ -348,7 +348,6 @@ Status NativeRegisterContextDBReg::ClearAllHardwareWatchpoints() {
 Status
 NativeRegisterContextDBReg::GetWatchpointHitIndex(uint32_t &wp_index,
                                                   lldb::addr_t trap_addr) {
-  wp_index = LLDB_INVALID_INDEX32;
   Log *log = GetLog(LLDBLog::Watchpoints);
   LLDB_LOG(log, "wp_index: {0}, trap_addr: {1:x}", wp_index, trap_addr);
 
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.h
similarity index 93%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.h
index 60d1bfa38dd01..aef7865fbf196 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg.h
@@ -6,10 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "NativeRegisterContextRegisterInfo.h"
 
 #include <array>
 #include <optional>
@@ -105,4 +105,4 @@ class NativeRegisterContextDBReg
 
 } // namespace lldb_private
 
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_H
+#endif // LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_H
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm.cpp
similarity index 100%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm.cpp
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm.h
similarity index 82%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm.h
index 0d1de2ae2d89b..52a9d67dc7ca3 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm.h
@@ -6,10 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg.h"
+#include "NativeRegisterContextDBReg.h"
 
 namespace lldb_private {
 
@@ -39,4 +39,4 @@ class NativeRegisterContextDBReg_arm : public NativeRegisterContextDBReg {
 
 } // namespace lldb_private
 
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM_H
+#endif // LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM_H
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm64.cpp
similarity index 100%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm64.cpp
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h
similarity index 78%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h
index 0dfa5e03fc27b..6f08663ae7c9b 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_arm64.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_arm64.h
@@ -6,10 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM64_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM64_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM64_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM64_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg.h"
+#include "NativeRegisterContextDBReg.h"
 
 namespace lldb_private {
 
@@ -31,4 +31,4 @@ class NativeRegisterContextDBReg_arm64 : public NativeRegisterContextDBReg {
 
 } // namespace lldb_private
 
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_ARM64_H
+#endif // LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_ARM64_H
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.cpp
similarity index 100%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.cpp
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.h
similarity index 79%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.h
index 703f41f3c298b..693dbc023ccb5 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_loongarch.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_loongarch.h
@@ -6,10 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextDBReg.h"
+#include "NativeRegisterContextDBReg.h"
 
 namespace lldb_private {
 
@@ -31,4 +31,4 @@ class NativeRegisterContextDBReg_loongarch : public NativeRegisterContextDBReg {
 
 } // namespace lldb_private
 
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
+#endif // LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_LOONGARCH_H
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_x86.cpp
similarity index 100%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_x86.cpp
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_x86.h
similarity index 85%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_x86.h
index 8a2c1a1dbcbe1..cc7ac734a1bd2 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextDBReg_x86.h
@@ -6,10 +6,10 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_X86_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_X86_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_X86_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_X86_H
 
-#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
+#include "NativeRegisterContextRegisterInfo.h"
 
 namespace lldb_private {
 
@@ -45,4 +45,4 @@ class NativeRegisterContextDBReg_x86
 
 } // namespace lldb_private
 
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTDBREG_X86_H
+#endif // LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTDBREG_X86_H
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp b/lldb/source/Plugins/Register/Native/NativeRegisterContextRegisterInfo.cpp
similarity index 100%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextRegisterInfo.cpp
diff --git a/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h b/lldb/source/Plugins/Register/Native/NativeRegisterContextRegisterInfo.h
similarity index 91%
rename from lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h
rename to lldb/source/Plugins/Register/Native/NativeRegisterContextRegisterInfo.h
index 31ad12dc9fd7e..48465cd0e0ee2 100644
--- a/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h
+++ b/lldb/source/Plugins/Register/Native/NativeRegisterContextRegisterInfo.h
@@ -6,8 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H
+#ifndef LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTREGISTERINFO_H
+#define LLDB_SOURCE_PLUGINS_REGISTER_NATIVE_NATIVEREGISTERCONTEXTREGISTERINFO_H
 
 #include <memory>
 
diff --git a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Linux/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Linux/BUILD.gn
index 90fd39410939b..d79f5c21427f7 100644
--- a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Linux/BUILD.gn
+++ b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Linux/BUILD.gn
@@ -4,6 +4,7 @@ static_library("Linux") {
   deps = [
     "//lldb/source/Core",
     "//lldb/source/Host",
+    "//lldb/source/Plugins/Register/Native",
     "//lldb/source/Plugins/Process/POSIX",
     "//lldb/source/Plugins/Process/Utility",
     "//lldb/source/Symbol",
diff --git a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
index 59c7063500111..175599f39f62e 100644
--- a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
+++ b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
@@ -30,12 +30,6 @@ static_library("Utility") {
     "LinuxSignals.cpp",
     "MemoryTagManagerAArch64MTE.cpp",
     "NativeProcessSoftwareSingleStep.cpp",
-    "NativeRegisterContextDBReg.cpp",
-    "NativeRegisterContextDBReg_arm.cpp",
-    "NativeRegisterContextDBReg_arm64.cpp",
-    "NativeRegisterContextDBReg_loongarch.cpp",
-    "NativeRegisterContextDBReg_x86.cpp",
-    "NativeRegisterContextRegisterInfo.cpp",
     "NetBSDSignals.cpp",
     "OpenBSDSignals.cpp",
     "RegisterContextDarwin_arm.cpp",
diff --git a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Windows/Common/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Windows/Common/BUILD.gn
index 0fec9ee7eddd2..84ac4ea98d6fb 100644
--- a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Windows/Common/BUILD.gn
+++ b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Windows/Common/BUILD.gn
@@ -6,6 +6,7 @@ static_library("Common") {
     "//lldb/source/Host",
     "//lldb/source/Interpreter",
     "//lldb/source/Plugins/DynamicLoader/Windows-DYLD",
+    "//lldb/source/Plugins/Register/Native",
     "//lldb/source/Symbol",
     "//lldb/source/Target",
     "//llvm/lib/Support",
diff --git a/llvm/utils/gn/secondary/lldb/source/Plugins/Register/Native/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Plugins/Register/Native/BUILD.gn
new file mode 100644
index 0000000000000..930c36b4e3895
--- /dev/null
+++ b/llvm/utils/gn/secondary/lldb/source/Plugins/Register/Native/BUILD.gn
@@ -0,0 +1,22 @@
+static_library("Native") {
+  output_name = "lldbPluginRegisterNative"
+  configs += [ "//llvm/utils/gn/build:lldb_code" ]
+  deps = [
+    "//lldb/source/Core",
+    "//lldb/source/Host",
+    "//lldb/source/Register",
+    "//lldb/source/Utility",
+    "//llvm/lib/Support",
+  ]
+
+  # Uses source-relative includes for own headers.
+  include_dirs = [ "//lldb/source" ]
+  sources = [
+    "NativeRegisterContextDBReg.cpp",
+    "NativeRegisterContextDBReg_arm.cpp",
+    "NativeRegisterContextDBReg_arm64.cpp",
+    "NativeRegisterContextDBReg_loongarch.cpp",
+    "NativeRegisterContextDBReg_x86.cpp",
+    "NativeRegisterContextRegisterInfo.cpp",
+  ]
+}



More information about the lldb-commits mailing list