mirror of https://github.com/zeldaret/tp.git
132 lines
2.0 KiB
C
132 lines
2.0 KiB
C
#ifndef PPC_GENERIC_TARGIMPL_H
|
|
#define PPC_GENERIC_TARGIMPL_H
|
|
|
|
#include "dolphin/types.h"
|
|
|
|
void TRKSwapAndGo();
|
|
void TRKTargetSetStopped(s32);
|
|
|
|
typedef struct Default_PPC {
|
|
u32 GPR[32];
|
|
u32 PC;
|
|
u32 LR;
|
|
u32 CR;
|
|
u32 CTR;
|
|
u32 XER;
|
|
} Default_PPC;
|
|
|
|
typedef struct Float_PPC {
|
|
u64 FPR[32];
|
|
u64 FPSCR;
|
|
u64 FPECR;
|
|
} Float_PPC;
|
|
|
|
typedef struct Extended1_PPC_6xx_7xx{
|
|
u32 SR[16];
|
|
u32 TBL;
|
|
u32 TBU;
|
|
u32 HID0;
|
|
u32 HID1;
|
|
u32 MSR;
|
|
u32 PVR;
|
|
u32 IBAT0U;
|
|
u32 IBAT0L;
|
|
u32 IBAT1U;
|
|
u32 IBAT1L;
|
|
u32 IBAT2U;
|
|
u32 IBAT2L;
|
|
u32 IBAT3U;
|
|
u32 IBAT3L;
|
|
u32 DBAT0U;
|
|
u32 DBAT0L;
|
|
u32 DBAT1U;
|
|
u32 DBAT1L;
|
|
u32 DBAT2U;
|
|
u32 DBAT2L;
|
|
u32 DBAT3U;
|
|
u32 DBAT3L;
|
|
u32 DMISS;
|
|
u32 DCMP;
|
|
u32 HASH1;
|
|
u32 HASH2;
|
|
u32 IMISS;
|
|
u32 ICMP;
|
|
u32 RPA;
|
|
u32 SDR1;
|
|
u32 DAR;
|
|
u32 DSISR;
|
|
u32 SPRG0;
|
|
u32 SPRG1;
|
|
u32 SPRG2;
|
|
u32 SPRG3;
|
|
u32 DEC;
|
|
u32 IABR;
|
|
u32 EAR;
|
|
u32 DABR;
|
|
u32 PMC1;
|
|
u32 PMC2;
|
|
u32 PMC3;
|
|
u32 PMC4;
|
|
u32 SIA;
|
|
u32 MMCR0;
|
|
u32 MMCR1;
|
|
u32 THRM1;
|
|
u32 THRM2;
|
|
u32 THRM3;
|
|
u32 ICTC;
|
|
u32 L2CR;
|
|
u32 UMMCR2;
|
|
u32 UBAMR;
|
|
u32 UMMCR0;
|
|
u32 UPMC1;
|
|
u32 UPMC2;
|
|
u32 USIA;
|
|
u32 UMMCR1;
|
|
u32 UPMC3;
|
|
u32 UPMC4;
|
|
u32 USDA;
|
|
u32 MMCR2;
|
|
u32 BAMR;
|
|
u32 SDA;
|
|
u32 MSSCR0;
|
|
u32 MSSCR1;
|
|
u32 PIR;
|
|
u32 exceptionID;
|
|
u32 GQR[8];
|
|
u32 HID_G;
|
|
u32 WPAR;
|
|
u32 DMA_U;
|
|
u32 DMA_L;
|
|
} Extended1_PPC_6xx_7xx;
|
|
|
|
typedef struct Extended2_PPC_6xx_7xx{
|
|
u32 PSR[32][2];
|
|
} Extended2_PPC_6xx_7xx;
|
|
|
|
typedef struct ProcessorState_PPC_6xx_7xx{
|
|
Default_PPC Default;
|
|
Float_PPC Float;
|
|
Extended1_PPC_6xx_7xx Extended1;
|
|
Extended2_PPC_6xx_7xx Extended2;
|
|
u32 transport_handler_saved_ra;
|
|
} ProcessorState_PPC_6xx_7xx;
|
|
|
|
typedef ProcessorState_PPC_6xx_7xx ProcessorState_PPC;
|
|
ProcessorState_PPC gTRKCPUState;
|
|
|
|
typedef struct TRKState {
|
|
/* 0x00 */ u32 GPR[32];
|
|
/* 0x80 */ u32 LR;
|
|
/* 0x84 */ u32 CTR;
|
|
/* 0x88 */ u32 XER;
|
|
/* 0x8C */ u32 MSR;
|
|
/* 0x90 */ u32 DAR;
|
|
/* 0x94 */ u32 DSISR;
|
|
/* 0x98 */ u32 stopped;
|
|
/* 0x9C */ u32 inputActivated;
|
|
/* 0xA0 */ void* inputPendingPtr;
|
|
} TRKState;
|
|
TRKState gTRKState;
|
|
|
|
#endif /* PPC_GENERIC_TARGIMPL_H */
|