1061da546Spatrick //===-- SystemInitializerLLGS.cpp -------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9061da546Spatrick #include "SystemInitializerLLGS.h" 10061da546Spatrick 11061da546Spatrick #if defined(__APPLE__) 12061da546Spatrick #include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" 13061da546Spatrick using HostObjectFile = ObjectFileMachO; 14061da546Spatrick #elif defined(_WIN32) 15061da546Spatrick #include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" 16061da546Spatrick using HostObjectFile = ObjectFilePECOFF; 17061da546Spatrick #else 18061da546Spatrick #include "Plugins/ObjectFile/ELF/ObjectFileELF.h" 19061da546Spatrick using HostObjectFile = ObjectFileELF; 20061da546Spatrick #endif 21061da546Spatrick 22061da546Spatrick #if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) 23061da546Spatrick #define LLDB_TARGET_ARM64 24061da546Spatrick #endif 25061da546Spatrick 26061da546Spatrick #if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) || \ 27061da546Spatrick defined(LLDB_TARGET_ARM64) 28061da546Spatrick #define LLDB_TARGET_ARM 29061da546Spatrick #include "Plugins/Instruction/ARM/EmulateInstructionARM.h" 30061da546Spatrick #endif 31061da546Spatrick 32*f6aab3d8Srobert #if defined(__loongarch__) 33*f6aab3d8Srobert #define LLDB_TARGET_LoongArch 34*f6aab3d8Srobert #include "Plugins/Instruction/LoongArch/EmulateInstructionLoongArch.h" 35*f6aab3d8Srobert #endif 36*f6aab3d8Srobert 37061da546Spatrick #if defined(__mips64__) || defined(mips64) || defined(__mips64) || \ 38061da546Spatrick defined(__MIPS64__) || defined(_M_MIPS64) 39061da546Spatrick #define LLDB_TARGET_MIPS64 40061da546Spatrick #include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" 41061da546Spatrick #endif 42061da546Spatrick 43061da546Spatrick #if defined(__mips__) || defined(mips) || defined(__mips) || \ 44061da546Spatrick defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64) 45061da546Spatrick #define LLDB_TARGET_MIPS 46061da546Spatrick #include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" 47061da546Spatrick #endif 48061da546Spatrick 49*f6aab3d8Srobert #if defined(__riscv) 50*f6aab3d8Srobert #define LLDB_TARGET_RISCV 51*f6aab3d8Srobert #include "Plugins/Instruction/RISCV/EmulateInstructionRISCV.h" 52*f6aab3d8Srobert #endif 53*f6aab3d8Srobert 54061da546Spatrick using namespace lldb_private; 55061da546Spatrick Initialize()56061da546Spatrickllvm::Error SystemInitializerLLGS::Initialize() { 57061da546Spatrick if (auto e = SystemInitializerCommon::Initialize()) 58061da546Spatrick return e; 59061da546Spatrick 60061da546Spatrick HostObjectFile::Initialize(); 61061da546Spatrick 62061da546Spatrick #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 63061da546Spatrick EmulateInstructionARM::Initialize(); 64061da546Spatrick #endif 65*f6aab3d8Srobert #if defined(LLDB_TARGET_LoongArch) 66*f6aab3d8Srobert EmulateInstructionLoongArch::Initialize(); 67*f6aab3d8Srobert #endif 68061da546Spatrick #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 69061da546Spatrick EmulateInstructionMIPS::Initialize(); 70061da546Spatrick #endif 71061da546Spatrick #if defined(LLDB_TARGET_MIPS64) 72061da546Spatrick EmulateInstructionMIPS64::Initialize(); 73061da546Spatrick #endif 74*f6aab3d8Srobert #if defined(LLDB_TARGET_RISCV) 75*f6aab3d8Srobert EmulateInstructionRISCV::Initialize(); 76*f6aab3d8Srobert #endif 77061da546Spatrick 78061da546Spatrick return llvm::Error::success(); 79061da546Spatrick } 80061da546Spatrick Terminate()81061da546Spatrickvoid SystemInitializerLLGS::Terminate() { 82061da546Spatrick HostObjectFile::Terminate(); 83061da546Spatrick 84061da546Spatrick #if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64) 85061da546Spatrick EmulateInstructionARM::Terminate(); 86061da546Spatrick #endif 87*f6aab3d8Srobert #if defined(LLDB_TARGET_LoongArch) 88*f6aab3d8Srobert EmulateInstructionLoongArch::Terminate(); 89*f6aab3d8Srobert #endif 90061da546Spatrick #if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64) 91061da546Spatrick EmulateInstructionMIPS::Terminate(); 92061da546Spatrick #endif 93061da546Spatrick #if defined(LLDB_TARGET_MIPS64) 94061da546Spatrick EmulateInstructionMIPS64::Terminate(); 95061da546Spatrick #endif 96*f6aab3d8Srobert #if defined(LLDB_TARGET_RISCV) 97*f6aab3d8Srobert EmulateInstructionRISCV::Terminate(); 98*f6aab3d8Srobert #endif 99061da546Spatrick 100061da546Spatrick SystemInitializerCommon::Terminate(); 101061da546Spatrick } 102