[Lldb-commits] [lldb] c208deb - [lldb] [ABI/AArch64] Recognize special regs by their xN names too

Michał Górny via lldb-commits lldb-commits at lists.llvm.org
Thu Sep 16 01:23:40 PDT 2021


Author: Michał Górny
Date: 2021-09-16T10:23:31+02:00
New Revision: c208deb9008260d3effc00c98493434a65af4b8d

URL: https://github.com/llvm/llvm-project/commit/c208deb9008260d3effc00c98493434a65af4b8d
DIFF: https://github.com/llvm/llvm-project/commit/c208deb9008260d3effc00c98493434a65af4b8d.diff

LOG: [lldb] [ABI/AArch64] Recognize special regs by their xN names too

Recognize lr/sp/fp by their numeric register names in the ABI plugin.
This is necessary to mark them appropriately when interfacing with
gdbserver.

Differential Revision: https://reviews.llvm.org/D109691

Added: 
    

Modified: 
    lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
    lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
index 42d73ce39ed6f..619c45dc12ec2 100644
--- a/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
+++ b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp
@@ -55,9 +55,9 @@ std::string ABIAArch64::GetMCName(std::string reg) {
 uint32_t ABIAArch64::GetGenericNum(llvm::StringRef name) {
   return llvm::StringSwitch<uint32_t>(name)
       .Case("pc", LLDB_REGNUM_GENERIC_PC)
-      .Case("lr", LLDB_REGNUM_GENERIC_RA)
-      .Case("sp", LLDB_REGNUM_GENERIC_SP)
-      .Case("fp", LLDB_REGNUM_GENERIC_FP)
+      .Cases("lr", "x30", LLDB_REGNUM_GENERIC_RA)
+      .Cases("sp", "x31", LLDB_REGNUM_GENERIC_SP)
+      .Cases("fp", "x29", LLDB_REGNUM_GENERIC_FP)
       .Case("cpsr", LLDB_REGNUM_GENERIC_FLAGS)
       .Case("x0", LLDB_REGNUM_GENERIC_ARG1)
       .Case("x1", LLDB_REGNUM_GENERIC_ARG2)

diff  --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
index eabd7d807f5b3..13d7804286138 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
@@ -409,5 +409,11 @@ def haltReason(self):
                    ["x0 = 0x0807060504030201"])
         self.match("register read arg2",
                    ["x1 = 0x1817161514131211"])
+        self.match("register read fp",
+                   ["x29 = 0x3837363534333231"])
+        self.match("register read lr",
+                   ["x30 = 0x4847464544434241"])
+        self.match("register read ra",
+                   ["x30 = 0x4847464544434241"])
         self.match("register read flags",
                    ["cpsr = 0x74737271"])


        


More information about the lldb-commits mailing list