LLDB mainline
ArchitectureAArch64.cpp
Go to the documentation of this file.
1//===-- ArchitectureAArch64.cpp -------------------------------------------===//
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
12
13using namespace lldb_private;
14using namespace lldb;
15
17
18void ArchitectureAArch64::Initialize() {
19 PluginManager::RegisterPlugin(GetPluginNameStatic(),
20 "AArch64-specific algorithms",
22}
23
26}
27
28std::unique_ptr<Architecture>
30 auto machine = arch.GetMachine();
31 if (machine != llvm::Triple::aarch64 && machine != llvm::Triple::aarch64_be &&
32 machine != llvm::Triple::aarch64_32) {
33 return nullptr;
34 }
35 return std::unique_ptr<Architecture>(new ArchitectureAArch64());
36}
#define LLDB_PLUGIN_DEFINE(PluginName)
Definition: PluginManager.h:31
An architecture specification class.
Definition: ArchSpec.h:32
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
Definition: ArchSpec.cpp:678
static std::unique_ptr< Architecture > Create(const ArchSpec &arch)
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
A class that represents a running process on the host machine.
Definition: SBAddress.h:15