[Lldb-commits] [lldb] [lldb][RISCV] Add float registers stubs (PR #214034)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Aug 5 05:52:59 PDT 2026
https://github.com/Qwinci updated https://github.com/llvm/llvm-project/pull/214034
>From d920db6e044e6984147fe44aeb13f0dec85dddfb Mon Sep 17 00:00:00 2001
From: Qwinci <qwinci222 at gmail.com>
Date: Tue, 4 Aug 2026 20:43:16 +0300
Subject: [PATCH] [lldb][RISCV] Add float register ABI stubs
This allows retrieving the float registers for variables in other frames
from e.g. QEMU gdbstub via DWARF rules.
---
.../Plugins/ABI/RISCV/ABISysV_riscv.cpp | 70 ++++++++++++++++++-
1 file changed, 67 insertions(+), 3 deletions(-)
diff --git a/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp b/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
index 19bbef9c4119e..7443adf764816 100644
--- a/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
+++ b/lldb/source/Plugins/ABI/RISCV/ABISysV_riscv.cpp
@@ -83,10 +83,42 @@ enum regnums {
t4,
t5,
t6,
- pc
+ pc = riscv_dwarf::dwarf_gpr_pc,
+ ft0 = riscv_dwarf::dwarf_fpr_f0,
+ ft1,
+ ft2,
+ ft3,
+ ft4,
+ ft5,
+ ft6,
+ ft7,
+ fs0,
+ fs1,
+ fa0,
+ fa1,
+ fa2,
+ fa3,
+ fa4,
+ fa5,
+ fa6,
+ fa7,
+ fs2,
+ fs3,
+ fs4,
+ fs5,
+ fs6,
+ fs7,
+ fs8,
+ fs9,
+ fs10,
+ fs11,
+ ft8,
+ ft9,
+ ft10,
+ ft11
};
-static const std::array<RegisterInfo, 33> g_register_infos = {
+static const std::array<RegisterInfo, 65> g_register_infos = {
{DEFINE_REGISTER_STUB(zero, nullptr),
DEFINE_GENERIC_REGISTER_STUB(ra, nullptr, LLDB_REGNUM_GENERIC_RA),
DEFINE_GENERIC_REGISTER_STUB(sp, nullptr, LLDB_REGNUM_GENERIC_SP),
@@ -119,7 +151,39 @@ static const std::array<RegisterInfo, 33> g_register_infos = {
DEFINE_REGISTER_STUB(t4, nullptr),
DEFINE_REGISTER_STUB(t5, nullptr),
DEFINE_REGISTER_STUB(t6, nullptr),
- DEFINE_GENERIC_REGISTER_STUB(pc, nullptr, LLDB_REGNUM_GENERIC_PC)}};
+ DEFINE_GENERIC_REGISTER_STUB(pc, nullptr, LLDB_REGNUM_GENERIC_PC),
+ DEFINE_REGISTER_STUB(ft0, nullptr),
+ DEFINE_REGISTER_STUB(ft1, nullptr),
+ DEFINE_REGISTER_STUB(ft2, nullptr),
+ DEFINE_REGISTER_STUB(ft3, nullptr),
+ DEFINE_REGISTER_STUB(ft4, nullptr),
+ DEFINE_REGISTER_STUB(ft5, nullptr),
+ DEFINE_REGISTER_STUB(ft6, nullptr),
+ DEFINE_REGISTER_STUB(ft7, nullptr),
+ DEFINE_REGISTER_STUB(fs0, nullptr),
+ DEFINE_REGISTER_STUB(fs1, nullptr),
+ DEFINE_REGISTER_STUB(fa0, nullptr),
+ DEFINE_REGISTER_STUB(fa1, nullptr),
+ DEFINE_REGISTER_STUB(fa2, nullptr),
+ DEFINE_REGISTER_STUB(fa3, nullptr),
+ DEFINE_REGISTER_STUB(fa4, nullptr),
+ DEFINE_REGISTER_STUB(fa5, nullptr),
+ DEFINE_REGISTER_STUB(fa6, nullptr),
+ DEFINE_REGISTER_STUB(fa7, nullptr),
+ DEFINE_REGISTER_STUB(fs2, nullptr),
+ DEFINE_REGISTER_STUB(fs3, nullptr),
+ DEFINE_REGISTER_STUB(fs4, nullptr),
+ DEFINE_REGISTER_STUB(fs5, nullptr),
+ DEFINE_REGISTER_STUB(fs6, nullptr),
+ DEFINE_REGISTER_STUB(fs7, nullptr),
+ DEFINE_REGISTER_STUB(fs8, nullptr),
+ DEFINE_REGISTER_STUB(fs9, nullptr),
+ DEFINE_REGISTER_STUB(fs10, nullptr),
+ DEFINE_REGISTER_STUB(fs11, nullptr),
+ DEFINE_REGISTER_STUB(ft8, nullptr),
+ DEFINE_REGISTER_STUB(ft9, nullptr),
+ DEFINE_REGISTER_STUB(ft10, nullptr),
+ DEFINE_REGISTER_STUB(ft11, nullptr)}};
} // namespace dwarf
} // namespace
More information about the lldb-commits
mailing list