Skip to content

Commit 86a58f1

Browse files
committed
[lldb] [DynamicRegisterInfo] Pass name/alt_name via RegisterInfo
Remove the name and alt_name parameters from AddRegister() and instead pass them via RegisterInfo.name and .alt_name fields. This makes the API simpler and removes some duplication. Differential Revision: https://reviews.llvm.org/D109872
1 parent 96ec9b6 commit 86a58f1

File tree

4 files changed

+8
-23
lines changed

4 files changed

+8
-23
lines changed

lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,14 +396,10 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
396396
}
397397

398398
void DynamicRegisterInfo::AddRegister(RegisterInfo &reg_info,
399-
ConstString &reg_name,
400-
ConstString &reg_alt_name,
401399
ConstString &set_name) {
402400
assert(!m_finalized);
403401
const uint32_t reg_num = m_regs.size();
404-
reg_info.name = reg_name.AsCString();
405402
assert(reg_info.name);
406-
reg_info.alt_name = reg_alt_name.AsCString(nullptr);
407403
uint32_t i;
408404
if (reg_info.value_regs) {
409405
for (i = 0; reg_info.value_regs[i] != LLDB_INVALID_REGNUM; ++i)

lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ class DynamicRegisterInfo {
3636
const lldb_private::ArchSpec &arch);
3737

3838
void AddRegister(lldb_private::RegisterInfo &reg_info,
39-
lldb_private::ConstString &reg_name,
40-
lldb_private::ConstString &reg_alt_name,
4139
lldb_private::ConstString &set_name);
4240

4341
void Finalize(const lldb_private::ArchSpec &arch);

lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -992,19 +992,12 @@ void GDBRemoteDynamicRegisterInfo::HardcodeARMRegisters(bool from_scratch) {
992992
}
993993
}
994994
for (i = 0; i < num_registers; ++i) {
995-
ConstString name;
996-
ConstString alt_name;
997-
if (g_register_infos[i].name && g_register_infos[i].name[0])
998-
name.SetCString(g_register_infos[i].name);
999-
if (g_register_infos[i].alt_name && g_register_infos[i].alt_name[0])
1000-
alt_name.SetCString(g_register_infos[i].alt_name);
1001-
1002995
if (i <= 15 || i == 25)
1003-
AddRegister(g_register_infos[i], name, alt_name, gpr_reg_set);
996+
AddRegister(g_register_infos[i], gpr_reg_set);
1004997
else if (i <= 24)
1005-
AddRegister(g_register_infos[i], name, alt_name, sfp_reg_set);
998+
AddRegister(g_register_infos[i], sfp_reg_set);
1006999
else
1007-
AddRegister(g_register_infos[i], name, alt_name, vfp_reg_set);
1000+
AddRegister(g_register_infos[i], vfp_reg_set);
10081001
}
10091002
} else {
10101003
// Add composite registers to our primordial registers, then.
@@ -1040,8 +1033,6 @@ void GDBRemoteDynamicRegisterInfo::HardcodeARMRegisters(bool from_scratch) {
10401033
// If "match" is true, then we can add extra registers.
10411034
if (match) {
10421035
for (i = 0; i < num_composites; ++i) {
1043-
ConstString name;
1044-
ConstString alt_name;
10451036
const uint32_t first_primordial_reg =
10461037
g_comp_register_infos[i].value_regs[0];
10471038
const char *reg_name = g_register_infos[first_primordial_reg].name;
@@ -1054,9 +1045,7 @@ void GDBRemoteDynamicRegisterInfo::HardcodeARMRegisters(bool from_scratch) {
10541045
// The name matches the existing primordial entry. Find and
10551046
// assign the offset, and then add this composite register entry.
10561047
g_comp_register_infos[i].byte_offset = reg_info->byte_offset;
1057-
name.SetCString(g_comp_register_infos[i].name);
1058-
AddRegister(g_comp_register_infos[i], name, alt_name,
1059-
vfp_reg_set);
1048+
AddRegister(g_comp_register_infos[i], vfp_reg_set);
10601049
}
10611050
}
10621051
}

lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,13 +578,14 @@ void ProcessGDBRemote::BuildDynamicRegisterInfo(bool force) {
578578
}
579579

580580
reg_info.name = reg_name.AsCString();
581+
reg_info.alt_name = alt_name.AsCString();
581582
// We have to make a temporary ABI here, and not use the GetABI because
582583
// this code gets called in DidAttach, when the target architecture
583584
// (and consequently the ABI we'll get from the process) may be wrong.
584585
if (ABISP abi_sp = ABI::FindPlugin(shared_from_this(), arch_to_use))
585586
abi_sp->AugmentRegisterInfo(reg_info);
586587

587-
m_register_info_sp->AddRegister(reg_info, reg_name, alt_name, set_name);
588+
m_register_info_sp->AddRegister(reg_info, set_name);
588589
} else {
589590
break; // ensure exit before reg_num is incremented
590591
}
@@ -4554,9 +4555,10 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
45544555
reg_num_remote = reg_info.kinds[eRegisterKindProcessPlugin] + 1;
45554556
++reg_num_local;
45564557
reg_info.name = reg_name.AsCString();
4558+
reg_info.alt_name = alt_name.AsCString();
45574559
if (abi_sp)
45584560
abi_sp->AugmentRegisterInfo(reg_info);
4559-
dyn_reg_info.AddRegister(reg_info, reg_name, alt_name, set_name);
4561+
dyn_reg_info.AddRegister(reg_info, set_name);
45604562

45614563
return true; // Keep iterating through all "reg" elements
45624564
});

0 commit comments

Comments
 (0)