PSP-EMU rev 57
Un emulador en c++ para SONY PSP

cCop0Defs.h

Ir a la documentación de este archivo.
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_ */
Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones 'defines'