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#else
18#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
19using 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
54using namespace lldb_private;
55
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
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

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