LLDB  mainline
ArchitectureMips.h
Go to the documentation of this file.
1 //===-- ArchitectureMips.h ---------------------------------------*- 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 #ifndef LLDB_SOURCE_PLUGINS_ARCHITECTURE_MIPS_ARCHITECTUREMIPS_H
10 #define LLDB_SOURCE_PLUGINS_ARCHITECTURE_MIPS_ARCHITECTUREMIPS_H
11 
12 #include "lldb/Core/Architecture.h"
13 #include "lldb/Utility/ArchSpec.h"
14 
15 namespace lldb_private {
16 
18 public:
19  static llvm::StringRef GetPluginNameStatic() { return "mips"; }
20  static void Initialize();
21  static void Terminate();
22 
23  llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
24 
25  void OverrideStopInfo(Thread &thread) const override {}
26 
28  Target &) const override;
29 
31  AddressClass addr_class) const override;
32 
34  AddressClass addr_class) const override;
35 
36 private:
38  const Address &resolved_addr,
39  lldb::addr_t symbol_offset) const;
40 
41  static std::unique_ptr<Architecture> Create(const ArchSpec &arch);
42  ArchitectureMips(const ArchSpec &arch) : m_arch(arch) {}
43 
45 };
46 
47 } // namespace lldb_private
48 
49 #endif // LLDB_SOURCE_PLUGINS_ARCHITECTURE_MIPS_ARCHITECTUREMIPS_H
lldb_private::ArchitectureMips::GetBreakableLoadAddress
lldb::addr_t GetBreakableLoadAddress(lldb::addr_t addr, Target &) const override
Definition: ArchitectureMips.cpp:72
lldb_private::Architecture
Definition: Architecture.h:17
lldb_private::ArchSpec
Definition: ArchSpec.h:33
lldb_private::AddressClass
AddressClass
Definition: lldb-private-enumerations.h:48
lldb_private::ArchitectureMips::GetOpcodeLoadAddress
lldb::addr_t GetOpcodeLoadAddress(lldb::addr_t load_addr, AddressClass addr_class) const override
Get load_addr as an opcode for this target.
Definition: ArchitectureMips.cpp:61
lldb_private::ArchitectureMips::Initialize
static void Initialize()
Definition: ArchitectureMips.cpp:27
Architecture.h
lldb_private::Instruction
Definition: Disassembler.h:58
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
lldb_private::ArchitectureMips::GetPluginName
llvm::StringRef GetPluginName() override
Definition: ArchitectureMips.h:23
lldb_private::Target
Definition: Target.h:467
lldb_private::ArchitectureMips
Definition: ArchitectureMips.h:17
lldb_private::ArchitectureMips::Create
static std::unique_ptr< Architecture > Create(const ArchSpec &arch)
Definition: ArchitectureMips.cpp:37
lldb_private::Thread
Definition: Thread.h:61
lldb_private::ArchitectureMips::GetInstructionAtAddress
Instruction * GetInstructionAtAddress(Target &target, const Address &resolved_addr, lldb::addr_t symbol_offset) const
Definition: ArchitectureMips.cpp:132
lldb_private::ArchitectureMips::m_arch
ArchSpec m_arch
Definition: ArchitectureMips.h:44
lldb_private::ArchitectureMips::ArchitectureMips
ArchitectureMips(const ArchSpec &arch)
Definition: ArchitectureMips.h:42
lldb_private::Address
Definition: Address.h:59
ArchSpec.h
lldb_private::ArchitectureMips::Terminate
static void Terminate()
Definition: ArchitectureMips.cpp:33
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::ArchitectureMips::GetCallableLoadAddress
lldb::addr_t GetCallableLoadAddress(lldb::addr_t load_addr, AddressClass addr_class) const override
Get load_addr as a callable code load address for this target.
Definition: ArchitectureMips.cpp:42
lldb_private::ArchitectureMips::OverrideStopInfo
void OverrideStopInfo(Thread &thread) const override
This is currently intended to handle cases where a program stops at an instruction that won't get exe...
Definition: ArchitectureMips.h:25
lldb_private::ArchitectureMips::GetPluginNameStatic
static llvm::StringRef GetPluginNameStatic()
Definition: ArchitectureMips.h:19