diff options
author | 2020-08-03 14:33:06 +0000 | |
---|---|---|
committer | 2020-08-03 14:33:06 +0000 | |
commit | 061da546b983eb767bad15e67af1174fb0bcf31c (patch) | |
tree | 83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/tools/lldb-server/SystemInitializerLLGS.cpp | |
parent | Import LLVM 10.0.0 release including clang, lld and lldb. (diff) | |
download | wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip |
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom
tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/tools/lldb-server/SystemInitializerLLGS.cpp')
-rw-r--r-- | gnu/llvm/lldb/tools/lldb-server/SystemInitializerLLGS.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/tools/lldb-server/SystemInitializerLLGS.cpp b/gnu/llvm/lldb/tools/lldb-server/SystemInitializerLLGS.cpp new file mode 100644 index 00000000000..b93e6b40dcd --- /dev/null +++ b/gnu/llvm/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(); +} |