LLDB mainline
RegisterContextPOSIX_mips64.h
Go to the documentation of this file.
1//===-- RegisterContextPOSIX_mips64.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_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
11
15#include "lldb/Utility/Log.h"
16
18public:
19
25 };
26
28 lldb_private::Thread &thread, uint32_t concrete_frame_idx,
30
32
33 void Invalidate();
34
35 void InvalidateAllRegisters() override;
36
37 size_t GetRegisterCount() override;
38
39 virtual size_t GetGPRSize();
40
41 virtual unsigned GetRegisterSize(unsigned reg);
42
43 virtual unsigned GetRegisterOffset(unsigned reg);
44
45 const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
46
47 size_t GetRegisterSetCount() override;
48
49 const lldb_private::RegisterSet *GetRegisterSet(size_t set) override;
50
51 const char *GetRegisterName(unsigned reg);
52
54 uint32_t num) override;
55
56protected:
59 std::unique_ptr<lldb_private::RegisterInfoInterface>
60 m_register_info_up; // Register Info Interface (FreeBSD or Linux)
61
62 // Determines if an extended register set is supported on the processor
63 // running the inferior process.
64 virtual bool IsRegisterSetAvailable(size_t set_index);
65
67
68 bool IsGPR(unsigned reg);
69
70 bool IsFPR(unsigned reg);
71
72 virtual bool ReadGPR() = 0;
73 virtual bool ReadFPR() = 0;
74 virtual bool WriteGPR() = 0;
75 virtual bool WriteFPR() = 0;
76};
77
78#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
virtual unsigned GetRegisterOffset(unsigned reg)
virtual unsigned GetRegisterSize(unsigned reg)
uint8_t m_registers_count[register_set_count]
std::unique_ptr< lldb_private::RegisterInfoInterface > m_register_info_up
virtual const lldb_private::RegisterInfo * GetRegisterInfo()
virtual bool ReadFPR()=0
virtual bool ReadGPR()=0
virtual bool IsRegisterSetAvailable(size_t set_index)
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
virtual bool WriteFPR()=0
~RegisterContextPOSIX_mips64() override
virtual bool WriteGPR()=0
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
const char * GetRegisterName(unsigned reg)
RegisterInfo interface to patch RegisterInfo structure for archs.
RegisterKind
Register numbering types.
Every register is described in detail including its name, alternate name (optional),...
Registers are grouped into register sets.