diff --git a/lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h b/lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h index 4c54645a6f953..a59e1b05a256b 100644 --- a/lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h +++ b/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_i386.h" +#include "Plugins/ABI/X86/ABIX86.h" #include "lldb/Core/Value.h" #include "lldb/lldb-private.h" -class ABIMacOSX_i386 : public ABIX86_i386 { +class ABIMacOSX_i386 : public ABIX86 { public: ~ABIMacOSX_i386() override = default; @@ -92,7 +92,7 @@ class ABIMacOSX_i386 : public ABIX86_i386 { } private: - using ABIX86_i386::ABIX86_i386; // Call CreateInstance instead. + using ABIX86::ABIX86; // Call CreateInstance instead. }; #endif // LLDB_SOURCE_PLUGINS_ABI_X86_ABIMACOSX_I386_H diff --git a/lldb/source/Plugins/ABI/X86/ABISysV_i386.h b/lldb/source/Plugins/ABI/X86/ABISysV_i386.h index c3a584366b2a4..651e467ad576e 100644 --- a/lldb/source/Plugins/ABI/X86/ABISysV_i386.h +++ b/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_i386.h" +#include "Plugins/ABI/X86/ABIX86.h" #include "lldb/lldb-private.h" -class ABISysV_i386 : public ABIX86_i386 { +class ABISysV_i386 : public ABIX86 { public: ~ABISysV_i386() override = default; @@ -95,7 +95,7 @@ class ABISysV_i386 : public ABIX86_i386 { bool RegisterIsCalleeSaved(const lldb_private::RegisterInfo *reg_info); private: - using ABIX86_i386::ABIX86_i386; // Call CreateInstance instead. + using ABIX86::ABIX86; // Call CreateInstance instead. }; #endif // LLDB_SOURCE_PLUGINS_ABI_X86_ABISYSV_I386_H diff --git a/lldb/source/Plugins/ABI/X86/ABIX86.cpp b/lldb/source/Plugins/ABI/X86/ABIX86.cpp index c02680009e3ea..bf5ab669417e4 100644 --- a/lldb/source/Plugins/ABI/X86/ABIX86.cpp +++ b/lldb/source/Plugins/ABI/X86/ABIX86.cpp @@ -1,4 +1,4 @@ -//===-- ABIX86.cpp --------------------------------------------------------===// +//===-- X86.h -------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -28,3 +28,16 @@ void ABIX86::Terminate() { 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); +} diff --git a/lldb/source/Plugins/ABI/X86/ABIX86.h b/lldb/source/Plugins/ABI/X86/ABIX86.h index 2c25aac0bdc8a..22521cacf1800 100644 --- a/lldb/source/Plugins/ABI/X86/ABIX86.h +++ b/lldb/source/Plugins/ABI/X86/ABIX86.h @@ -1,4 +1,4 @@ -//===-- ABIX86.h ------------------------------------------------*- C++ -*-===// +//===-- X86.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. @@ -10,15 +10,15 @@ #define LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_H #include "lldb/Target/ABI.h" -#include "lldb/lldb-private.h" class ABIX86 : public lldb_private::MCBasedABI { public: static void Initialize(); static void Terminate(); + uint32_t GetGenericNum(llvm::StringRef name) override; + private: using lldb_private::MCBasedABI::MCBasedABI; }; - #endif diff --git a/lldb/source/Plugins/ABI/X86/ABIX86_64.h b/lldb/source/Plugins/ABI/X86/ABIX86_64.h index 9b9f217584e94..e65c2d97d897a 100644 --- a/lldb/source/Plugins/ABI/X86/ABIX86_64.h +++ b/lldb/source/Plugins/ABI/X86/ABIX86_64.h @@ -9,12 +9,10 @@ #ifndef LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_64_H #define LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_64_H -#include "Plugins/ABI/X86/ABIX86.h" - -class ABIX86_64 : public ABIX86 { -public: - uint32_t GetGenericNum(llvm::StringRef name) override; +#include "lldb/Target/ABI.h" +#include "lldb/lldb-private.h" +class ABIX86_64 : public lldb_private::MCBasedABI { protected: std::string GetMCName(std::string name) override { MapRegisterName(name, "stmm", "st"); @@ -22,7 +20,7 @@ class ABIX86_64 : public ABIX86 { } private: - using ABIX86::ABIX86; + using lldb_private::MCBasedABI::MCBasedABI; }; #endif // LLDB_SOURCE_PLUGINS_ABI_X86_ABIX86_64_H diff --git a/lldb/source/Plugins/ABI/X86/ABIX86_i386.cpp b/lldb/source/Plugins/ABI/X86/ABIX86_i386.cpp deleted file mode 100644 index e376f0eb2bc78..0000000000000 --- a/lldb/source/Plugins/ABI/X86/ABIX86_i386.cpp +++ /dev/null @@ -1,22 +0,0 @@ -//===-- 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); -} diff --git a/lldb/source/Plugins/ABI/X86/ABIX86_i386.h b/lldb/source/Plugins/ABI/X86/ABIX86_i386.h deleted file mode 100644 index cb3baa5150fc3..0000000000000 --- a/lldb/source/Plugins/ABI/X86/ABIX86_i386.h +++ /dev/null @@ -1,22 +0,0 @@ -//===-- 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 "Plugins/ABI/X86/ABIX86.h" - -class ABIX86_i386 : public ABIX86 { -public: - uint32_t GetGenericNum(llvm::StringRef name) override; - -private: - using ABIX86::ABIX86; -}; - -#endif diff --git a/lldb/source/Plugins/ABI/X86/CMakeLists.txt b/lldb/source/Plugins/ABI/X86/CMakeLists.txt index dd55212517a7f..ec8ed622549ba 100644 --- a/lldb/source/Plugins/ABI/X86/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/X86/CMakeLists.txt @@ -1,6 +1,5 @@ add_lldb_library(lldbPluginABIX86 PLUGIN ABIX86.cpp - ABIX86_i386.cpp ABIMacOSX_i386.cpp ABISysV_i386.cpp ABISysV_x86_64.cpp