This revision was not accepted when it landed; it landed in state "Needs
Review".
This revision was automatically updated to reflect the committed changes.
Closed by commit rG12e32d32d393: [lldb] Introduce "RegInfoBasedABI"
(authored by labath).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74243/new/
https://reviews.llvm.org/D74243
Files:
lldb/include/lldb/Target/ABI.h
lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
lldb/source/Plugins/ABI/ARC/ABISysV_arc.h
lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h
lldb/source/Plugins/ABI/ARM/ABISysV_arm.h
lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h
lldb/source/Plugins/ABI/Mips/ABISysV_mips.h
lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h
lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h
lldb/source/Plugins/ABI/X86/ABISysV_i386.h
lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h
lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
lldb/source/Target/ABI.cpp
Index: lldb/source/Target/ABI.cpp
===================================================================
--- lldb/source/Target/ABI.cpp
+++ lldb/source/Target/ABI.cpp
@@ -41,7 +41,7 @@
ABI::~ABI() = default;
-bool ABI::GetRegisterInfoByName(ConstString name, RegisterInfo &info) {
+bool RegInfoBasedABI::GetRegisterInfoByName(ConstString name, RegisterInfo &info) {
uint32_t count = 0;
const RegisterInfo *register_info_array = GetRegisterInfoArray(count);
if (register_info_array) {
@@ -212,7 +212,7 @@
return info_up;
}
-void ABI::AugmentRegisterInfo(RegisterInfo &info) {
+void RegInfoBasedABI::AugmentRegisterInfo(RegisterInfo &info) {
if (info.kinds[eRegisterKindEHFrame] != LLDB_INVALID_REGNUM &&
info.kinds[eRegisterKindDWARF] != LLDB_INVALID_REGNUM)
return;
Index: lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
===================================================================
--- lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
+++ lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABIWindows_x86_64 : public lldb_private::ABI {
+class ABIWindows_x86_64 : public lldb_private::RegInfoBasedABI {
public:
~ABIWindows_x86_64() override = default;
@@ -91,11 +91,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABIWindows_x86_64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_x86_64_h_
Index: lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h
===================================================================
--- lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h
+++ lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_x86_64 : public lldb_private::ABI {
+class ABISysV_x86_64 : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_x86_64() override = default;
@@ -98,11 +98,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_x86_64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_x86_64_h_
Index: lldb/source/Plugins/ABI/X86/ABISysV_i386.h
===================================================================
--- lldb/source/Plugins/ABI/X86/ABISysV_i386.h
+++ lldb/source/Plugins/ABI/X86/ABISysV_i386.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_i386 : public lldb_private::ABI {
+class ABISysV_i386 : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_i386() override = default;
@@ -100,11 +100,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_i386(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_i386_h_
Index: lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h
===================================================================
--- lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h
+++ lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h
@@ -13,7 +13,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABIMacOSX_i386 : public lldb_private::ABI {
+class ABIMacOSX_i386 : public lldb_private::RegInfoBasedABI {
public:
~ABIMacOSX_i386() override = default;
@@ -92,11 +92,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABIMacOSX_i386(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABIMacOSX_i386_h_
Index: lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
===================================================================
--- lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
+++ lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_s390x : public lldb_private::ABI {
+class ABISysV_s390x : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_s390x() override = default;
@@ -88,11 +88,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_s390x(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_s390x_h_
Index: lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h
===================================================================
--- lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h
+++ lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_ppc64 : public lldb_private::ABI {
+class ABISysV_ppc64 : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_ppc64() override = default;
@@ -96,11 +96,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_ppc64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
lldb::ByteOrder GetByteOrder() const;
};
Index: lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h
===================================================================
--- lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h
+++ lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_ppc : public lldb_private::ABI {
+class ABISysV_ppc : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_ppc() override = default;
@@ -96,11 +96,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_ppc(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_ppc_h_
Index: lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h
===================================================================
--- lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h
+++ lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_mips64 : public lldb_private::ABI {
+class ABISysV_mips64 : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_mips64() override = default;
@@ -100,11 +100,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_mips64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_mips64_h_
Index: lldb/source/Plugins/ABI/Mips/ABISysV_mips.h
===================================================================
--- lldb/source/Plugins/ABI/Mips/ABISysV_mips.h
+++ lldb/source/Plugins/ABI/Mips/ABISysV_mips.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_mips : public lldb_private::ABI {
+class ABISysV_mips : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_mips() override = default;
@@ -87,11 +87,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_mips(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_mips_h_
Index: lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h
===================================================================
--- lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h
+++ lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h
@@ -13,7 +13,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_hexagon : public lldb_private::ABI {
+class ABISysV_hexagon : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_hexagon() override = default;
@@ -97,11 +97,7 @@
bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info);
private:
- ABISysV_hexagon(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_hexagon_h_
Index: lldb/source/Plugins/ABI/ARM/ABISysV_arm.h
===================================================================
--- lldb/source/Plugins/ABI/ARM/ABISysV_arm.h
+++ lldb/source/Plugins/ABI/ARM/ABISysV_arm.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_arm : public lldb_private::ABI {
+class ABISysV_arm : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_arm() override = default;
@@ -85,11 +85,7 @@
lldb_private::CompilerType &ast_type) const override;
private:
- ABISysV_arm(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_arm_h_
Index: lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h
===================================================================
--- lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h
+++ lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABIMacOSX_arm : public lldb_private::ABI {
+class ABIMacOSX_arm : public lldb_private::RegInfoBasedABI {
public:
~ABIMacOSX_arm() override = default;
@@ -85,11 +85,7 @@
lldb_private::CompilerType &ast_type) const override;
private:
- ABIMacOSX_arm(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABIMacOSX_arm_h_
Index: lldb/source/Plugins/ABI/ARC/ABISysV_arc.h
===================================================================
--- lldb/source/Plugins/ABI/ARC/ABISysV_arc.h
+++ lldb/source/Plugins/ABI/ARC/ABISysV_arc.h
@@ -16,7 +16,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_arc : public lldb_private::ABI {
+class ABISysV_arc : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_arc() override = default;
@@ -97,7 +97,7 @@
bool IsRegisterFileReduced(lldb_private::RegisterContext ®_ctx) const;
- using lldb_private::ABI::ABI; // Call CreateInstance instead.
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
using RegisterFileFlag = llvm::Optional<bool>;
mutable RegisterFileFlag m_is_reg_file_reduced;
Index: lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
===================================================================
--- lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
+++ lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
@@ -12,7 +12,7 @@
#include "lldb/Target/ABI.h"
#include "lldb/lldb-private.h"
-class ABISysV_arm64 : public lldb_private::ABI {
+class ABISysV_arm64 : public lldb_private::RegInfoBasedABI {
public:
~ABISysV_arm64() override = default;
@@ -92,11 +92,7 @@
lldb_private::CompilerType &ast_type) const override;
private:
- ABISysV_arm64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABISysV_arm64_h_
Index: lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
===================================================================
--- lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
+++ lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
@@ -13,7 +13,7 @@
#include "lldb/Utility/ConstString.h"
#include "lldb/lldb-private.h"
-class ABIMacOSX_arm64 : public lldb_private::ABI {
+class ABIMacOSX_arm64 : public lldb_private::RegInfoBasedABI {
public:
~ABIMacOSX_arm64() override = default;
@@ -93,11 +93,7 @@
lldb_private::CompilerType &ast_type) const override;
private:
- ABIMacOSX_arm64(lldb::ProcessSP process_sp,
- std::unique_ptr<llvm::MCRegisterInfo> info_up)
- : lldb_private::ABI(std::move(process_sp), std::move(info_up)) {
- // Call CreateInstance instead.
- }
+ using lldb_private::RegInfoBasedABI::RegInfoBasedABI; // Call CreateInstance instead.
};
#endif // liblldb_ABIMacOSX_arm64_h_
Index: lldb/include/lldb/Target/ABI.h
===================================================================
--- lldb/include/lldb/Target/ABI.h
+++ lldb/include/lldb/Target/ABI.h
@@ -126,7 +126,7 @@
llvm::MCRegisterInfo &GetMCRegisterInfo() { return *m_mc_register_info_up; }
- virtual void AugmentRegisterInfo(RegisterInfo &info);
+ virtual void AugmentRegisterInfo(RegisterInfo &info) = 0;
virtual bool GetPointerReturnRegister(const char *&name) { return false; }
@@ -138,10 +138,6 @@
assert(m_mc_register_info_up && "ABI must have MCRegisterInfo");
}
- bool GetRegisterInfoByName(ConstString name, RegisterInfo &info);
-
- virtual const RegisterInfo *GetRegisterInfoArray(uint32_t &count) = 0;
-
/// Utility function to construct a MCRegisterInfo using the ArchSpec triple.
/// Plugins wishing to customize the construction can construct the
/// MCRegisterInfo themselves.
@@ -155,6 +151,18 @@
DISALLOW_COPY_AND_ASSIGN(ABI);
};
+class RegInfoBasedABI : public ABI {
+public:
+ void AugmentRegisterInfo(RegisterInfo &info) override;
+
+protected:
+ using ABI::ABI;
+
+ bool GetRegisterInfoByName(ConstString name, RegisterInfo &info);
+
+ virtual const RegisterInfo *GetRegisterInfoArray(uint32_t &count) = 0;
+};
+
} // namespace lldb_private
#endif // liblldb_ABI_h_
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits