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