RegisterContextFreeBSD_mips64.cpp revision 314564
1//===-- RegisterContextFreeBSD_mips64.cpp ----------------------*- 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#include "RegisterContextFreeBSD_mips64.h" 11#include "RegisterContextPOSIX_mips64.h" 12#include <vector> 13 14using namespace lldb_private; 15using namespace lldb; 16 17// http://svnweb.freebsd.org/base/head/sys/mips/include/regnum.h 18typedef struct _GPR { 19 uint64_t zero; 20 uint64_t r1; 21 uint64_t r2; 22 uint64_t r3; 23 uint64_t r4; 24 uint64_t r5; 25 uint64_t r6; 26 uint64_t r7; 27 uint64_t r8; 28 uint64_t r9; 29 uint64_t r10; 30 uint64_t r11; 31 uint64_t r12; 32 uint64_t r13; 33 uint64_t r14; 34 uint64_t r15; 35 uint64_t r16; 36 uint64_t r17; 37 uint64_t r18; 38 uint64_t r19; 39 uint64_t r20; 40 uint64_t r21; 41 uint64_t r22; 42 uint64_t r23; 43 uint64_t r24; 44 uint64_t r25; 45 uint64_t r26; 46 uint64_t r27; 47 uint64_t gp; 48 uint64_t sp; 49 uint64_t r30; 50 uint64_t ra; 51 uint64_t sr; 52 uint64_t mullo; 53 uint64_t mulhi; 54 uint64_t badvaddr; 55 uint64_t cause; 56 uint64_t pc; 57 uint64_t ic; 58 uint64_t dummy; 59} GPR_freebsd_mips; 60 61//--------------------------------------------------------------------------- 62// Include RegisterInfos_mips64 to declare our g_register_infos_mips64 63// structure. 64//--------------------------------------------------------------------------- 65#define DECLARE_REGISTER_INFOS_MIPS64_STRUCT 66#include "RegisterInfos_mips64.h" 67#undef DECLARE_REGISTER_INFOS_MIPS64_STRUCT 68 69RegisterContextFreeBSD_mips64::RegisterContextFreeBSD_mips64( 70 const ArchSpec &target_arch) 71 : RegisterInfoInterface(target_arch) {} 72 73size_t RegisterContextFreeBSD_mips64::GetGPRSize() const { 74 return sizeof(GPR_freebsd_mips); 75} 76 77const RegisterInfo *RegisterContextFreeBSD_mips64::GetRegisterInfo() const { 78 assert(m_target_arch.GetCore() == ArchSpec::eCore_mips64); 79 return g_register_infos_mips64; 80} 81 82uint32_t RegisterContextFreeBSD_mips64::GetRegisterCount() const { 83 return static_cast<uint32_t>(sizeof(g_register_infos_mips64) / 84 sizeof(g_register_infos_mips64[0])); 85} 86