| //===-- RegisterContextFreeBSD_mips64.cpp ----------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===---------------------------------------------------------------------===// |
| |
| #include <vector> |
| #include "RegisterContextPOSIX_mips64.h" |
| #include "RegisterContextFreeBSD_mips64.h" |
| |
| using namespace lldb_private; |
| using namespace lldb; |
| |
| // http://svnweb.freebsd.org/base/head/sys/mips/include/regnum.h |
| typedef struct _GPR |
| { |
| uint64_t zero; |
| uint64_t r1; |
| uint64_t r2; |
| uint64_t r3; |
| uint64_t r4; |
| uint64_t r5; |
| uint64_t r6; |
| uint64_t r7; |
| uint64_t r8; |
| uint64_t r9; |
| uint64_t r10; |
| uint64_t r11; |
| uint64_t r12; |
| uint64_t r13; |
| uint64_t r14; |
| uint64_t r15; |
| uint64_t r16; |
| uint64_t r17; |
| uint64_t r18; |
| uint64_t r19; |
| uint64_t r20; |
| uint64_t r21; |
| uint64_t r22; |
| uint64_t r23; |
| uint64_t r24; |
| uint64_t r25; |
| uint64_t r26; |
| uint64_t r27; |
| uint64_t gp; |
| uint64_t sp; |
| uint64_t r30; |
| uint64_t ra; |
| uint64_t sr; |
| uint64_t mullo; |
| uint64_t mulhi; |
| uint64_t badvaddr; |
| uint64_t cause; |
| uint64_t pc; |
| uint64_t ic; |
| uint64_t dummy; |
| } GPR; |
| |
| //--------------------------------------------------------------------------- |
| // Include RegisterInfos_mips64 to declare our g_register_infos_mips64 structure. |
| //--------------------------------------------------------------------------- |
| #define DECLARE_REGISTER_INFOS_MIPS64_STRUCT |
| #include "RegisterInfos_mips64.h" |
| #undef DECLARE_REGISTER_INFOS_MIPS64_STRUCT |
| |
| RegisterContextFreeBSD_mips64::RegisterContextFreeBSD_mips64(const ArchSpec &target_arch) : |
| RegisterInfoInterface(target_arch) |
| { |
| } |
| |
| size_t |
| RegisterContextFreeBSD_mips64::GetGPRSize() const |
| { |
| return sizeof(GPR); |
| } |
| |
| const RegisterInfo * |
| RegisterContextFreeBSD_mips64::GetRegisterInfo() const |
| { |
| assert (m_target_arch.GetCore() == ArchSpec::eCore_mips64); |
| return g_register_infos_mips64; |
| } |
| |
| uint32_t |
| RegisterContextFreeBSD_mips64::GetRegisterCount () const |
| { |
| return static_cast<uint32_t> (sizeof (g_register_infos_mips64) / sizeof (g_register_infos_mips64 [0])); |
| } |
| |
| |