1061da546Spatrick //===-- ArchitecturePPC64.h -------------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_ARCHITECTURE_PPC64_ARCHITECTUREPPC64_H 10dda28197Spatrick #define LLDB_SOURCE_PLUGINS_ARCHITECTURE_PPC64_ARCHITECTUREPPC64_H 11061da546Spatrick 12061da546Spatrick #include "lldb/Core/Architecture.h" 13061da546Spatrick 14061da546Spatrick namespace lldb_private { 15061da546Spatrick 16061da546Spatrick class ArchitecturePPC64 : public Architecture { 17061da546Spatrick public: GetPluginNameStatic()18*f6aab3d8Srobert static llvm::StringRef GetPluginNameStatic() { return "ppc64"; } 19061da546Spatrick static void Initialize(); 20061da546Spatrick static void Terminate(); 21061da546Spatrick GetPluginName()22*f6aab3d8Srobert llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } 23061da546Spatrick OverrideStopInfo(Thread & thread)24061da546Spatrick void OverrideStopInfo(Thread &thread) const override {} 25061da546Spatrick 26061da546Spatrick /// This method compares current address with current function's 27061da546Spatrick /// local entry point, returning the bytes to skip if they match. 28061da546Spatrick size_t GetBytesToSkip(Symbol &func, const Address &curr_addr) const override; 29061da546Spatrick 30061da546Spatrick void AdjustBreakpointAddress(const Symbol &func, 31061da546Spatrick Address &addr) const override; 32061da546Spatrick 33061da546Spatrick private: 34061da546Spatrick static std::unique_ptr<Architecture> Create(const ArchSpec &arch); 35061da546Spatrick ArchitecturePPC64() = default; 36061da546Spatrick }; 37061da546Spatrick 38061da546Spatrick } // namespace lldb_private 39061da546Spatrick 40dda28197Spatrick #endif // LLDB_SOURCE_PLUGINS_ARCHITECTURE_PPC64_ARCHITECTUREPPC64_H 41