[Lldb-commits] [PATCH] D132510: [RISCV][LLDB] Add initial SysV ABI support

Emmmer S via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 26 09:52:55 PDT 2022


Emmmer added a subscriber: labath.
Emmmer added a comment.

I have to say sorry after reading your update but not giving you feedback.
I pulled your patch and found it does not compile, and I have fixed them for you :)

In D62732#2306055 <https://reviews.llvm.org/D62732#2306055>, @labath wrote:

> ABI plugins are one of the hardest things to test in lldb, particularly without actual hardware. That's why we've let them be added in the past without any accompanying tests. The situation is not ideal though, because we've accumulated various ABI plugins which are hard to change without breaking (or even to know if they work) because they only work with third-party (possibly proprietary) stubs.

I have tried to work on ABISys_V plugins, but I think it is difficult because I am not able to check whether ABIPlugin works well.
It will be nice if we have some tests.



================
Comment at: lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp:37-39
+
+LLDB_PLUGIN_DEFINE(ABISysV_riscv)
+
----------------
modify target name.


================
Comment at: lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp:157-162
+  if (arch.GetTriple().getArch() == llvm::Triple::riscv32 ||
+      arch.GetTriple().getArch() == llvm::Triple::riscv64) {
+    return ABISP(
+        new ABISysV_riscv(std::move(process_sp), MakeMCRegisterInfo(arch),
+                          arch.GetTriple().getArch() == llvm::Triple::riscv64));
+  }
----------------
Using `.isRISCV()` instead of 
`arch.GetTriple().getArch() == llvm::Triple::riscv32 || arch.GetTriple().getArch() == llvm::Triple::riscv64`
and remove braces from `if` statment


================
Comment at: lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp:175-184
+// PluginInterface protocol
+
+lldb_private::ConstString ABISysV_riscv::GetPluginNameStatic() {
+  static ConstString g_name("sysv-riscv");
+  return g_name;
+}
+
----------------
We can remove this since we defined it in `ABISysV_riscv.h`


================
Comment at: lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.h:94-98
+  static lldb_private::ConstString GetPluginNameStatic();
+
+  lldb_private::ConstString GetPluginName() override;
+
+  uint32_t GetPluginVersion() override { return 1; }
----------------
GetPluginVersion() is unused.


================
Comment at: lldb/source/Plugins/ABI/RISCV/CMakeLists.txt:1
+add_lldb_library(lldbPluginABISysV_riscv PLUGIN
+  ABISysV_riscv.cpp
----------------
modify target name


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132510/new/

https://reviews.llvm.org/D132510



More information about the lldb-commits mailing list