1fa3fa5b9SPavel Labath //===-- SystemInitializerLLGS.cpp -------------------------------*- C++ -*-===// 2fa3fa5b9SPavel Labath // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6fa3fa5b9SPavel Labath // 7fa3fa5b9SPavel Labath //===----------------------------------------------------------------------===// 8fa3fa5b9SPavel Labath 9fa3fa5b9SPavel Labath #include "SystemInitializerLLGS.h" 10fa3fa5b9SPavel Labath 11fa3fa5b9SPavel Labath #if defined(__APPLE__) 12fa3fa5b9SPavel Labath #include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" 135dd5833bSPavel Labath using HostObjectFile = ObjectFileMachO; 14fa3fa5b9SPavel Labath #elif defined(_WIN32) 15fa3fa5b9SPavel Labath #include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" 165dd5833bSPavel Labath using HostObjectFile = ObjectFilePECOFF; 17fa3fa5b9SPavel Labath #else 18fa3fa5b9SPavel Labath #include "Plugins/ObjectFile/ELF/ObjectFileELF.h" 19fa3fa5b9SPavel Labath using HostObjectFile = ObjectFileELF; 20fa3fa5b9SPavel Labath #endif 21fa3fa5b9SPavel Labath 22*a5401e48SSaleem Abdulrasool #if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) 23*a5401e48SSaleem Abdulrasool #define LLDB_TARGET_ARM64 24e24d8c55SSaleem Abdulrasool #endif 25e24d8c55SSaleem Abdulrasool 26*a5401e48SSaleem Abdulrasool #if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) || \ 27*a5401e48SSaleem Abdulrasool defined(LLDB_TARGET_ARM64) 28*a5401e48SSaleem Abdulrasool #define LLDB_TARGET_ARM 29*a5401e48SSaleem Abdulrasool #include "Plugins/Instruction/ARM/EmulateInstructionARM.h" 30e24d8c55SSaleem Abdulrasool #endif 31e24d8c55SSaleem Abdulrasool 32e24d8c55SSaleem Abdulrasool #if defined(__mips64__) || defined(mips64) || defined(__mips64) || \ 33e24d8c55SSaleem Abdulrasool defined(__MIPS64__) || defined(_M_MIPS64) 34e24d8c55SSaleem Abdulrasool #define LLDB_TARGET_MIPS64 35e24d8c55SSaleem Abdulrasool #include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" 36e24d8c55SSaleem Abdulrasool #endif 37e24d8c55SSaleem Abdulrasool 38*a5401e48SSaleem Abdulrasool #if defined(__mips__) || defined(mips) || defined(__mips) || \ 39*a5401e48SSaleem Abdulrasool defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64) 40*a5401e48SSaleem Abdulrasool #define LLDB_TARGET_MIPS 41*a5401e48SSaleem Abdulrasool #include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" 42*a5401e48SSaleem Abdulrasool #endif 43*a5401e48SSaleem Abdulrasool 44fa3fa5b9SPavel Labath using namespace lldb_private; 45fa3fa5b9SPavel Labath Initialize()46936c6242SJonas Devliegherellvm::Error SystemInitializerLLGS::Initialize() { 47936c6242SJonas Devlieghere if (auto e = SystemInitializerCommon::Initialize()) 4815eacd74SJonas Devlieghere return e; 4915eacd74SJonas Devlieghere 50fa3fa5b9SPavel Labath HostObjectFile::Initialize(); 5115eacd74SJonas Devlieghere 52*a5401e48SSaleem Abdulrasool #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 53e24d8c55SSaleem Abdulrasool EmulateInstructionARM::Initialize(); 54e24d8c55SSaleem Abdulrasool #endif 55*a5401e48SSaleem Abdulrasool #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 56e24d8c55SSaleem Abdulrasool EmulateInstructionMIPS::Initialize(); 57e24d8c55SSaleem Abdulrasool #endif 58e24d8c55SSaleem Abdulrasool #if defined(LLDB_TARGET_MIPS64) 59e24d8c55SSaleem Abdulrasool EmulateInstructionMIPS64::Initialize(); 60e24d8c55SSaleem Abdulrasool #endif 61e24d8c55SSaleem Abdulrasool 6215eacd74SJonas Devlieghere return llvm::Error::success(); 63fa3fa5b9SPavel Labath } 64fa3fa5b9SPavel Labath Terminate()65fa3fa5b9SPavel Labathvoid SystemInitializerLLGS::Terminate() { 66fa3fa5b9SPavel Labath HostObjectFile::Terminate(); 67e24d8c55SSaleem Abdulrasool 68*a5401e48SSaleem Abdulrasool #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 69e24d8c55SSaleem Abdulrasool EmulateInstructionARM::Terminate(); 70e24d8c55SSaleem Abdulrasool #endif 71*a5401e48SSaleem Abdulrasool #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 72e24d8c55SSaleem Abdulrasool EmulateInstructionMIPS::Terminate(); 73e24d8c55SSaleem Abdulrasool #endif 74e24d8c55SSaleem Abdulrasool #if defined(LLDB_TARGET_MIPS64) 75e24d8c55SSaleem Abdulrasool EmulateInstructionMIPS64::Terminate(); 76e24d8c55SSaleem Abdulrasool #endif 77e24d8c55SSaleem Abdulrasool 78fa3fa5b9SPavel Labath SystemInitializerCommon::Terminate(); 79fa3fa5b9SPavel Labath } 80