mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
1b0b96665a
Co-authored-by: NWPlayer123 <NWPlayer123@users.noreply.github.com>
101 lines
4.3 KiB
C
101 lines
4.3 KiB
C
#ifndef PPCARCH_H
|
|
#define PPCARCH_H
|
|
#include "types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
u32 PPCMfmsr(void);
|
|
void PPCMtmsr(u32);
|
|
|
|
u32 PPCMfhid0(void);
|
|
void PPCMthid0(u32);
|
|
|
|
u32 PPCMfl2cr(void);
|
|
void PPCMtl2cr(u32);
|
|
|
|
void PPCMtdec(u32);
|
|
|
|
void PPCSync(void);
|
|
void PPCHalt(void);
|
|
|
|
u32 PPCMfhid2(void);
|
|
void PPCMthid2(u32);
|
|
|
|
|
|
void PPCMtwpar(u32);
|
|
|
|
void PPCDisableSpeculation(void);
|
|
void PPCSetFpNonIEEEMode(void);
|
|
|
|
#define HID0_EMCP 0x80000000u // Enable MCP
|
|
#define HID0_DBP 0x40000000u // Enable 60x bus address and data parity chk
|
|
#define HID0_EBA 0x20000000u // Enable 60x address parity checking
|
|
#define HID0_EBD 0x10000000u // Enable 60x data parity checking
|
|
#define HID0_BCLK 0x08000000u // CLK_OUT output enable and clk selection
|
|
#define HID0_ECLK 0x02000000u // CLK_OUT output enable and clk selection
|
|
#define HID0_PAR 0x01000000u // Disable !ARTRY precharge
|
|
#define HID0_DOZE 0x00800000u // Doze mode enable
|
|
#define HID0_NAP 0x00400000u // Nap mode enable
|
|
#define HID0_SLEEP 0x00200000u // Sleep mode enable
|
|
#define HID0_DPM 0x00100000u // Dynamic power management enable
|
|
#define HID0_NHR 0x00010000u // Not hard reset (0 hard reset if s/w set it)
|
|
#define HID0_ICE 0x00008000u // Instruction cache enable
|
|
#define HID0_DCE 0x00004000u // Data cache enable
|
|
#define HID0_ILOCK 0x00002000u // ICache lock
|
|
#define HID0_DLOCK 0x00001000u // DCache lock
|
|
#define HID0_ICFI 0x00000800u // ICache flash invalidate
|
|
#define HID0_DCFI 0x00000400u // DCache flash invalidate
|
|
#define HID0_SPD 0x00000200u // Speculative cache access enable (0 enable)
|
|
#define HID0_IFEM 0x00000100u // Enable M bit on bus for Ifetch
|
|
#define HID0_SGE 0x00000080u // Store gathering enable
|
|
#define HID0_DCFA 0x00000040u // DCache flush assist - set before a flush
|
|
#define HID0_BTIC 0x00000020u // Branch target icache enable
|
|
#define HID0_ABE 0x00000008u // Address bcast enable
|
|
#define HID0_BHT 0x00000004u // Branch history table enable
|
|
#define HID0_NOOPTI 0x00000001u // No-op Dcache touch instructions
|
|
|
|
#define HID2_DCHERR 0x00800000 // ERROR: dcbz_l cache hit
|
|
#define HID2_DNCERR 0x00400000 // ERROR: DMA access to normal cache
|
|
#define HID2_DCMERR 0x00200000 // ERROR: DMA cache miss error
|
|
#define HID2_DQOERR 0x00100000 // ERROR: DMA queue overflow
|
|
#define HID2_DCHEE 0x00080000 // dcbz_l cache hit error enable
|
|
#define HID2_DNCEE 0x00040000 // DMA access to normal cache error enable
|
|
#define HID2_DCMEE 0x00020000 // DMA cache miss error error enable
|
|
#define HID2_DQOEE 0x00010000 // DMA queue overflow error enable
|
|
|
|
#define SRR1_DMA_BIT 0x00200000
|
|
#define SRR1_L2DP_BIT 0x00100000
|
|
|
|
#define L2CR_L2E 0x80000000 // L2 Enable
|
|
#define L2CR_L2PE 0x40000000 // L2 data parity generation and checking enable
|
|
|
|
#define L2CR_L2DO 0x00400000 // Data only
|
|
#define L2CR_L2I 0x00200000 // Global invalidate
|
|
#define L2CR_L2CTL 0x00100000 // ZZ enable
|
|
#define L2CR_L2WT 0x00080000 // L2 write through
|
|
#define L2CR_L2TS 0x00040000 // L2 test support
|
|
|
|
#define MSR_POW 0x00040000 // Power Management
|
|
#define MSR_ILE 0x00010000 // Interrupt Little Endian
|
|
#define MSR_EE 0x00008000 // external interrupt
|
|
#define MSR_PR 0x00004000 // privilege level(should be 0)
|
|
#define MSR_FP 0x00002000 // floating point available
|
|
#define MSR_ME 0x00001000 // machine check enable
|
|
#define MSR_FE0 0x00000800 // floating point exception enable
|
|
#define MSR_SE 0x00000400 // single step trace enable
|
|
#define MSR_BE 0x00000200 // branch trace enable
|
|
#define MSR_FE1 0x00000100 // floating point exception enable
|
|
#define MSR_IP 0x00000040 // Exception prefix
|
|
#define MSR_IR 0x00000020 // instruction relocate
|
|
#define MSR_DR 0x00000010 // data relocate
|
|
#define MSR_PM 0x00000004 // Performance monitor marked mode
|
|
#define MSR_RI 0x00000002 // Recoverable interrupt
|
|
#define MSR_LE 0x00000001 // Little Endian
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|