diff options
Diffstat (limited to 'lldb/tools/lldb-server/SystemInitializerLLGS.cpp')
| -rw-r--r-- | lldb/tools/lldb-server/SystemInitializerLLGS.cpp | 79 | 
1 files changed, 79 insertions, 0 deletions
diff --git a/lldb/tools/lldb-server/SystemInitializerLLGS.cpp b/lldb/tools/lldb-server/SystemInitializerLLGS.cpp new file mode 100644 index 0000000000000..b93e6b40dcd94 --- /dev/null +++ b/lldb/tools/lldb-server/SystemInitializerLLGS.cpp @@ -0,0 +1,79 @@ +//===-- SystemInitializerLLGS.cpp -------------------------------*- 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 +// +//===----------------------------------------------------------------------===// + +#include "SystemInitializerLLGS.h" + +#if defined(__APPLE__) +#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" +using HostObjectFile = ObjectFileMachO; +#elif defined(_WIN32) +#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" +using HostObjectFile = ObjectFilePECOFF; +#else +#include "Plugins/ObjectFile/ELF/ObjectFileELF.h" +using HostObjectFile = ObjectFileELF; +#endif + +#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) +#define LLDB_TARGET_ARM64 +#endif + +#if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) ||  \ +    defined(LLDB_TARGET_ARM64) +#define LLDB_TARGET_ARM +#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" +#endif + +#if defined(__mips64__) || defined(mips64) || defined(__mips64) ||             \ +    defined(__MIPS64__) || defined(_M_MIPS64) +#define LLDB_TARGET_MIPS64 +#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" +#endif + +#if defined(__mips__) || defined(mips) || defined(__mips) ||                   \ +    defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64) +#define LLDB_TARGET_MIPS +#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" +#endif + +using namespace lldb_private; + +llvm::Error SystemInitializerLLGS::Initialize() { +  if (auto e = SystemInitializerCommon::Initialize()) +    return e; + +  HostObjectFile::Initialize(); + +#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) +  EmulateInstructionARM::Initialize(); +#endif +#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) +  EmulateInstructionMIPS::Initialize(); +#endif +#if defined(LLDB_TARGET_MIPS64) +  EmulateInstructionMIPS64::Initialize(); +#endif + +  return llvm::Error::success(); +} + +void SystemInitializerLLGS::Terminate() { +  HostObjectFile::Terminate(); + +#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) +  EmulateInstructionARM::Terminate(); +#endif +#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) +  EmulateInstructionMIPS::Terminate(); +#endif +#if defined(LLDB_TARGET_MIPS64) +  EmulateInstructionMIPS64::Terminate(); +#endif + +  SystemInitializerCommon::Terminate(); +}  | 
