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"
13using HostObjectFile = ObjectFileMachO;
14#elif defined(_WIN32)
15#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h"
16using HostObjectFile = ObjectFilePECOFF;
17#elif defined(_AIX)
18#include "Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.h"
19using HostObjectFile = ObjectFileXCOFF;
20#else
21#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
22using HostObjectFile = ObjectFileELF;
23#endif
24
25#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
26#define LLDB_TARGET_ARM64
27#endif
28
29#if defined(__arm__) || defined(__arm) || defined(_ARM) || defined(_M_ARM) || \
30 defined(LLDB_TARGET_ARM64)
31#define LLDB_TARGET_ARM
32#include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
33#endif
34
35#if defined(__loongarch__)
36#define LLDB_TARGET_LoongArch
37#include "Plugins/Instruction/LoongArch/EmulateInstructionLoongArch.h"
38#endif
39
40#if defined(__mips64__) || defined(mips64) || defined(__mips64) || \
41 defined(__MIPS64__) || defined(_M_MIPS64)
42#define LLDB_TARGET_MIPS64
43#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h"
44#endif
45
46#if defined(__mips__) || defined(mips) || defined(__mips) || \
47 defined(__MIPS__) || defined(_M_MIPS) || defined(LLDB_TARGET_MIPS64)
48#define LLDB_TARGET_MIPS
49#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h"
50#endif
51
52#if defined(__riscv)
53#define LLDB_TARGET_RISCV
54#include "Plugins/Instruction/RISCV/EmulateInstructionRISCV.h"
55#endif
56
57using namespace lldb_private;
58
59llvm::Error SystemInitializerLLGS::Initialize() {
60 if (auto e = SystemInitializerCommon::Initialize())
61 return e;
62
63 HostObjectFile::Initialize();
64
65#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
66 EmulateInstructionARM::Initialize();
67#endif
68#if defined(LLDB_TARGET_LoongArch)
69 EmulateInstructionLoongArch::Initialize();
70#endif
71#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64)
72 EmulateInstructionMIPS::Initialize();
73#endif
74#if defined(LLDB_TARGET_MIPS64)
75 EmulateInstructionMIPS64::Initialize();
76#endif
77#if defined(LLDB_TARGET_RISCV)
78 EmulateInstructionRISCV::Initialize();
79#endif
80
81 return llvm::Error::success();
82}
83
84void SystemInitializerLLGS::Terminate() {
85 HostObjectFile::Terminate();
86
87#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
88 EmulateInstructionARM::Terminate();
89#endif
90#if defined(LLDB_TARGET_LoongArch)
91 EmulateInstructionLoongArch::Terminate();
92#endif
93#if defined(LLDB_TARGET_MIPS) || defined(LLDB_TARGET_MIPS64)
94 EmulateInstructionMIPS::Terminate();
95#endif
96#if defined(LLDB_TARGET_MIPS64)
97 EmulateInstructionMIPS64::Terminate();
98#endif
99#if defined(LLDB_TARGET_RISCV)
100 EmulateInstructionRISCV::Terminate();
101#endif
102
103 SystemInitializerCommon::Terminate();
104}
105

source code of lldb/tools/lldb-server/SystemInitializerLLGS.cpp