SSBM Decomp
Loading...
Searching...
No Matches
ppc_reg.h
Go to the documentation of this file.
1#ifndef _METROTRK_PPC_REG_H
2#define _METROTRK_PPC_REG_H
3
4#include <platform.h>
5
6#include "MetroTRK/trk.h"
7
8/*
9 * Default register block (all registers typically requested by debugger)
10 */
11
14typedef u64 FloatType;
15typedef FloatType FPType; /* TRK core calls it FPType */
16
17typedef struct Default_PPC {
18 /* 0x00 */ DefaultType GPR[32];
19 /* 0x80 */ DefaultType PC;
20 /* 0x84 */ DefaultType LR;
21 /* 0x88 */ DefaultType CR;
22 /* 0x8C */ DefaultType CTR;
23 /* 0x90 */ DefaultType XER;
24} Default_PPC; // size = 0x94
25
26/*
27** Register indices
28*/
29#define TRK_DEFAULT_GPR(x) (x)
30#define TRK_DEFAULT_PC 32
31#define TRK_DEFAULT_LR 33
32#define TRK_DEFAULT_CR 34
33#define TRK_DEFAULT_CTR 35
34#define TRK_DEFAULT_XER 36
35
36#define TRK_DEFAULT_MIN_REGISTER 0
37#define TRK_DEFAULT_MAX_REGISTER \
38 (sizeof(Default_PPC) / sizeof(DefaultType) - 1)
39
40#define TRK_DEFAULT_SIZE (sizeof(DefaultType))
41
42typedef struct Float_PPC {
43 /* 0x000 */ FloatType FPR[32];
44 /* 0x100 */ FloatType FPSCR;
45 /* 0x108 */ FloatType FPECR;
46} Float_PPC; // size = 0x110
47
48/*
49** Register indices
50*/
51#define TRK_FLOAT_FPR(x) (x)
52#define TRK_FLOAT_FPSCR 32
53#define TRK_FLOAT_FPECR 33
54
55#define TRK_FLOAT_MIN_REGISTER 0
56#define TRK_FLOAT_MAX_REGISTER (sizeof(Float_PPC) / sizeof(FloatType) - 1)
57
58#define TRK_FLOAT_SIZE (sizeof(FloatType))
59
60/*
61 * Info stored in NotifyStopped message.
62 */
63
67
68typedef struct StopInfo_PPC {
69 /* 0x00 */ PCType PC;
72} StopInfo_PPC; // size = 0x0A
73
74//
75// Info stored in NotifyException message.
76//
77
79
80/*
81** Info used by breakpoint code to restore (unset)
82** breakpoints. For software breakpoints it is just
83** the saved instruction.
84*/
85
87
88#define TRK_EXTENDED2_SIZE (sizeof(Extended2Type))
89
90// Special purpose registers
91#define SPR_XER 1
92
93#define SPR_LR 8
94#define SPR_CTR 9
95
96#define SPR_DSISR 18
97#define SPR_DAR 19
98
99#define SPR_DEC 22
100
101#define SPR_SDR1 25
102#define SPR_SRR0 26
103#define SPR_SRR1 27
104
105#define TBR_TBL_READ 268
106#define TBR_TBU_READ 269
107
108#define SPR_SPRG0 272
109#define SPR_SPRG1 273
110#define SPR_SPRG2 274
111#define SPR_SPRG3 275
112
113#define SPR_EAR 282
114
115#define TBR_TBL_WRITE 284
116#define TBR_TBU_WRITE 285
117
118#define SPR_PVR 287
119
120#define SPR_IBAT0U 528
121#define SPR_IBAT0L 529
122#define SPR_IBAT1U 530
123#define SPR_IBAT1L 531
124#define SPR_IBAT2U 532
125#define SPR_IBAT2L 533
126#define SPR_IBAT3U 534
127#define SPR_IBAT3L 535
128
129#define SPR_DBAT0U 536
130#define SPR_DBAT0L 537
131#define SPR_DBAT1U 538
132#define SPR_DBAT1L 539
133#define SPR_DBAT2U 540
134#define SPR_DBAT2L 541
135#define SPR_DBAT3U 542
136#define SPR_DBAT3L 543
137
138#define SPR_IBAT4U 560
139#define SPR_IBAT4L 561
140#define SPR_IBAT5U 562
141#define SPR_IBAT5L 563
142#define SPR_IBAT6U 564
143#define SPR_IBAT6L 565
144#define SPR_IBAT7U 566
145#define SPR_IBAT7L 567
146
147#define SPR_DBAT4U 568
148#define SPR_DBAT4L 569
149#define SPR_DBAT5U 570
150#define SPR_DBAT5L 571
151#define SPR_DBAT6U 572
152#define SPR_DBAT6L 573
153#define SPR_DBAT7U 574
154#define SPR_DBAT7L 575
155
156#define SPR_GQR0 912
157#define SPR_GQR1 913
158#define SPR_GQR2 914
159#define SPR_GQR3 915
160#define SPR_GQR4 916
161#define SPR_GQR5 917
162#define SPR_GQR6 918
163#define SPR_GQR7 919
164
165#define SPR_HID2 920
166#define SPR_WPAR 921
167#define SPR_DMAU 922
168#define SPR_DMAL 923
169
170#define SPR_UMMCR0 936
171#define SPR_UPMC1 937
172#define SPR_UPMC2 938
173#define SPR_USIA 939
174#define SPR_UMMCR1 940
175#define SPR_UPMC3 941
176#define SPR_UPMC4 942
177#define SPR_USDA 943
178
179#define SPR_MMCR2 944
180#define SPR_BAMR 951
181
182#define SPR_MMCR0 952
183#define SPR_PMC1 953
184#define SPR_PMC2 954
185#define SPR_SIA 955
186#define SPR_MMCR1 956
187#define SPR_PMC3 957
188#define SPR_PMC4 958
189#define SPR_SDA 959
190
191#define SPR_DMISS 976
192#define SPR_DCMP 977
193#define SPR_HASH1 978
194#define SPR_HASH2 979
195#define SPR_IMISS 980
196#define SPR_ICMP 981
197#define SPR_RPA 982
198
199#define SPR_HID0 1008
200#define SPR_HID1 1009
201#define SPR_IABR 1010
202#define SPR_HID4 1011
203#define SPR_TDCL 1012
204#define SPR_DABR 1013
205
206#define SPR_MSSCR0 1014
207#define SPR_MSSCR1 1015
208
209#define SPR_L2CR 1017
210#define SPR_TDCH 1018
211#define SPR_ICTC 1019
212
213#define SPR_THRM1 1020
214#define SPR_THRM2 1021
215#define SPR_THRM3 1022
216
217#define SPR_FPECR 1022
218
219#define SPR_PIR 1023
220
221// MSR Register bits
222#define COND_EQ 2
223#define MSR_SE 0x0400 /* SE bit of MSR (bit 21) */
224#define MSR_EE 0x8000 /* EE bit of MSR (bit 16) */
225#define MSR_RI 0x0002 /* RI bit of MSR (bit 30) */
226#define MSR_DR 0x0010 /* DR bit of MSR (bit 27) */
227#define MSR_IR 0x0020 /* IR bit of MSR (bit 26) */
228#define MSR_FP 0x2000 /* FP bit of MSR (bit 18) */
229#define MSR_VEC 0x02000000 /* VEC bit of MSR (bit 6) */ /* AltiVec support */
230
231#endif
FloatType
Definition math.h:29
unsigned long u32
An unsigned 32-bit integer.
Definition platform.h:26
unsigned short u16
An unsigned 16-bit integer.
Definition platform.h:23
unsigned long long u64
An unsigned 64-bit integer.
Definition platform.h:29
u64 FloatType
Definition ppc_reg.h:14
u16 ExceptionCauseType
Definition ppc_reg.h:66
u32 Extended1Type
Definition ppc_reg.h:13
u32 DefaultType
Definition ppc_reg.h:12
StopInfo_PPC ExceptionInfo_PPC
Definition ppc_reg.h:78
DefaultType PCType
Definition ppc_reg.h:64
InstructionType BreakpointRestore
Definition ppc_reg.h:86
FloatType FPType
Definition ppc_reg.h:15
u32 InstructionType
Definition ppc_reg.h:65
Definition ppc_reg.h:17
DefaultType XER
Definition ppc_reg.h:23
DefaultType CTR
Definition ppc_reg.h:22
DefaultType PC
Definition ppc_reg.h:19
DefaultType CR
Definition ppc_reg.h:21
DefaultType GPR[32]
Definition ppc_reg.h:18
DefaultType LR
Definition ppc_reg.h:20
Definition ppc_reg.h:42
FloatType FPECR
Definition ppc_reg.h:45
FloatType FPSCR
Definition ppc_reg.h:44
FloatType FPR[32]
Definition ppc_reg.h:43
Definition ppc_reg.h:68
PCType PC
Definition ppc_reg.h:69
InstructionType PCInstruction
Definition ppc_reg.h:70
ExceptionCauseType exceptionID
Definition ppc_reg.h:71