1 //===-- SystemInitializerLLGS.cpp -------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "SystemInitializerLLGS.h" 10 11 #if defined(__APPLE__) 12 #include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" 13 using HostObjectFile = ObjectFileMachO; 14 #elif defined(_WIN32) 15 #include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" 16 using HostObjectFile = ObjectFilePECOFF; 17 #else 18 #include "Plugins/ObjectFile/ELF/ObjectFileELF.h" 19 using HostObjectFile = ObjectFileELF; 20 #endif 21 22 #if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) 23 #define LLDB_TARGET_ARM64 24 #endif 25 26 #if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) || \ 27 defined(LLDB_TARGET_ARM64) 28 #define LLDB_TARGET_ARM 29 #include "Plugins/Instruction/ARM/EmulateInstructionARM.h" 30 #endif 31 32 #if defined(__loongarch__) 33 #define LLDB_TARGET_LoongArch 34 #include "Plugins/Instruction/LoongArch/EmulateInstructionLoongArch.h" 35 #endif 36 37 #if defined(__mips64__) || defined(mips64) || defined(__mips64) || \ 38 defined(__MIPS64__) || defined(_M_MIPS64) 39 #define LLDB_TARGET_MIPS64 40 #include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" 41 #endif 42 43 #if defined(__mips__) || defined(mips) || defined(__mips) || \ 44 defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64) 45 #define LLDB_TARGET_MIPS 46 #include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" 47 #endif 48 49 #if defined(__riscv) 50 #define LLDB_TARGET_RISCV 51 #include "Plugins/Instruction/RISCV/EmulateInstructionRISCV.h" 52 #endif 53 54 using namespace lldb_private; 55 Initialize()56llvm::Error SystemInitializerLLGS::Initialize() { 57 if (auto e = SystemInitializerCommon::Initialize()) 58 return e; 59 60 HostObjectFile::Initialize(); 61 62 #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 63 EmulateInstructionARM::Initialize(); 64 #endif 65 #if defined(LLDB_TARGET_LoongArch) 66 EmulateInstructionLoongArch::Initialize(); 67 #endif 68 #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 69 EmulateInstructionMIPS::Initialize(); 70 #endif 71 #if defined(LLDB_TARGET_MIPS64) 72 EmulateInstructionMIPS64::Initialize(); 73 #endif 74 #if defined(LLDB_TARGET_RISCV) 75 EmulateInstructionRISCV::Initialize(); 76 #endif 77 78 return llvm::Error::success(); 79 } 80 Terminate()81void SystemInitializerLLGS::Terminate() { 82 HostObjectFile::Terminate(); 83 84 #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 85 EmulateInstructionARM::Terminate(); 86 #endif 87 #if defined(LLDB_TARGET_LoongArch) 88 EmulateInstructionLoongArch::Terminate(); 89 #endif 90 #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 91 EmulateInstructionMIPS::Terminate(); 92 #endif 93 #if defined(LLDB_TARGET_MIPS64) 94 EmulateInstructionMIPS64::Terminate(); 95 #endif 96 #if defined(LLDB_TARGET_RISCV) 97 EmulateInstructionRISCV::Terminate(); 98 #endif 99 100 SystemInitializerCommon::Terminate(); 101 } 102