diff --git a/lldb/source/API/SystemInitializerFull.cpp b/lldb/source/API/SystemInitializerFull.cpp --- a/lldb/source/API/SystemInitializerFull.cpp +++ b/lldb/source/API/SystemInitializerFull.cpp @@ -24,29 +24,22 @@ #include -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm64) -LLDB_PLUGIN_DECLARE(ABISysV_arm64) -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arc) -LLDB_PLUGIN_DECLARE(ABISysV_hexagon) -LLDB_PLUGIN_DECLARE(ABISysV_mips) -LLDB_PLUGIN_DECLARE(ABISysV_mips64) -LLDB_PLUGIN_DECLARE(ABISysV_ppc) -LLDB_PLUGIN_DECLARE(ABISysV_ppc64) -LLDB_PLUGIN_DECLARE(ABISysV_s390x) -LLDB_PLUGIN_DECLARE(ABIMacOSX_i386) -LLDB_PLUGIN_DECLARE(ABISysV_i386) -LLDB_PLUGIN_DECLARE(ABISysV_x86_64) -LLDB_PLUGIN_DECLARE(ABIWindows_x86_64) -LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) -LLDB_PLUGIN_DECLARE(ObjectFileELF) -LLDB_PLUGIN_DECLARE(ObjectFileMachO) -LLDB_PLUGIN_DECLARE(ObjectFilePECOFF) -LLDB_PLUGIN_DECLARE(ObjectFileWasm) -LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive) -LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO) -LLDB_PLUGIN_DECLARE(ScriptInterpreterNone) +LLDB_PLUGIN_DECLARE(ABIAArch64); +LLDB_PLUGIN_DECLARE(ABIARM); +LLDB_PLUGIN_DECLARE(ABISysV_arc); +LLDB_PLUGIN_DECLARE(ABISysV_hexagon); +LLDB_PLUGIN_DECLARE(ABIMips); +LLDB_PLUGIN_DECLARE(ABIPowerPC); +LLDB_PLUGIN_DECLARE(ABISysV_s390x); +LLDB_PLUGIN_DECLARE(ABIX86); +LLDB_PLUGIN_DECLARE(ObjectFileBreakpad); +LLDB_PLUGIN_DECLARE(ObjectFileELF); +LLDB_PLUGIN_DECLARE(ObjectFileMachO); +LLDB_PLUGIN_DECLARE(ObjectFilePECOFF); +LLDB_PLUGIN_DECLARE(ObjectFileWasm); +LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive); +LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO); +LLDB_PLUGIN_DECLARE(ScriptInterpreterNone); #if LLDB_ENABLE_PYTHON LLDB_PLUGIN_DECLARE(OperatingSystemPython) LLDB_PLUGIN_DECLARE(ScriptInterpreterPython) @@ -120,26 +113,14 @@ SystemInitializerFull::~SystemInitializerFull() {} -#define LLDB_PROCESS_AArch64(op) \ - op(ABIMacOSX_arm64); \ - op(ABISysV_arm64); -#define LLDB_PROCESS_ARM(op) \ - op(ABIMacOSX_arm); \ - op(ABISysV_arm); +#define LLDB_PROCESS_AArch64(op) op(ABIAArch64); +#define LLDB_PROCESS_ARM(op) op(ABIARM); #define LLDB_PROCESS_ARC(op) op(ABISysV_arc); #define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon); -#define LLDB_PROCESS_Mips(op) \ - op(ABISysV_mips); \ - op(ABISysV_mips64); -#define LLDB_PROCESS_PowerPC(op) \ - op(ABISysV_ppc); \ - op(ABISysV_ppc64); +#define LLDB_PROCESS_Mips(op) op(ABIMips); +#define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); #define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x); -#define LLDB_PROCESS_X86(op) \ - op(ABIMacOSX_i386); \ - op(ABISysV_i386); \ - op(ABISysV_x86_64); \ - op(ABIWindows_x86_64); +#define LLDB_PROCESS_X86(op) op(ABIX86); #define LLDB_PROCESS_AMDGPU(op) #define LLDB_PROCESS_AVR(op) diff --git a/lldb/source/Plugins/ABI/AArch64/ABIAArch64.h b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.h new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.h @@ -0,0 +1,17 @@ +//===-- AArch64.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 liblldb_ABIAArch64_h_ +#define liblldb_ABIAArch64_h_ + +class ABIAArch64 { +public: + static void Initialize(); + static void Terminate(); +}; +#endif diff --git a/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/AArch64/ABIAArch64.cpp @@ -0,0 +1,24 @@ +//===-- AArch64.h ---------------------------------------------------------===// +// +// 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 "ABIAArch64.h" +#include "ABIMacOSX_arm64.h" +#include "ABISysV_arm64.h" +#include "lldb/Core/PluginManager.h" + +LLDB_PLUGIN(ABIAArch64) + +void ABIAArch64::Initialize() { + ABISysV_arm64::Initialize(); + ABIMacOSX_arm64::Initialize(); +} + +void ABIAArch64::Terminate() { + ABISysV_arm64::Terminate(); + ABIMacOSX_arm64::Terminate(); +} diff --git a/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp b/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp --- a/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp +++ b/lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp @@ -33,8 +33,6 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(ABIMacOSX_arm64) - static const char *pluginDesc = "Mac OS X ABI for arm64 targets"; static RegisterInfo g_register_infos[] = { diff --git a/lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp b/lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp --- a/lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp +++ b/lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp @@ -33,8 +33,6 @@ using namespace lldb; using namespace lldb_private; -LLDB_PLUGIN(ABISysV_arm64) - static RegisterInfo g_register_infos[] = { // NAME ALT SZ OFF ENCODING FORMAT // EH_FRAME DWARF GENERIC diff --git a/lldb/source/Plugins/ABI/AArch64/CMakeLists.txt b/lldb/source/Plugins/ABI/AArch64/CMakeLists.txt --- a/lldb/source/Plugins/ABI/AArch64/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/AArch64/CMakeLists.txt @@ -1,4 +1,5 @@ add_lldb_library(lldbPluginABIAArch64 PLUGIN + ABIAArch64.cpp ABIMacOSX_arm64.cpp ABISysV_arm64.cpp diff --git a/lldb/source/Plugins/ABI/ARM/ABIARM.h b/lldb/source/Plugins/ABI/ARM/ABIARM.h new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/ARM/ABIARM.h @@ -0,0 +1,17 @@ +//===-- ARM.h -------------------------------------------------------------===// +// +// 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 liblldb_ABIARM_h_ +#define liblldb_ABIARM_h_ + +class ABIARM { +public: + static void Initialize(); + static void Terminate(); +}; +#endif diff --git a/lldb/source/Plugins/ABI/ARM/ABIARM.cpp b/lldb/source/Plugins/ABI/ARM/ABIARM.cpp new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/ARM/ABIARM.cpp @@ -0,0 +1,24 @@ +//===-- ARM.h -------------------------------------------------------------===// +// +// 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 "ABIARM.h" +#include "ABIMacOSX_arm.h" +#include "ABISysV_arm.h" +#include "lldb/Core/PluginManager.h" + +LLDB_PLUGIN(ABIARM) + +void ABIARM::Initialize() { + ABISysV_arm::Initialize(); + ABIMacOSX_arm::Initialize(); +} + +void ABIARM::Terminate() { + ABISysV_arm::Terminate(); + ABIMacOSX_arm::Terminate(); +} diff --git a/lldb/source/Plugins/ABI/ARM/CMakeLists.txt b/lldb/source/Plugins/ABI/ARM/CMakeLists.txt --- a/lldb/source/Plugins/ABI/ARM/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/ARM/CMakeLists.txt @@ -1,4 +1,5 @@ add_lldb_library(lldbPluginABIARM PLUGIN + ABIARM.cpp ABIMacOSX_arm.cpp ABISysV_arm.cpp diff --git a/lldb/source/Plugins/ABI/Mips/ABIMips.h b/lldb/source/Plugins/ABI/Mips/ABIMips.h new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/Mips/ABIMips.h @@ -0,0 +1,17 @@ +//===-- Mips.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 liblldb_ABIMips_h_ +#define liblldb_ABIMips_h_ + +class ABIMips { +public: + static void Initialize(); + static void Terminate(); +}; +#endif diff --git a/lldb/source/Plugins/ABI/Mips/ABIMips.cpp b/lldb/source/Plugins/ABI/Mips/ABIMips.cpp new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/Mips/ABIMips.cpp @@ -0,0 +1,24 @@ +//===-- Mips.h ------------------------------------------------------------===// +// +// 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 "ABIMips.h" +#include "ABISysV_mips.h" +#include "ABISysV_mips64.h" +#include "lldb/Core/PluginManager.h" + +LLDB_PLUGIN(ABIMips) + +void ABIMips::Initialize() { + ABISysV_mips::Initialize(); + ABISysV_mips64::Initialize(); +} + +void ABIMips::Terminate() { + ABISysV_mips::Terminate(); + ABISysV_mips64::Terminate(); +} diff --git a/lldb/source/Plugins/ABI/Mips/CMakeLists.txt b/lldb/source/Plugins/ABI/Mips/CMakeLists.txt --- a/lldb/source/Plugins/ABI/Mips/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/Mips/CMakeLists.txt @@ -1,4 +1,5 @@ add_lldb_library(lldbPluginABIMips PLUGIN + ABIMips.cpp ABISysV_mips.cpp ABISysV_mips64.cpp diff --git a/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.h b/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.h new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.h @@ -0,0 +1,17 @@ +//===-- PowerPC.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 liblldb_ABIPowerPC_h_ +#define liblldb_ABIPowerPC_h_ + +class ABIPowerPC { +public: + static void Initialize(); + static void Terminate(); +}; +#endif diff --git a/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.cpp b/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.cpp new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/PowerPC/ABIPowerPC.cpp @@ -0,0 +1,24 @@ +//===-- PowerPC.h ---------------------------------------------------------===// +// +// 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 "ABIPowerPC.h" +#include "ABISysV_ppc.h" +#include "ABISysV_ppc64.h" +#include "lldb/Core/PluginManager.h" + +LLDB_PLUGIN(ABIPowerPC) + +void ABIPowerPC::Initialize() { + ABISysV_ppc::Initialize(); + ABISysV_ppc64::Initialize(); +} + +void ABIPowerPC::Terminate() { + ABISysV_ppc::Terminate(); + ABISysV_ppc64::Terminate(); +} diff --git a/lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt b/lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt --- a/lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt @@ -1,4 +1,5 @@ add_lldb_library(lldbPluginABIPowerPC PLUGIN + ABIPowerPC.cpp ABISysV_ppc.cpp ABISysV_ppc64.cpp diff --git a/lldb/source/Plugins/ABI/X86/ABIX86.h b/lldb/source/Plugins/ABI/X86/ABIX86.h new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/X86/ABIX86.h @@ -0,0 +1,17 @@ +//===-- 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. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_ABIX86_h_ +#define liblldb_ABIX86_h_ + +class ABIX86 { +public: + static void Initialize(); + static void Terminate(); +}; +#endif diff --git a/lldb/source/Plugins/ABI/X86/ABIX86.cpp b/lldb/source/Plugins/ABI/X86/ABIX86.cpp new file mode 100644 --- /dev/null +++ b/lldb/source/Plugins/ABI/X86/ABIX86.cpp @@ -0,0 +1,30 @@ +//===-- 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. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "ABIX86.h" +#include "ABIMacOSX_i386.h" +#include "ABISysV_i386.h" +#include "ABISysV_x86_64.h" +#include "ABIWindows_x86_64.h" +#include "lldb/Core/PluginManager.h" + +LLDB_PLUGIN(ABIX86) + +void ABIX86::Initialize() { + ABIMacOSX_i386::Initialize(); + ABISysV_i386::Initialize(); + ABISysV_x86_64::Initialize(); + ABIWindows_x86_64::Initialize(); +} + +void ABIX86::Terminate() { + ABIMacOSX_i386::Terminate(); + ABISysV_i386::Terminate(); + ABISysV_x86_64::Terminate(); + ABIWindows_x86_64::Terminate(); +} diff --git a/lldb/source/Plugins/ABI/X86/CMakeLists.txt b/lldb/source/Plugins/ABI/X86/CMakeLists.txt --- a/lldb/source/Plugins/ABI/X86/CMakeLists.txt +++ b/lldb/source/Plugins/ABI/X86/CMakeLists.txt @@ -1,4 +1,5 @@ add_lldb_library(lldbPluginABIX86 PLUGIN + ABIX86.cpp ABIMacOSX_i386.cpp ABISysV_i386.cpp ABISysV_x86_64.cpp diff --git a/lldb/tools/lldb-test/SystemInitializerTest.cpp b/lldb/tools/lldb-test/SystemInitializerTest.cpp --- a/lldb/tools/lldb-test/SystemInitializerTest.cpp +++ b/lldb/tools/lldb-test/SystemInitializerTest.cpp @@ -17,21 +17,14 @@ #include -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm64) -LLDB_PLUGIN_DECLARE(ABISysV_arm64) -LLDB_PLUGIN_DECLARE(ABIMacOSX_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arm) -LLDB_PLUGIN_DECLARE(ABISysV_arc) -LLDB_PLUGIN_DECLARE(ABISysV_hexagon) -LLDB_PLUGIN_DECLARE(ABISysV_mips) -LLDB_PLUGIN_DECLARE(ABISysV_mips64) -LLDB_PLUGIN_DECLARE(ABISysV_ppc) -LLDB_PLUGIN_DECLARE(ABISysV_ppc64) -LLDB_PLUGIN_DECLARE(ABISysV_s390x) -LLDB_PLUGIN_DECLARE(ABIMacOSX_i386) -LLDB_PLUGIN_DECLARE(ABISysV_i386) -LLDB_PLUGIN_DECLARE(ABISysV_x86_64) -LLDB_PLUGIN_DECLARE(ABIWindows_x86_64) +LLDB_PLUGIN_DECLARE(ABIAArch64); +LLDB_PLUGIN_DECLARE(ABIARM); +LLDB_PLUGIN_DECLARE(ABISysV_arc); +LLDB_PLUGIN_DECLARE(ABISysV_hexagon); +LLDB_PLUGIN_DECLARE(ABIMips); +LLDB_PLUGIN_DECLARE(ABIPowerPC); +LLDB_PLUGIN_DECLARE(ABISysV_s390x); +LLDB_PLUGIN_DECLARE(ABIX86); LLDB_PLUGIN_DECLARE(ObjectFileBreakpad) LLDB_PLUGIN_DECLARE(ObjectFileELF) LLDB_PLUGIN_DECLARE(ObjectFileMachO) @@ -106,25 +99,13 @@ SystemInitializerTest::~SystemInitializerTest() {} -#define LLDB_PROCESS_AArch64(op) \ - op(ABIMacOSX_arm64); \ - op(ABISysV_arm64); -#define LLDB_PROCESS_ARM(op) \ - op(ABIMacOSX_arm); \ - op(ABISysV_arm); +#define LLDB_PROCESS_AArch64(op) op(ABIAArch64); +#define LLDB_PROCESS_ARM(op) op(ABIARM); #define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon); -#define LLDB_PROCESS_Mips(op) \ - op(ABISysV_mips); \ - op(ABISysV_mips64); -#define LLDB_PROCESS_PowerPC(op) \ - op(ABISysV_ppc); \ - op(ABISysV_ppc64); +#define LLDB_PROCESS_Mips(op) op(ABIMips); +#define LLDB_PROCESS_PowerPC(op) op(ABIPowerPC); #define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x); -#define LLDB_PROCESS_X86(op) \ - op(ABIMacOSX_i386); \ - op(ABISysV_i386); \ - op(ABISysV_x86_64); \ - op(ABIWindows_x86_64); +#define LLDB_PROCESS_X86(op) op(ABIX86); #define LLDB_PROCESS_AMDGPU(op) #define LLDB_PROCESS_ARC(op)