1#ifndef _DOLPHIN_PPCARCH
2#define _DOLPHIN_PPCARCH
105#define MSR_POW 0x00040000
106#define MSR_ILE 0x00010000
107#define MSR_EE 0x00008000
108#define MSR_PR 0x00004000
109#define MSR_FP 0x00002000
110#define MSR_ME 0x00001000
111#define MSR_FE0 0x00000800
112#define MSR_SE 0x00000400
113#define MSR_BE 0x00000200
114#define MSR_FE1 0x00000100
115#define MSR_IP 0x00000040
116#define MSR_IR 0x00000020
117#define MSR_DR 0x00000010
118#define MSR_PM 0x00000004
119#define MSR_RI 0x00000002
120#define MSR_LE 0x00000001
122#define MSR_POW_BIT 13
123#define MSR_ILE_BIT 15
128#define MSR_FE0_BIT 20
131#define MSR_FE1_BIT 23
142#define HID0_EMCP 0x80000000u
143#define HID0_DBP 0x40000000u
144#define HID0_EBA 0x20000000u
145#define HID0_EBD 0x10000000u
146#define HID0_BCLK 0x08000000u
147#define HID0_ECLK 0x02000000u
148#define HID0_PAR 0x01000000u
149#define HID0_DOZE 0x00800000u
150#define HID0_NAP 0x00400000u
151#define HID0_SLEEP 0x00200000u
152#define HID0_DPM 0x00100000u
153#define HID0_NHR 0x00010000u
154#define HID0_ICE 0x00008000u
155#define HID0_DCE 0x00004000u
156#define HID0_ILOCK 0x00002000u
157#define HID0_DLOCK 0x00001000u
158#define HID0_ICFI 0x00000800u
159#define HID0_DCFI 0x00000400u
160#define HID0_SPD 0x00000200u
161#define HID0_IFEM 0x00000100u
162#define HID0_SGE 0x00000080u
163#define HID0_DCFA 0x00000040u
164#define HID0_BTIC 0x00000020u
165#define HID0_ABE 0x00000008u
166#define HID0_BHT 0x00000004u
167#define HID0_NOOPTI 0x00000001u
169#define HID0_ICE_BIT 16
170#define HID0_DCE_BIT 17
171#define HID0_ILOCK_BIT 18
172#define HID0_DLOCK_BIT 19
174#define HID2_LSQE 0x80000000
175#define HID2_WPE 0x40000000
176#define HID2_PSE 0x20000000
177#define HID2_LCE 0x10000000
179#define HID2_DCHERR 0x00800000
180#define HID2_DNCERR 0x00400000
181#define HID2_DCMERR 0x00200000
182#define HID2_DQOERR 0x00100000
183#define HID2_DCHEE 0x00080000
184#define HID2_DNCEE 0x00040000
185#define HID2_DCMEE 0x00020000
186#define HID2_DQOEE 0x00010000
188#define HID2_DMAQL_MASK 0x0F000000
189#define HID2_DMAQL_SHIFT 24
191#define HID2_LSQE_BIT 0
192#define HID2_WPE_BIT 1
193#define HID2_PSE_BIT 2
194#define HID2_LCE_BIT 3
196#define HID2_DCHERR_BIT 8
197#define HID2_DNCERR_BIT 9
198#define HID2_DCMERR_BIT 10
199#define HID2_DQOERR_BIT 11
200#define HID2_DCHEE_BIT 12
201#define HID2_DNCEE_BIT 13
202#define HID2_DCMEE_BIT 14
203#define HID2_DQOEE_BIT 15
205#define GQR_LOAD_SCALE_MASK 0x3F000000
206#define GQR_LOAD_TYPE_MASK 0x00070000
207#define GQR_STORE_SCALE_MASK 0x00003F00
208#define GQR_STORE_TYPE_MASK 0x00000007
229#define DMA_U_ADDR_MASK 0xFFFFFFE0
230#define DMA_U_LEN_U_MASK 0x0000001F
232#define DMA_L_LC_ADDR_MASK 0xFFFFFFE0
233#define DMA_L_LOAD 0x00000010
234#define DMA_L_STORE 0x00000000
235#define DMA_L_LEN_MASK 0x0000000C
236#define DMA_L_TRIGGER 0x00000002
237#define DMA_L_FLUSH 0x00000001
269#define WPAR_ADDR 0xFFFFFFE0
270#define WPAR_BNE 0x00000001
272#define SRR1_DMA_BIT 0x00200000
273#define SRR1_L2DP_BIT 0x00100000
275#define L2CR_L2E 0x80000000
276#define L2CR_L2PE 0x40000000
278#define L2CR_L2SIZ_256K 0x10000000
279#define L2CR_L2SIZ_512K 0x20000000
280#define L2CR_L2SIZ_1M 0x30000000
282#define L2CR_L2CLK_1_0 0x02000000
283#define L2CR_L2CLK_1_5 0x04000000
284#define L2CR_L2CLK_2_0 0x08000000
285#define L2CR_L2CLK_2_5 0x0A000000
286#define L2CR_L2CLK_3_0 0x0C000000
288#define L2CR_RAM_FLOW_THRU_BURST 0x00000000
289#define L2CR_RAM_PIPELINE_BURST 0x01000000
290#define L2CR_RAM_PIPELINE_LATE 0x01800000
292#define L2CR_L2DO 0x00400000
293#define L2CR_L2I 0x00200000
294#define L2CR_L2CTL 0x00100000
295#define L2CR_L2WT 0x00080000
296#define L2CR_L2TS 0x00040000
298#define L2CR_L2OH_0_5 0x00000000
299#define L2CR_L2OH_1_0 0x00010000
301#define L2CR_L2SL 0x00008000
302#define L2CR_L2DF 0x00004000
303#define L2CR_L2BYP 0x00002000
304#define L2CR_L2CS 0x00000200
305#define L2CR_L2DRO 0x00000100
306#define L2CR_L2CTR_MASK 0x000000FE
307#define L2CR_L2IP 0x00000001
309#define MMCR0_DIS 0x80000000
310#define MMCR0_DP 0x40000000
311#define MMCR0_DU 0x20000000
312#define MMCR0_DMS 0x10000000
313#define MMCR0_DMR 0x08000000
314#define MMCR0_ENINT 0x04000000
315#define MMCR0_DISCOUNT 0x02000000
316#define MMCR0_RTCSELECT_MASK 0x01800000
317#define MMCR0_RTCSELECT_63 0x00000000
318#define MMCR0_RTCSELECT_55 0x00800000
319#define MMCR0_RTCSELECT_51 0x01000000
320#define MMCR0_RTCSELECT_47 0x01800000
321#define MMCR0_INTONBITTRANS 0x00400000
322#define MMCR0_THRESHOLD_MASK 0x003F0000
323#define MMCR0_THRESHOLD(n) ((n) << 16)
324#define MMCR0_PMC1INTCONTROL 0x00008000
325#define MMCR0_PMC2INTCONTROL 0x00004000
326#define MMCR0_PMCTRIGGER 0x00002000
327#define MMCR0_PMC1SELECT_MASK 0x00001FC0
328#define MMCR0_PMC2SELECT_MASK 0x0000003F
330#define MMCR1_PMC3SELECT_MASK 0xF8000000
331#define MMCR1_PMC4SELECT_MASK 0x07C00000
333#define PMC1_OV 0x80000000
334#define PMC1_COUNTER 0x7FFFFFFF
335#define PMC2_OV 0x80000000
336#define PMC2_COUNTER 0x7FFFFFFF
337#define PMC3_OV 0x80000000
338#define PMC3_COUNTER 0x7FFFFFFF
339#define PMC4_OV 0x80000000
340#define PMC4_COUNTER 0x7FFFFFFF
345#define MMCR0_PMC1_HOLD 0x00000000
346#define MMCR0_PMC1_CYCLE 0x00000040
347#define MMCR0_PMC1_INSTRUCTION 0x00000080
348#define MMCR0_PMC1_TRANSITION 0x000000C0
349#define MMCR0_PMC1_DISPATCHED 0x00000100
350#define MMCR0_PMC1_EIEIO 0x00000140
351#define MMCR0_PMC1_ITLB_CYCLE 0x00000180
352#define MMCR0_PMC1_L2_HIT 0x000001C0
353#define MMCR0_PMC1_EA 0x00000200
354#define MMCR0_PMC1_IABR 0x00000240
355#define MMCR0_PMC1_L1_MISS 0x00000280
356#define MMCR0_PMC1_Bx_UNRESOLVED 0x000002C0
357#define MMCR0_PMC1_Bx_STALL_CYCLE 0x00000300
359#define MMCR0_PMC1_IC_FETCH_MISS 0x00000340
360#define MMCR0_PMC2_HOLD 0x00000000
361#define MMCR0_PMC2_CYCLE 0x00000001
362#define MMCR0_PMC2_INSTRUCTION 0x00000002
363#define MMCR0_PMC2_TRANSITION 0x00000003
364#define MMCR0_PMC2_DISPATCHED 0x00000004
365#define MMCR0_PMC2_IC_MISS 0x00000005
366#define MMCR0_PMC2_ITLB_MISS 0x00000006
367#define MMCR0_PMC2_L2_I_MISS 0x00000007
368#define MMCR0_PMC2_Bx_FALL_TROUGH 0x00000008
369#define MMCR0_PMC2_PR_SWITCH 0x00000009
370#define MMCR0_PMC2_RESERVED_LOAD 0x0000000A
371#define MMCR0_PMC2_LOAD_STORE 0x0000000B
372#define MMCR0_PMC2_SNOOP 0x0000000C
373#define MMCR0_PMC2_L1_CASTOUT 0x0000000D
374#define MMCR0_PMC2_SYSTEM 0x0000000E
375#define MMCR0_PMC2_IC_FETCH_MISS 0x0000000F
376#define MMCR0_PMC2_Bx_OUT_OF_ORDER 0x00000010
381#define MMCR1_PMC3_HOLD 0x00000000
382#define MMCR1_PMC3_CYCLE 0x08000000
383#define MMCR1_PMC3_INSTRUCTION 0x10000000
384#define MMCR1_PMC3_TRANSITION 0x18000000
385#define MMCR1_PMC3_DISPATCHED 0x20000000
386#define MMCR1_PMC3_DC_MISS 0x28000000
387#define MMCR1_PMC3_DTLB_MISS 0x30000000
388#define MMCR1_PMC3_L2_D_MISS 0x38000000
389#define MMCR1_PMC3_Bx_TAKEN 0x40000000
390#define MMCR1_PMC3_PM_SWITCH 0x48000000
391#define MMCR1_PMC3_COND_STORE 0x50000000
392#define MMCR1_PMC3_FPU 0x58000000
393#define MMCR1_PMC3_L2_SNOOP_CASTOUT 0x60000000
394#define MMCR1_PMC3_L2_HIT 0x68000000
395#define MMCR1_PMC3_L1_MISS_CYCLE 0x78000000
396#define MMCR1_PMC3_Bx_SECOND 0x80000000
398#define MMCR1_PMC3_BPU_LR_CR 0x88000000
401#define MMCR1_PMC4_HOLD 0x00000000
402#define MMCR1_PMC4_CYCLE 0x00400000
403#define MMCR1_PMC4_INSTRUCTION 0x00800000
404#define MMCR1_PMC4_TRANSITION 0x00C00000
405#define MMCR1_PMC4_DISPATCHED 0x01000000
406#define MMCR1_PMC4_L2_CASTOUT 0x01400000
407#define MMCR1_PMC4_DTLB_CYCLE 0x01800000
408#define MMCR1_PMC4_Bx_MISSED 0x02000000
409#define MMCR1_PMC4_COND_STORE_INT 0x02800000
411#define MMCR1_PMC4_SYNC 0x02C00000
412#define MMCR1_PMC4_SNOOP_RETRY 0x03000000
413#define MMCR1_PMC4_INTEGER 0x03400000
414#define MMCR1_PMC4_BPU_THIRD 0x03800000
416#define MMCR1_PMC4_DC_MISS 0x07C00000
422#define FPSCR_FX 0x80000000
423#define FPSCR_FEX 0x40000000
424#define FPSCR_VX 0x20000000
425#define FPSCR_OX 0x10000000
426#define FPSCR_UX 0x08000000
427#define FPSCR_ZX 0x04000000
428#define FPSCR_XX 0x02000000
429#define FPSCR_VXSNAN 0x01000000
430#define FPSCR_VXISI 0x00800000
431#define FPSCR_VXIDI 0x00400000
432#define FPSCR_VXZDZ 0x00200000
433#define FPSCR_VXIMZ 0x00100000
434#define FPSCR_VXVC 0x00080000
435#define FPSCR_FR 0x00040000
436#define FPSCR_FI 0x00020000
437#define FPSCR_VXSOFT 0x00000400
438#define FPSCR_VXSQRT 0x00000200
439#define FPSCR_VXCVI 0x00000100
440#define FPSCR_VE 0x00000080
441#define FPSCR_OE 0x00000040
442#define FPSCR_UE 0x00000020
443#define FPSCR_ZE 0x00000010
444#define FPSCR_XE 0x00000008
445#define FPSCR_NI 0x00000004
449#define FPSCR_FX_BIT 0
450#define FPSCR_FEX_BIT 1
451#define FPSCR_VX_BIT 2
452#define FPSCR_OX_BIT 3
453#define FPSCR_UX_BIT 4
454#define FPSCR_ZX_BIT 5
455#define FPSCR_XX_BIT 6
456#define FPSCR_VXSNAN_BIT 7
457#define FPSCR_VXISI_BIT 8
458#define FPSCR_VXIDI_BIT 9
459#define FPSCR_VXZDZ_BIT 10
460#define FPSCR_VXIMZ_BIT 11
461#define FPSCR_VXVC_BIT 12
462#define FPSCR_FR_BIT 13
463#define FPSCR_FI_BIT 14
464#define FPSCR_VXSOFT_BIT 21
465#define FPSCR_VXSQRT_BIT 22
466#define FPSCR_VXCVI_BIT 23
467#define FPSCR_VE_BIT 24
468#define FPSCR_OE_BIT 25
469#define FPSCR_UE_BIT 26
470#define FPSCR_ZE_BIT 27
471#define FPSCR_XE_BIT 28
472#define FPSCR_NI_BIT 29
void PPCMtfpscr(u32 newFPSCR)
void PPCDisableSpeculation()
void PMInstructions(void)
void PPCMtdec(u32 newDec)
u32 PPCAndCMsr(u32 value)
void PPCMtmsr(u32 newMSR)
void PPCMtmmcr1(u32 newMmcr0)
void PPCMtwpar(u32 newwpar)
void PPCMtpmc4(u32 newPmc1)
void PML1FetchMisses(void)
void PML1MissCycles(void)
void PPCMthid0(u32 newHID0)
void PPCMtpmc2(u32 newPmc1)
void PPCMtpmc3(u32 newPmc1)
void PPCMtmmcr0(u32 newMmcr0)
void PPCMtsia(u32 newSia)
void PPCSetFpNonIEEEMode()
void PPCMthid2(u32 newhid2)
void PPCMtdmaL(u32 newdmal)
void PPCMtpmc1(u32 newPmc1)
void PPCEnableSpeculation()
void PPCMtdmaU(u32 newdmau)
void PPCMtl2cr(u32 newL2cr)
unsigned long u32
Definition types.h:9
u32 dmaFlush
Definition PPCArch.h:258
u32 dmaTrigger
Definition PPCArch.h:257
u32 lcAddr
Definition PPCArch.h:254
u32 dmaLenL
Definition PPCArch.h:256
u32 dmaLd
Definition PPCArch.h:255
u32 dmaLenU
Definition PPCArch.h:242
u32 memAddr
Definition PPCArch.h:241
u32 loadType
Definition PPCArch.h:215
u32 storeType
Definition PPCArch.h:219
u32 storeScale
Definition PPCArch.h:217
u32 _pad1
Definition PPCArch.h:214
u32 _pad2
Definition PPCArch.h:216
u32 _pad0
Definition PPCArch.h:212
u32 loadScale
Definition PPCArch.h:213
u32 _pad3
Definition PPCArch.h:218
u32 val
Definition PPCArch.h:264
PPC_DMA_L_t f
Definition PPCArch.h:265
PPC_DMA_U_t f
Definition PPCArch.h:248
u32 val
Definition PPCArch.h:247
u32 val
Definition PPCArch.h:224
PPC_GQR_t f
Definition PPCArch.h:225