1336823Sdim//===-- SystemInitializerLLGS.cpp -------------------------------*- C++ -*-===// 2336823Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6336823Sdim// 7336823Sdim//===----------------------------------------------------------------------===// 8336823Sdim 9336823Sdim#include "SystemInitializerLLGS.h" 10336823Sdim 11336823Sdim#if defined(__APPLE__) 12336823Sdim#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" 13336823Sdimusing HostObjectFile = ObjectFileMachO; 14336823Sdim#elif defined(_WIN32) 15336823Sdim#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" 16336823Sdimusing HostObjectFile = ObjectFilePECOFF; 17336823Sdim#else 18336823Sdim#include "Plugins/ObjectFile/ELF/ObjectFileELF.h" 19336823Sdimusing HostObjectFile = ObjectFileELF; 20336823Sdim#endif 21336823Sdim 22353358Sdim#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) 23353358Sdim#define LLDB_TARGET_ARM64 24353358Sdim#endif 25353358Sdim 26353358Sdim#if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) || \ 27353358Sdim defined(LLDB_TARGET_ARM64) 28353358Sdim#define LLDB_TARGET_ARM 29353358Sdim#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" 30353358Sdim#endif 31353358Sdim 32353358Sdim#if defined(__mips64__) || defined(mips64) || defined(__mips64) || \ 33353358Sdim defined(__MIPS64__) || defined(_M_MIPS64) 34353358Sdim#define LLDB_TARGET_MIPS64 35353358Sdim#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" 36353358Sdim#endif 37353358Sdim 38353358Sdim#if defined(__mips__) || defined(mips) || defined(__mips) || \ 39353358Sdim defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64) 40353358Sdim#define LLDB_TARGET_MIPS 41353358Sdim#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" 42353358Sdim#endif 43353358Sdim 44336823Sdimusing namespace lldb_private; 45336823Sdim 46353358Sdimllvm::Error SystemInitializerLLGS::Initialize() { 47353358Sdim if (auto e = SystemInitializerCommon::Initialize()) 48344779Sdim return e; 49344779Sdim 50336823Sdim HostObjectFile::Initialize(); 51344779Sdim 52353358Sdim#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 53353358Sdim EmulateInstructionARM::Initialize(); 54353358Sdim#endif 55353358Sdim#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 56353358Sdim EmulateInstructionMIPS::Initialize(); 57353358Sdim#endif 58353358Sdim#if defined(LLDB_TARGET_MIPS64) 59353358Sdim EmulateInstructionMIPS64::Initialize(); 60353358Sdim#endif 61353358Sdim 62344779Sdim return llvm::Error::success(); 63336823Sdim} 64336823Sdim 65336823Sdimvoid SystemInitializerLLGS::Terminate() { 66336823Sdim HostObjectFile::Terminate(); 67353358Sdim 68353358Sdim#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 69353358Sdim EmulateInstructionARM::Terminate(); 70353358Sdim#endif 71353358Sdim#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 72353358Sdim EmulateInstructionMIPS::Terminate(); 73353358Sdim#endif 74353358Sdim#if defined(LLDB_TARGET_MIPS64) 75353358Sdim EmulateInstructionMIPS64::Terminate(); 76353358Sdim#endif 77353358Sdim 78336823Sdim SystemInitializerCommon::Terminate(); 79336823Sdim} 80