Skip to content

Commit 75b195c

Browse files
committed
Revert "[lldb] Add template method for getting const or mutable regs from DynamicRegisterInfo (#71402)"
This reverts commit 4989c62 as it fails to build with g++.
1 parent 4306cfd commit 75b195c

File tree

3 files changed

+17
-22
lines changed

3 files changed

+17
-22
lines changed

lldb/include/lldb/Target/DynamicRegisterInfo.h

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,12 @@ class DynamicRegisterInfo {
8989
GetRegisterInfo(llvm::StringRef reg_name) const;
9090

9191
typedef std::vector<lldb_private::RegisterInfo> reg_collection;
92-
93-
template <typename T> T registers() = delete;
94-
95-
typedef llvm::iterator_range<reg_collection::const_iterator>
96-
reg_collection_const_range;
97-
template <> reg_collection_const_range registers() {
98-
return reg_collection_const_range(m_regs);
92+
llvm::iterator_range<reg_collection::const_iterator> registers() const {
93+
return llvm::iterator_range<reg_collection::const_iterator>(m_regs);
9994
}
10095

101-
typedef llvm::iterator_range<reg_collection::iterator> reg_collection_range;
102-
template <> reg_collection_range registers() {
103-
return reg_collection_range(m_regs);
96+
llvm::iterator_range<reg_collection::iterator> registers_mutable() {
97+
return llvm::iterator_range<reg_collection::iterator>(m_regs);
10498
}
10599

106100
void ConfigureOffsets();

lldb/source/Plugins/Architecture/AArch64/ArchitectureAArch64.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ ArchitectureAArch64::Create(const ArchSpec &arch) {
3838
return std::unique_ptr<Architecture>(new ArchitectureAArch64());
3939
}
4040

41-
static void
42-
UpdateARM64SVERegistersInfos(DynamicRegisterInfo::reg_collection_range regs,
43-
uint64_t vg) {
41+
static void UpdateARM64SVERegistersInfos(
42+
llvm::iterator_range<
43+
lldb_private::DynamicRegisterInfo::reg_collection::iterator>
44+
regs,
45+
uint64_t vg) {
4446
// SVE Z register size is vg x 8 bytes.
4547
uint32_t z_reg_byte_size = vg * 8;
4648

@@ -60,9 +62,11 @@ UpdateARM64SVERegistersInfos(DynamicRegisterInfo::reg_collection_range regs,
6062
}
6163
}
6264

63-
static void
64-
UpdateARM64SMERegistersInfos(DynamicRegisterInfo::reg_collection_range regs,
65-
uint64_t svg) {
65+
static void UpdateARM64SMERegistersInfos(
66+
llvm::iterator_range<
67+
lldb_private::DynamicRegisterInfo::reg_collection::iterator>
68+
regs,
69+
uint64_t svg) {
6670
for (auto &reg : regs) {
6771
if (strcmp(reg.name, "za") == 0) {
6872
// ZA is a register with size (svg*8) * (svg*8). A square essentially.
@@ -104,11 +108,10 @@ bool ArchitectureAArch64::ReconfigureRegisterInfo(DynamicRegisterInfo &reg_info,
104108
if (!vg_reg_value && !svg_reg_value)
105109
return false;
106110

107-
auto regs = reg_info.registers<DynamicRegisterInfo::reg_collection_range>();
108111
if (vg_reg_value)
109-
UpdateARM64SVERegistersInfos(regs, *vg_reg_value);
112+
UpdateARM64SVERegistersInfos(reg_info.registers_mutable(), *vg_reg_value);
110113
if (svg_reg_value)
111-
UpdateARM64SMERegistersInfos(regs, *svg_reg_value);
114+
UpdateARM64SMERegistersInfos(reg_info.registers_mutable(), *svg_reg_value);
112115

113116
// At this point if we have updated any registers, their offsets will all be
114117
// invalid. If we did, we need to update them all.

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,7 @@ bool GDBRemoteRegisterContext::ReadRegisterBytes(const RegisterInfo *reg_info) {
228228
SetAllRegisterValid(true);
229229
return true;
230230
} else if (buffer_sp->GetByteSize() > 0) {
231-
for (auto x : llvm::enumerate(
232-
m_reg_info_sp->registers<
233-
DynamicRegisterInfo::reg_collection_const_range>())) {
231+
for (auto x : llvm::enumerate(m_reg_info_sp->registers())) {
234232
const struct RegisterInfo &reginfo = x.value();
235233
m_reg_valid[x.index()] =
236234
(reginfo.byte_offset + reginfo.byte_size <=

0 commit comments

Comments
 (0)