SSBM Decomp
Loading...
Searching...
No Matches
PPCArch.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_PPCARCH
2#define _DOLPHIN_PPCARCH
3
4#include "dolphin/types.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define CTR 9
11#define XER 1
12#define LR 8
13
14#define UPMC1 937
15#define UPMC2 938
16#define UPMC3 941
17#define UPMC4 942
18
19#define USIA 939
20
21#define UMMCR0 936
22#define UMMCR1 940
23
24#define HID0 1008
25#define HID1 1009
26
27#define PVR 287
28
29#define IBAT0U 528
30#define IBAT0L 529
31#define IBAT1U 530
32#define IBAT1L 531
33#define IBAT2U 532
34#define IBAT2L 533
35#define IBAT3U 534
36#define IBAT3L 535
37
38#define DBAT0U 536
39#define DBAT0L 537
40#define DBAT1U 538
41#define DBAT1L 539
42#define DBAT2U 540
43#define DBAT2L 541
44#define DBAT3U 542
45#define DBAT3L 543
46
47#define SDR1 25
48
49#define SPRG0 272
50#define SPRG1 273
51#define SPRG2 274
52#define SPRG3 275
53
54#define DAR 19
55#define DSISR 18
56
57#define SRR0 26
58#define SRR1 27
59
60#define EAR 282
61
62#define DABR 1013
63
64#define TBL 284
65#define TBU 285
66
67#define L2CR 1017
68
69#define DEC 22
70
71#define IABR 1010
72
73#define PMC1 953
74#define PMC2 954
75#define PMC3 957
76#define PMC4 958
77
78#define SIA 955
79
80#define MMCR0 952
81#define MMCR1 956
82
83#define THRM1 1020
84#define THRM2 1021
85#define THRM3 1022
86
87#define ICTC 1019
88
89#define GQR0 912
90#define GQR1 913
91#define GQR2 914
92#define GQR3 915
93#define GQR4 916
94#define GQR5 917
95#define GQR6 918
96#define GQR7 919
97
98#define HID2 920
99
100#define WPAR 921
101
102#define DMA_U 922
103#define DMA_L 923
104
105#define MSR_POW 0x00040000 // Power Management
106#define MSR_ILE 0x00010000 // Interrupt Little Endian
107#define MSR_EE 0x00008000 // external interrupt
108#define MSR_PR 0x00004000 // privilege level(should be 0)
109#define MSR_FP 0x00002000 // floating point available
110#define MSR_ME 0x00001000 // machine check enable
111#define MSR_FE0 0x00000800 // floating point exception enable
112#define MSR_SE 0x00000400 // single step trace enable
113#define MSR_BE 0x00000200 // branch trace enable
114#define MSR_FE1 0x00000100 // floating point exception enable
115#define MSR_IP 0x00000040 // Exception prefix
116#define MSR_IR 0x00000020 // instruction relocate
117#define MSR_DR 0x00000010 // data relocate
118#define MSR_PM 0x00000004 // Performance monitor marked mode
119#define MSR_RI 0x00000002 // Recoverable interrupt
120#define MSR_LE 0x00000001 // Little Endian
121
122#define MSR_POW_BIT 13 // Power Management
123#define MSR_ILE_BIT 15 // Interrupt Little Endian
124#define MSR_EE_BIT 16 // external interrupt
125#define MSR_PR_BIT 17 // privilege level (should be 0)
126#define MSR_FP_BIT 18 // floating point available
127#define MSR_ME_BIT 19 // machine check enable
128#define MSR_FE0_BIT 20 // floating point exception enable
129#define MSR_SE_BIT 21 // single step trace enable
130#define MSR_BE_BIT 22 // branch trace enable
131#define MSR_FE1_BIT 23 // floating point exception enable
132#define MSR_IP_BIT 25 // Exception prefix
133#define MSR_IR_BIT 26 // instruction relocate
134#define MSR_DR_BIT 27 // data relocate
135#define MSR_PM_BIT 29 // Performance monitor marked mode
136#define MSR_RI_BIT 30 // Recoverable interrupt
137#define MSR_LE_BIT 31 // Little Endian
138
139/*---------------------------------------------------------------------------*
140 HID0 bits
141 *---------------------------------------------------------------------------*/
142#define HID0_EMCP 0x80000000u // Enable MCP
143#define HID0_DBP 0x40000000u // Enable 60x bus address and data parity chk
144#define HID0_EBA 0x20000000u // Enable 60x address parity checking
145#define HID0_EBD 0x10000000u // Enable 60x data parity checking
146#define HID0_BCLK 0x08000000u // CLK_OUT output enable and clk selection
147#define HID0_ECLK 0x02000000u // CLK_OUT output enable and clk selection
148#define HID0_PAR 0x01000000u // Disable !ARTRY precharge
149#define HID0_DOZE 0x00800000u // Doze mode enable
150#define HID0_NAP 0x00400000u // Nap mode enable
151#define HID0_SLEEP 0x00200000u // Sleep mode enable
152#define HID0_DPM 0x00100000u // Dynamic power management enable
153#define HID0_NHR 0x00010000u // Not hard reset (0 hard reset if s/w set it)
154#define HID0_ICE 0x00008000u // Instruction cache enable
155#define HID0_DCE 0x00004000u // Data cache enable
156#define HID0_ILOCK 0x00002000u // ICache lock
157#define HID0_DLOCK 0x00001000u // DCache lock
158#define HID0_ICFI 0x00000800u // ICache flash invalidate
159#define HID0_DCFI 0x00000400u // DCache flash invalidate
160#define HID0_SPD 0x00000200u // Speculative cache access enable (0 enable)
161#define HID0_IFEM 0x00000100u // Enable M bit on bus for Ifetch
162#define HID0_SGE 0x00000080u // Store gathering enable
163#define HID0_DCFA 0x00000040u // DCache flush assist - set before a flush
164#define HID0_BTIC 0x00000020u // Branch target icache enable
165#define HID0_ABE 0x00000008u // Address bcast enable
166#define HID0_BHT 0x00000004u // Branch history table enable
167#define HID0_NOOPTI 0x00000001u // No-op Dcache touch instructions
168
169#define HID0_ICE_BIT 16 // Instruction cache enable
170#define HID0_DCE_BIT 17 // Data cache enable
171#define HID0_ILOCK_BIT 18 // ICache lock
172#define HID0_DLOCK_BIT 19 // DCache lock
173
174#define HID2_LSQE 0x80000000 // L/S quantize enable
175#define HID2_WPE 0x40000000 // Write pipe enable
176#define HID2_PSE 0x20000000 // Paired single enable
177#define HID2_LCE 0x10000000 // Locked cache enable
178
179#define HID2_DCHERR 0x00800000 // ERROR: dcbz_l cache hit
180#define HID2_DNCERR 0x00400000 // ERROR: DMA access to normal cache
181#define HID2_DCMERR 0x00200000 // ERROR: DMA cache miss error
182#define HID2_DQOERR 0x00100000 // ERROR: DMA queue overflow
183#define HID2_DCHEE 0x00080000 // dcbz_l cache hit error enable
184#define HID2_DNCEE 0x00040000 // DMA access to normal cache error enable
185#define HID2_DCMEE 0x00020000 // DMA cache miss error error enable
186#define HID2_DQOEE 0x00010000 // DMA queue overflow error enable
187
188#define HID2_DMAQL_MASK 0x0F000000 // DMA queue length mask
189#define HID2_DMAQL_SHIFT 24 // DMA queue shift
190
191#define HID2_LSQE_BIT 0
192#define HID2_WPE_BIT 1
193#define HID2_PSE_BIT 2
194#define HID2_LCE_BIT 3
195
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
204
205#define GQR_LOAD_SCALE_MASK 0x3F000000 // load scale field
206#define GQR_LOAD_TYPE_MASK 0x00070000 // load type field
207#define GQR_STORE_SCALE_MASK 0x00003F00 // store scale field
208#define GQR_STORE_TYPE_MASK 0x00000007 // store type field
209
221
222typedef union
223{
226} PPC_GQR_u;
227
228
229#define DMA_U_ADDR_MASK 0xFFFFFFE0 // Start addr in memory
230#define DMA_U_LEN_U_MASK 0x0000001F // lines to transfer (U)
231
232#define DMA_L_LC_ADDR_MASK 0xFFFFFFE0 // Start addr in LC
233#define DMA_L_LOAD 0x00000010 // 0 - store, 1 - load
234#define DMA_L_STORE 0x00000000 // 0 - store, 1 - load
235#define DMA_L_LEN_MASK 0x0000000C // lines to transfer (L)
236#define DMA_L_TRIGGER 0x00000002 // 0 - cmd inactive, 1 - cmd rdy
237#define DMA_L_FLUSH 0x00000001 // 1 - Flush DMA queue
238
239typedef struct
240{
244
245typedef union
246{
250
251
252typedef struct
253{
260
261
262typedef union
263{
267
268
269#define WPAR_ADDR 0xFFFFFFE0 // 32byte gather address
270#define WPAR_BNE 0x00000001 // Buffer not empty (R)
271
272#define SRR1_DMA_BIT 0x00200000
273#define SRR1_L2DP_BIT 0x00100000
274
275#define L2CR_L2E 0x80000000 // L2 Enable
276#define L2CR_L2PE 0x40000000 // L2 data parity generation and checking enable
277
278#define L2CR_L2SIZ_256K 0x10000000 // L2 size 256K
279#define L2CR_L2SIZ_512K 0x20000000 // L2 size 512
280#define L2CR_L2SIZ_1M 0x30000000 // L2 size 1M
281
282#define L2CR_L2CLK_1_0 0x02000000 // L2 clock ratio 1
283#define L2CR_L2CLK_1_5 0x04000000 // L2 clock ratio 1.5
284#define L2CR_L2CLK_2_0 0x08000000 // L2 clock ratio 2
285#define L2CR_L2CLK_2_5 0x0A000000 // L2 clock ratio 2.5
286#define L2CR_L2CLK_3_0 0x0C000000 // L2 clock ratio 3
287
288#define L2CR_RAM_FLOW_THRU_BURST 0x00000000 // L2 RAM type flow-through sync. burst SRAM
289#define L2CR_RAM_PIPELINE_BURST 0x01000000 // L2 RAM type pipelined sync. burst SRAM
290#define L2CR_RAM_PIPELINE_LATE 0x01800000 // L2 RAM type pipelined sync. late-write SRAM
291
292#define L2CR_L2DO 0x00400000 // Data only
293#define L2CR_L2I 0x00200000 // Global invalidate
294#define L2CR_L2CTL 0x00100000 // ZZ enable
295#define L2CR_L2WT 0x00080000 // L2 write through
296#define L2CR_L2TS 0x00040000 // L2 test support
297
298#define L2CR_L2OH_0_5 0x00000000 // L2 output hold 0.5 ns
299#define L2CR_L2OH_1_0 0x00010000 // L2 output hold 1.0 ns
300
301#define L2CR_L2SL 0x00008000 // L2 DLL slow
302#define L2CR_L2DF 0x00004000 // L2 differential clock
303#define L2CR_L2BYP 0x00002000 // L2 DLL bypass
304#define L2CR_L2CS 0x00000200 // L2 clock stop
305#define L2CR_L2DRO 0x00000100 // L2 DLL rollover checkstop enable
306#define L2CR_L2CTR_MASK 0x000000FE // L2 counter value mask
307#define L2CR_L2IP 0x00000001 // L2 global invalidate in progress
308
309#define MMCR0_DIS 0x80000000 // Disables counting unconditionally
310#define MMCR0_DP 0x40000000 // Disables counting while in supervisor mode
311#define MMCR0_DU 0x20000000 // Disables counting while in user mode
312#define MMCR0_DMS 0x10000000 // Disables counting while MSR[PM] is set
313#define MMCR0_DMR 0x08000000 // Disables counting while MSR[PM] is zero
314#define MMCR0_ENINT 0x04000000 // Enables performance monitor interrupt signaling
315#define MMCR0_DISCOUNT 0x02000000 // Disables counting of PMCn when a performance monitor interrupt is signaled or...
316#define MMCR0_RTCSELECT_MASK 0x01800000 // 64-bit time base, bit selection enable
317#define MMCR0_RTCSELECT_63 0x00000000 // Pick bit 63 to count
318#define MMCR0_RTCSELECT_55 0x00800000 // Pick bit 55 to count
319#define MMCR0_RTCSELECT_51 0x01000000 // Pick bit 51 to count
320#define MMCR0_RTCSELECT_47 0x01800000 // Pick bit 47 to count
321#define MMCR0_INTONBITTRANS 0x00400000 // Causes interrupt signaling on bit transition from off to on
322#define MMCR0_THRESHOLD_MASK 0x003F0000 // Threshold value
323#define MMCR0_THRESHOLD(n) ((n) << 16) // Threshold value (0 - 63)
324#define MMCR0_PMC1INTCONTROL 0x00008000 // Enables interrupt signaling due to PMC1 counter overflow
325#define MMCR0_PMC2INTCONTROL 0x00004000 // Enables interrupt signaling due to PMC2-PMC4 counter overflow
326#define MMCR0_PMCTRIGGER 0x00002000 // Can be used to trigger counting of PMC2-PMC4 after PMC1 has overflowed or...
327#define MMCR0_PMC1SELECT_MASK 0x00001FC0 // PMC1 input selector
328#define MMCR0_PMC2SELECT_MASK 0x0000003F // PMC2 input selector
329
330#define MMCR1_PMC3SELECT_MASK 0xF8000000 // PMC3 input selector
331#define MMCR1_PMC4SELECT_MASK 0x07C00000 // PMC4 input selector
332
333#define PMC1_OV 0x80000000 // Overflow
334#define PMC1_COUNTER 0x7FFFFFFF // Counter value
335#define PMC2_OV 0x80000000 // Overflow
336#define PMC2_COUNTER 0x7FFFFFFF // Counter value
337#define PMC3_OV 0x80000000 // Overflow
338#define PMC3_COUNTER 0x7FFFFFFF // Counter value
339#define PMC4_OV 0x80000000 // Overflow
340#define PMC4_COUNTER 0x7FFFFFFF // Counter value
341
342/*---------------------------------------------------------------------------*
343 PMC1 Events
344 *---------------------------------------------------------------------------*/
345#define MMCR0_PMC1_HOLD 0x00000000 // Register holds current value
346#define MMCR0_PMC1_CYCLE 0x00000040 // Processor cycles
347#define MMCR0_PMC1_INSTRUCTION 0x00000080 // # of instructions completed.
348#define MMCR0_PMC1_TRANSITION 0x000000C0 // # of transitions for 0 to 1
349#define MMCR0_PMC1_DISPATCHED 0x00000100 // # of instructions dispatched
350#define MMCR0_PMC1_EIEIO 0x00000140 // # of eieio instructions completed
351#define MMCR0_PMC1_ITLB_CYCLE 0x00000180 // # of cycles spent performing table search op. for the ITLB
352#define MMCR0_PMC1_L2_HIT 0x000001C0 // # of access that hit the L2.
353#define MMCR0_PMC1_EA 0x00000200 // # of valid instruction EAs delivered to the memory subsystem
354#define MMCR0_PMC1_IABR 0x00000240 // # of time the address of an instruction matches the IABR
355#define MMCR0_PMC1_L1_MISS 0x00000280 // # of loads that miss the L1
356#define MMCR0_PMC1_Bx_UNRESOLVED 0x000002C0 // # of branches that are unresolved when processed
357#define MMCR0_PMC1_Bx_STALL_CYCLE 0x00000300 // # of cycles that dispatcher stalls due to a second
358 // unresolved branch in the instruction stream
359#define MMCR0_PMC1_IC_FETCH_MISS 0x00000340 // # of times an instruction fetch missed the L1 Icache
360#define MMCR0_PMC2_HOLD 0x00000000 // Register holds current value
361#define MMCR0_PMC2_CYCLE 0x00000001 // Processor cycles
362#define MMCR0_PMC2_INSTRUCTION 0x00000002 // # of instructions completed
363#define MMCR0_PMC2_TRANSITION 0x00000003 // # of time-base (lower) bit transitions
364#define MMCR0_PMC2_DISPATCHED 0x00000004 // # of instructions dispatched
365#define MMCR0_PMC2_IC_MISS 0x00000005 // # of L1 instruction cache misses
366#define MMCR0_PMC2_ITLB_MISS 0x00000006 // # of ITLB misses
367#define MMCR0_PMC2_L2_I_MISS 0x00000007 // # of L2 instruction misses
368#define MMCR0_PMC2_Bx_FALL_TROUGH 0x00000008 // # of fall-through branches
369#define MMCR0_PMC2_PR_SWITCH 0x00000009 // # of MSR[PR] bit toggles
370#define MMCR0_PMC2_RESERVED_LOAD 0x0000000A // # of reserved loads completed
371#define MMCR0_PMC2_LOAD_STORE 0x0000000B // # of completed loads and stores
372#define MMCR0_PMC2_SNOOP 0x0000000C // # of snoops
373#define MMCR0_PMC2_L1_CASTOUT 0x0000000D // # of L1 castouts to L2
374#define MMCR0_PMC2_SYSTEM 0x0000000E // # of completed system unit instructions
375#define MMCR0_PMC2_IC_FETCH_MISS 0x0000000F // # of instruction fetch misses in the L1
376#define MMCR0_PMC2_Bx_OUT_OF_ORDER 0x00000010 // # of branches allowing out-of-order execution
377
378/*---------------------------------------------------------------------------*
379 PMC3 Events
380 *---------------------------------------------------------------------------*/
381#define MMCR1_PMC3_HOLD 0x00000000 // Register holds current value
382#define MMCR1_PMC3_CYCLE 0x08000000 // Processor cycles
383#define MMCR1_PMC3_INSTRUCTION 0x10000000 // # of instructions completed
384#define MMCR1_PMC3_TRANSITION 0x18000000 // # of time-base (lower) bit transitions
385#define MMCR1_PMC3_DISPATCHED 0x20000000 // # of instructions dispatched
386#define MMCR1_PMC3_DC_MISS 0x28000000 // # of L1 data cache misses
387#define MMCR1_PMC3_DTLB_MISS 0x30000000 // # of DTLB misses
388#define MMCR1_PMC3_L2_D_MISS 0x38000000 // # of L2 data misses
389#define MMCR1_PMC3_Bx_TAKEN 0x40000000 // # predicted branches that were taken
390#define MMCR1_PMC3_PM_SWITCH 0x48000000 // # of transitions between marked and unmarked processes
391#define MMCR1_PMC3_COND_STORE 0x50000000 // # of store conditional instructions completed
392#define MMCR1_PMC3_FPU 0x58000000 // # of instructions completed from the FPU
393#define MMCR1_PMC3_L2_SNOOP_CASTOUT 0x60000000 // # of L2 castout caused by snoops to modified lines
394#define MMCR1_PMC3_L2_HIT 0x68000000 // # of cache operations that hit in the L2 cache
395#define MMCR1_PMC3_L1_MISS_CYCLE 0x78000000 // # of cycles generated by L1 load misses
396#define MMCR1_PMC3_Bx_SECOND 0x80000000 // # of branches in the second speculative branch
397 // resolved correctly
398#define MMCR1_PMC3_BPU_LR_CR 0x88000000 // # of cycles the BPU stalls due to LR or CR unresolved
399 // dependencies
400
401#define MMCR1_PMC4_HOLD 0x00000000 // Register holds current value
402#define MMCR1_PMC4_CYCLE 0x00400000 // Processor cycles
403#define MMCR1_PMC4_INSTRUCTION 0x00800000 // # of instructions completed
404#define MMCR1_PMC4_TRANSITION 0x00C00000 // # of time-base (lower) bit transitions
405#define MMCR1_PMC4_DISPATCHED 0x01000000 // # of instructions dispatched
406#define MMCR1_PMC4_L2_CASTOUT 0x01400000 // # of L2 castouts
407#define MMCR1_PMC4_DTLB_CYCLE 0x01800000 // # of cycles spent performing table searches for DTLB accesses
408#define MMCR1_PMC4_Bx_MISSED 0x02000000 // # of mispredicted branches
409#define MMCR1_PMC4_COND_STORE_INT 0x02800000 // # of store conditional instructions completed
410 // with reservation intact
411#define MMCR1_PMC4_SYNC 0x02C00000 // # of completed sync instructions
412#define MMCR1_PMC4_SNOOP_RETRY 0x03000000 // # of snoop request retries
413#define MMCR1_PMC4_INTEGER 0x03400000 // # of completed integer operations
414#define MMCR1_PMC4_BPU_THIRD 0x03800000 // # of cycles the BPU cannot process new branches
415 // due to having two unresolved branches
416#define MMCR1_PMC4_DC_MISS 0x07C00000 // # of L1 data cache misses
417
418/*---------------------------------------------------------------------------*
419 FPSCR bits
420 *---------------------------------------------------------------------------*/
421#ifndef FPSCR_FX
422#define FPSCR_FX 0x80000000 // Exception summary
423#define FPSCR_FEX 0x40000000 // Enabled exception summary
424#define FPSCR_VX 0x20000000 // Invalid operation
425#define FPSCR_OX 0x10000000 // Overflow exception
426#define FPSCR_UX 0x08000000 // Underflow exception
427#define FPSCR_ZX 0x04000000 // Zero divide exception
428#define FPSCR_XX 0x02000000 // Inexact exception
429#define FPSCR_VXSNAN 0x01000000 // SNaN
430#define FPSCR_VXISI 0x00800000 // Infinity - Infinity
431#define FPSCR_VXIDI 0x00400000 // Infinity / Infinity
432#define FPSCR_VXZDZ 0x00200000 // 0 / 0
433#define FPSCR_VXIMZ 0x00100000 // Infinity * 0
434#define FPSCR_VXVC 0x00080000 // Invalid compare
435#define FPSCR_FR 0x00040000 // Fraction rounded
436#define FPSCR_FI 0x00020000 // Fraction inexact
437#define FPSCR_VXSOFT 0x00000400 // Software request
438#define FPSCR_VXSQRT 0x00000200 // Invalid square root
439#define FPSCR_VXCVI 0x00000100 // Invalid integer convert
440#define FPSCR_VE 0x00000080 // Invalid operation exception enable
441#define FPSCR_OE 0x00000040 // Overflow exception enable
442#define FPSCR_UE 0x00000020 // Underflow exception enable
443#define FPSCR_ZE 0x00000010 // Zero divide exception enable
444#define FPSCR_XE 0x00000008 // Inexact exception enable
445#define FPSCR_NI 0x00000004 // Non-IEEE mode
446#endif
447
448#ifndef FPSCR_FX_BIT
449#define FPSCR_FX_BIT 0 // Exception summary
450#define FPSCR_FEX_BIT 1 // Enabled exception summary
451#define FPSCR_VX_BIT 2 // Invalid operation
452#define FPSCR_OX_BIT 3 // Overflow exception
453#define FPSCR_UX_BIT 4 // Underflow exception
454#define FPSCR_ZX_BIT 5 // Zero divide exception
455#define FPSCR_XX_BIT 6 // Inexact exception
456#define FPSCR_VXSNAN_BIT 7 // SNaN
457#define FPSCR_VXISI_BIT 8 // Infinity - Infinity
458#define FPSCR_VXIDI_BIT 9 // Infinity / Infinity
459#define FPSCR_VXZDZ_BIT 10 // 0 / 0
460#define FPSCR_VXIMZ_BIT 11 // Infinity * 0
461#define FPSCR_VXVC_BIT 12 // Invalid compare
462#define FPSCR_FR_BIT 13 // Fraction rounded
463#define FPSCR_FI_BIT 14 // Fraction inexact
464#define FPSCR_VXSOFT_BIT 21 // Software request
465#define FPSCR_VXSQRT_BIT 22 // Invalid square root
466#define FPSCR_VXCVI_BIT 23 // Invalid integer convert
467#define FPSCR_VE_BIT 24 // Invalid operation exception enable
468#define FPSCR_OE_BIT 25 // Overflow exception enable
469#define FPSCR_UE_BIT 26 // Underflow exception enable
470#define FPSCR_ZE_BIT 27 // Zero divide exception enable
471#define FPSCR_XE_BIT 28 // Inexact exception enable
472#define FPSCR_NI_BIT 29 // Non-IEEE mode
473#endif
474
475// PPCArch.c
477void PPCMtmsr(u32 newMSR);
480void PPCMthid0(u32 newHID0);
482void PPCMtl2cr(u32 newL2cr);
483void PPCMtdec(u32 newDec);
484void PPCSync();
485void PPCHalt();
487void PPCMtfpscr(u32 newFPSCR);
489void PPCMthid2(u32 newhid2);
491void PPCMtwpar(u32 newwpar);
499void PPCMtpmc1(u32 newPmc1);
500void PPCMtpmc2(u32 newPmc1);
501void PPCMtpmc3(u32 newPmc1);
502void PPCMtpmc4(u32 newPmc1);
503void PPCMtmmcr0(u32 newMmcr0);
504void PPCMtmmcr1(u32 newMmcr0);
505void PPCMtdmaU(u32 newdmau);
506void PPCMtdmaL(u32 newdmal);
511void PPCEieio();
516void PPCMtsia(u32 newSia);
520
521// PPCPm.c
522void PMBegin(void);
523void PMEnd(void);
524void PMCycles(void);
526void PML1MissCycles(void);
527void PMInstructions(void);
528
529#ifdef __cplusplus
530}
531#endif
532
533#endif // _DOLPHIN_PPCARCH
void PPCMtfpscr(u32 newFPSCR)
u32 PPCMfpmc1()
void PPCDisableSpeculation()
u32 PPCAndMsr(u32 value)
u32 PPCMffpscr()
void PMInstructions(void)
u32 PPCMfl2cr()
u32 PPCMfsia()
u32 PPCOrMsr(u32 value)
void PPCMtdec(u32 newDec)
u32 PPCAndCMsr(u32 value)
void PPCMtmsr(u32 newMSR)
void PPCMtmmcr1(u32 newMmcr0)
void PMEnd(void)
u32 PPCMfdec(void)
void PPCMtwpar(u32 newwpar)
u32 PPCMfwpar()
void PMBegin(void)
void PPCMtpmc4(u32 newPmc1)
u32 PPCMfpmc2()
u32 PPCMfdmaU()
u32 PPCMfhid2()
void PMCycles(void)
void PML1FetchMisses(void)
void PML1MissCycles(void)
u32 PPCMfdmaL()
u32 PPCMfpmc3()
u32 PPCMfpmc4()
u32 PPCMfmmcr0()
u32 PPCMfhid0()
void PPCMthid0(u32 newHID0)
void PPCMtpmc2(u32 newPmc1)
void PPCSync()
void PPCMtpmc3(u32 newPmc1)
void PPCEieio()
void PPCMtmmcr0(u32 newMmcr0)
u32 PPCMfmsr()
u32 PPCMfpvr()
void PPCMtsia(u32 newSia)
void PPCSetFpIEEEMode()
void PPCSetFpNonIEEEMode()
void PPCHalt()
u32 PPCMfhid1()
void PPCMthid2(u32 newhid2)
void PPCMtdmaL(u32 newdmal)
void PPCMtpmc1(u32 newPmc1)
u32 PPCMfmmcr1()
void PPCEnableSpeculation()
void PPCMtdmaU(u32 newdmau)
void PPCMtl2cr(u32 newL2cr)
unsigned long u32
Definition types.h:9
Definition PPCArch.h:253
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
Definition PPCArch.h:240
u32 dmaLenU
Definition PPCArch.h:242
u32 memAddr
Definition PPCArch.h:241
Definition PPCArch.h:211
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
Definition PPCArch.h:263
u32 val
Definition PPCArch.h:264
PPC_DMA_L_t f
Definition PPCArch.h:265
Definition PPCArch.h:246
PPC_DMA_U_t f
Definition PPCArch.h:248
u32 val
Definition PPCArch.h:247
Definition PPCArch.h:223
u32 val
Definition PPCArch.h:224
PPC_GQR_t f
Definition PPCArch.h:225