blob: 95638853ad3dc1f62901578afc712e4da2c2bdad [file] [log] [blame]
Jim Ingham08581262018-03-12 21:17:04 +00001//===-- ArchitecturePPC64.h -------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_PLUGIN_ARCHITECTURE_PPC64_H
11#define LLDB_PLUGIN_ARCHITECTURE_PPC64_H
12
13#include "lldb/Core/Architecture.h"
14
15namespace lldb_private {
16
17class ArchitecturePPC64 : public Architecture {
18public:
19 static ConstString GetPluginNameStatic();
20 static void Initialize();
21 static void Terminate();
22
23 ConstString GetPluginName() override;
24 uint32_t GetPluginVersion() override;
25
Tatyana Krasnukha3da0f212018-06-27 07:01:07 +000026 void OverrideStopInfo(Thread &thread) const override {}
Jim Ingham08581262018-03-12 21:17:04 +000027
28 //------------------------------------------------------------------
29 /// This method compares current address with current function's
30 /// local entry point, returning the bytes to skip if they match.
31 //------------------------------------------------------------------
32 size_t GetBytesToSkip(Symbol &func, const Address &curr_addr) const override;
33
34 void AdjustBreakpointAddress(const Symbol &func,
35 Address &addr) const override;
36
37private:
38 static std::unique_ptr<Architecture> Create(const ArchSpec &arch);
39 ArchitecturePPC64() = default;
40};
41
42} // namespace lldb_private
43
44#endif // LLDB_PLUGIN_ARCHITECTURE_PPC64_H