PSP-EMU rev 57
Un emulador en c++ para SONY PSP
|
00001 00008 #ifndef CCOP0DEFS_H_ 00009 #define CCOP0DEFS_H_ 00010 00011 #include "general_emu.h" 00012 #include "cAllegrexDefs.h" 00013 00014 /* REGISTROS */ 00015 00016 #define NUM_COP0_REGS 32 00017 00018 // Nombres de registros 00019 00020 #define COP0_REG_BADVADDR 8 00021 #define COP0_REG_COUNTER 9 00022 #define COP0_REG_COMPARE 11 00023 #define COP0_REG_STATUS 12 00024 #define COP0_REG_CAUSE 13 00025 #define COP0_REG_EPC 14 00026 #define COP0_REG_PRID 15 00027 #define COP0_REG_CONFIG 16 00028 #define COP0_REG_CONFIG1 17 00029 #define COP0_REG_TAGLO 28 00030 #define COP0_REG_TAGHI 29 00031 #define COP0_REG_ERROREPC 30 00032 00033 union tRegistroCop0 00034 { 00035 tRegistro valor; 00036 00037 struct 00038 { 00039 unsigned ie: 1; 00040 unsigned exl: 1; 00041 unsigned erl: 1; 00042 unsigned r0: 1; 00043 unsigned um: 1; 00044 unsigned ksu: 2; 00045 unsigned ux: 1; 00046 unsigned sx: 1; 00047 unsigned kx: 1; 00048 unsigned im0: 1; 00049 unsigned im1: 1; 00050 unsigned im2: 1; 00051 unsigned im3: 1; 00052 unsigned im4: 1; 00053 unsigned im5: 1; 00054 unsigned im6: 1; 00055 unsigned im7: 1; 00056 unsigned : 3; 00057 unsigned nmi: 1; 00058 unsigned sr: 1; 00059 unsigned ts: 1; 00060 unsigned bev: 1; 00061 unsigned px: 1; 00062 unsigned mx: 1; 00063 unsigned re: 1; 00064 unsigned fr: 1; 00065 unsigned rp: 1; 00066 unsigned cu0: 1; 00067 unsigned cu1: 1; 00068 unsigned cu2: 1; 00069 unsigned cu3: 1; 00070 } status; 00071 00072 struct 00073 { 00074 unsigned : 2; 00075 unsigned exc_code: 5; 00076 unsigned : 1; 00077 unsigned ip1: 2; 00078 unsigned ip0: 6; 00079 unsigned : 6; 00080 unsigned wp: 1; 00081 unsigned iv: 1; 00082 unsigned : 4; 00083 unsigned ce: 2; 00084 unsigned : 1; 00085 unsigned bd: 1; 00086 } cause; 00087 00088 struct 00089 { 00090 unsigned revision: 8; 00091 unsigned proc_id: 8; 00092 unsigned comp_id: 8; 00093 unsigned comp_op: 8; 00094 } prid; 00095 00096 struct 00097 { 00098 unsigned k0: 3; 00099 unsigned : 4; 00100 unsigned mt: 3; 00101 unsigned ar: 3; 00102 unsigned at: 2; 00103 unsigned be: 1; 00104 unsigned : 15; 00105 unsigned m: 1; 00106 } config; 00107 00108 struct 00109 { 00110 unsigned fp: 1; 00111 unsigned ep: 1; 00112 unsigned ca: 1; 00113 unsigned wr: 1; 00114 unsigned pc: 1; 00115 unsigned md: 1; 00116 unsigned c2: 1; 00117 unsigned da: 3; 00118 unsigned dl: 3; 00119 unsigned ds: 3; 00120 unsigned ia: 3; 00121 unsigned il: 3; 00122 unsigned is: 3; 00123 unsigned mmu_s: 6; 00124 unsigned m: 1; 00125 } config1; 00126 }; 00127 00128 #endif /* CCOP0DEFS_H_ */