1 //===-- RegisterContextPOSIX_mips64.h ---------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_RegisterContextPOSIX_mips64_H_
11 #define liblldb_RegisterContextPOSIX_mips64_H_
13 #include "lldb/Core/Log.h"
14 #include "RegisterContextPOSIX.h"
15 #include "RegisterContext_mips64.h"
19 // ---------------------------------------------------------------------------
20 // Internal codes for all mips64 registers.
21 // ---------------------------------------------------------------------------
25 gpr_zero_mips64 = k_first_gpr_mips64,
66 k_num_registers_mips64,
67 k_num_gpr_registers_mips64 = k_num_registers_mips64
70 class RegisterContextPOSIX_mips64
71 : public lldb_private::RegisterContext
74 RegisterContextPOSIX_mips64 (lldb_private::Thread &thread,
75 uint32_t concrete_frame_idx,
76 RegisterInfoInterface *register_info);
78 ~RegisterContextPOSIX_mips64();
84 InvalidateAllRegisters();
93 GetRegisterSize(unsigned reg);
96 GetRegisterOffset(unsigned reg);
98 const lldb_private::RegisterInfo *
99 GetRegisterInfoAtIndex(size_t reg);
102 GetRegisterSetCount();
104 const lldb_private::RegisterSet *
105 GetRegisterSet(size_t set);
108 GetRegisterName(unsigned reg);
111 ConvertRegisterKindToRegisterNumber(uint32_t kind, uint32_t num);
114 uint64_t m_gpr_mips64[k_num_gpr_registers_mips64]; // general purpose registers.
115 std::unique_ptr<RegisterInfoInterface> m_register_info_ap; // Register Info Interface (FreeBSD or Linux)
117 // Determines if an extended register set is supported on the processor running the inferior process.
119 IsRegisterSetAvailable(size_t set_index);
121 virtual const lldb_private::RegisterInfo *
130 lldb::ByteOrder GetByteOrder();
132 virtual bool ReadGPR() = 0;
133 virtual bool ReadFPR() = 0;
134 virtual bool WriteGPR() = 0;
135 virtual bool WriteFPR() = 0;
138 #endif // #ifndef liblldb_RegisterContextPOSIX_mips64_H_