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 @@ -9,11 +9,11 @@ #ifndef LLDB_SOURCE_PLUGINS_ABI_X86_ABIMACOSX_I386_H #define LLDB_SOURCE_PLUGINS_ABI_X86_ABIMACOSX_I386_H -#include "Plugins/ABI/X86/ABIX86.h" +#include "Plugins/ABI/X86/ABIX86_i386.h" #include "lldb/Core/Value.h" #include "lldb/lldb-private.h" -class ABIMacOSX_i386 : public ABIX86 { +class ABIMacOSX_i386 : public ABIX86_i386 { public: ~ABIMacOSX_i386() override = default; @@ -92,7 +92,7 @@ } private: - using ABIX86::ABIX86; // Call CreateInstance instead. + using ABIX86_i386::ABIX86_i386; // Call CreateInstance instead. }; #endif // LLDB_SOURCE_PLUGINS_ABI_X86_ABIMACOSX_I386_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 @@ -9,10 +9,10 @@ #ifndef LLDB_SOURCE_PLUGINS_ABI_X86_ABISYSV_I386_H #define LLDB_SOURCE_PLUGINS_ABI_X86_ABISYSV_I386_H -#include "Plugins/ABI/X86/ABIX86.h" +#include "Plugins/ABI/X86/ABIX86_i386.h" #include "lldb/lldb-private.h" -class ABISysV_i386 : public ABIX86 { +class ABISysV_i386 : public ABIX86_i386 { public: ~ABISysV_i386() override = default; @@ -95,7 +95,7 @@ bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info); private: - using ABIX86::ABIX86; // Call CreateInstance instead. + using ABIX86_i386::ABIX86_i386; // Call CreateInstance instead. }; #endif // LLDB_SOURCE_PLUGINS_ABI_X86_ABISYSV_I386_H Index: lldb/source/Plugins/ABI/X86/ABIX86.h =================================================================== --- lldb/source/Plugins/ABI/X86/ABIX86.h +++ lldb/source/Plugins/ABI/X86/ABIX86.h @@ -1,4 +1,4 @@ -//===-- X86.h ---------------------------------------------------*- C++ -*-===// +//===-- ABIX86.h ------------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -9,16 +9,10 @@ #ifndef LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_H #define LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_H -#include "lldb/Target/ABI.h" - -class ABIX86 : public lldb_private::MCBasedABI { +class ABIX86 { public: static void Initialize(); static void Terminate(); - - uint32_t GetGenericNum(llvm::StringRef name) override; - -private: - using lldb_private::MCBasedABI::MCBasedABI; }; + #endif Index: lldb/source/Plugins/ABI/X86/ABIX86.cpp =================================================================== --- lldb/source/Plugins/ABI/X86/ABIX86.cpp +++ lldb/source/Plugins/ABI/X86/ABIX86.cpp @@ -1,4 +1,4 @@ -//===-- X86.h -------------------------------------------------------------===// +//===-- ABIX86.cpp --------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -28,16 +28,3 @@ ABISysV_x86_64::Terminate(); ABIWindows_x86_64::Terminate(); } - -uint32_t ABIX86::GetGenericNum(llvm::StringRef name) { - return llvm::StringSwitch(name) - .Case("eip", LLDB_REGNUM_GENERIC_PC) - .Case("esp", LLDB_REGNUM_GENERIC_SP) - .Case("ebp", LLDB_REGNUM_GENERIC_FP) - .Case("eflags", LLDB_REGNUM_GENERIC_FLAGS) - .Case("edi", LLDB_REGNUM_GENERIC_ARG1) - .Case("esi", LLDB_REGNUM_GENERIC_ARG2) - .Case("edx", LLDB_REGNUM_GENERIC_ARG3) - .Case("ecx", LLDB_REGNUM_GENERIC_ARG4) - .Default(LLDB_INVALID_REGNUM); -} Index: lldb/source/Plugins/ABI/X86/ABIX86_64.h =================================================================== --- lldb/source/Plugins/ABI/X86/ABIX86_64.h +++ lldb/source/Plugins/ABI/X86/ABIX86_64.h @@ -13,6 +13,9 @@ #include "lldb/lldb-private.h" class ABIX86_64 : public lldb_private::MCBasedABI { +public: + uint32_t GetGenericNum(llvm::StringRef name) override; + protected: std::string GetMCName(std::string name) override { MapRegisterName(name, "stmm", "st"); Index: lldb/source/Plugins/ABI/X86/ABIX86_i386.h =================================================================== --- /dev/null +++ lldb/source/Plugins/ABI/X86/ABIX86_i386.h @@ -0,0 +1,22 @@ +//===-- ABIX86_i386.h -------------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_I386_H +#define LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_I386_H + +#include "lldb/Target/ABI.h" + +class ABIX86_i386 : public lldb_private::MCBasedABI { +public: + uint32_t GetGenericNum(llvm::StringRef name) override; + +private: + using lldb_private::MCBasedABI::MCBasedABI; +}; + +#endif Index: lldb/source/Plugins/ABI/X86/ABIX86_i386.cpp =================================================================== --- /dev/null +++ lldb/source/Plugins/ABI/X86/ABIX86_i386.cpp @@ -0,0 +1,22 @@ +//===-- ABIX86_i386.cpp ---------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "ABIX86_i386.h" + +uint32_t ABIX86_i386::GetGenericNum(llvm::StringRef name) { + return llvm::StringSwitch(name) + .Case("eip", LLDB_REGNUM_GENERIC_PC) + .Case("esp", LLDB_REGNUM_GENERIC_SP) + .Case("ebp", LLDB_REGNUM_GENERIC_FP) + .Case("eflags", LLDB_REGNUM_GENERIC_FLAGS) + .Case("edi", LLDB_REGNUM_GENERIC_ARG1) + .Case("esi", LLDB_REGNUM_GENERIC_ARG2) + .Case("edx", LLDB_REGNUM_GENERIC_ARG3) + .Case("ecx", LLDB_REGNUM_GENERIC_ARG4) + .Default(LLDB_INVALID_REGNUM); +} Index: lldb/source/Plugins/ABI/X86/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ABI/X86/CMakeLists.txt +++ lldb/source/Plugins/ABI/X86/CMakeLists.txt @@ -1,5 +1,6 @@ add_lldb_library(lldbPluginABIX86 PLUGIN ABIX86.cpp + ABIX86_i386.cpp ABIMacOSX_i386.cpp ABISysV_i386.cpp ABISysV_x86_64.cpp