1257752Semaste//===-- RegisterContextFreeBSD_mips64.cpp ----------------------*- C++ -*-===// 2257752Semaste// 3257752Semaste// The LLVM Compiler Infrastructure 4257752Semaste// 5257752Semaste// This file is distributed under the University of Illinois Open Source 6257752Semaste// License. See LICENSE.TXT for details. 7257752Semaste// 8257752Semaste//===---------------------------------------------------------------------===// 9257752Semaste 10257752Semaste#include <vector> 11257752Semaste#include "RegisterContextPOSIX_mips64.h" 12257752Semaste#include "RegisterContextFreeBSD_mips64.h" 13257752Semaste 14257752Semasteusing namespace lldb_private; 15257752Semasteusing namespace lldb; 16257752Semaste 17257752Semaste// http://svnweb.freebsd.org/base/head/sys/mips/include/regnum.h 18257752Semastetypedef struct _GPR 19257752Semaste{ 20257752Semaste uint64_t zero; 21257752Semaste uint64_t r1; 22257752Semaste uint64_t r2; 23257752Semaste uint64_t r3; 24257752Semaste uint64_t r4; 25257752Semaste uint64_t r5; 26257752Semaste uint64_t r6; 27257752Semaste uint64_t r7; 28257752Semaste uint64_t r8; 29257752Semaste uint64_t r9; 30257752Semaste uint64_t r10; 31257752Semaste uint64_t r11; 32257752Semaste uint64_t r12; 33257752Semaste uint64_t r13; 34257752Semaste uint64_t r14; 35257752Semaste uint64_t r15; 36257752Semaste uint64_t r16; 37257752Semaste uint64_t r17; 38257752Semaste uint64_t r18; 39257752Semaste uint64_t r19; 40257752Semaste uint64_t r20; 41257752Semaste uint64_t r21; 42257752Semaste uint64_t r22; 43257752Semaste uint64_t r23; 44257752Semaste uint64_t r24; 45257752Semaste uint64_t r25; 46257752Semaste uint64_t r26; 47257752Semaste uint64_t r27; 48257752Semaste uint64_t gp; 49257752Semaste uint64_t sp; 50257752Semaste uint64_t r30; 51257752Semaste uint64_t ra; 52257752Semaste uint64_t sr; 53257752Semaste uint64_t mullo; 54257752Semaste uint64_t mulhi; 55257752Semaste uint64_t badvaddr; 56257752Semaste uint64_t cause; 57257752Semaste uint64_t pc; 58257752Semaste uint64_t ic; 59257752Semaste uint64_t dummy; 60257752Semaste} GPR; 61257752Semaste 62257752Semaste//--------------------------------------------------------------------------- 63257752Semaste// Include RegisterInfos_mips64 to declare our g_register_infos_mips64 structure. 64257752Semaste//--------------------------------------------------------------------------- 65257752Semaste#define DECLARE_REGISTER_INFOS_MIPS64_STRUCT 66257752Semaste#include "RegisterInfos_mips64.h" 67257752Semaste#undef DECLARE_REGISTER_INFOS_MIPS64_STRUCT 68257752Semaste 69257752SemasteRegisterContextFreeBSD_mips64::RegisterContextFreeBSD_mips64(const ArchSpec &target_arch) : 70257752Semaste RegisterInfoInterface(target_arch) 71257752Semaste{ 72257752Semaste} 73257752Semaste 74257752SemasteRegisterContextFreeBSD_mips64::~RegisterContextFreeBSD_mips64() 75257752Semaste{ 76257752Semaste} 77257752Semaste 78257752Semastesize_t 79257752SemasteRegisterContextFreeBSD_mips64::GetGPRSize() 80257752Semaste{ 81257752Semaste return sizeof(GPR); 82257752Semaste} 83257752Semaste 84257752Semasteconst RegisterInfo * 85257752SemasteRegisterContextFreeBSD_mips64::GetRegisterInfo() 86257752Semaste{ 87257752Semaste assert (m_target_arch.GetCore() == ArchSpec::eCore_mips64); 88257752Semaste return g_register_infos_mips64; 89257752Semaste} 90257752Semaste 91