PSP-EMU rev 57
Un emulador en c++ para SONY PSP
|
Definiciones de los struct que contienen los tipos de registros del procesador principal, así como los opcodes de los diferentes tipos de instrucciones. Más...
Ir al código fuente de este archivo.
Clases | |
union | tRegistroDoble |
union | tRegistroInst |
'defines' | |
#define | INST_ADD 0x20 |
#define | INST_ADDU 0x21 |
#define | INST_AND 0x24 |
#define | INST_BREAK 0x0D |
#define | INST_DIV 0x1A |
#define | INST_DIVU 0x1B |
#define | INST_JALR 0x09 |
#define | INST_JR 0x08 |
#define | INST_MASC_J 0xC0000000 |
#define | INST_MFHI 0x10 |
#define | INST_MFLO 0x12 |
#define | INST_MOVNZ 0x0B |
#define | INST_MOVZ 0x0A |
#define | INST_MTHI 0x11 |
#define | INST_MTLO 0x13 |
#define | INST_MULT 0x18 |
#define | INST_MULTU 0x19 |
#define | INST_NOP 0x00000000 |
#define | INST_NOR 0x27 |
#define | INST_OR 0x25 |
#define | INST_RIMM_BGEZ 0x01 |
#define | INST_RIMM_BGEZAL 0x11 |
#define | INST_RIMM_BGEZALL 0x13 |
#define | INST_RIMM_BGEZL 0x03 |
#define | INST_RIMM_BLTZ 0x00 |
#define | INST_RIMM_BLTZAL 0x10 |
#define | INST_RIMM_BLTZALL 0x12 |
#define | INST_RIMM_BLTZL 0x02 |
#define | INST_RIMM_TEQI 0x0C |
#define | INST_RIMM_TGEI 0x08 |
#define | INST_RIMM_TGEIU 0x09 |
#define | INST_RIMM_TLTI 0x0A |
#define | INST_RIMM_TLTIU 0x0B |
#define | INST_RIMM_TNEI 0x0E |
#define | INST_SLL 0x00 |
#define | INST_SLLV 0x04 |
#define | INST_SLT 0x2A |
#define | INST_SLTU 0x2B |
#define | INST_SRA 0x03 |
#define | INST_SRAV 0x07 |
#define | INST_SRL 0x02 |
#define | INST_SRLV 0x06 |
#define | INST_SUB 0x22 |
#define | INST_SUBU 0x23 |
#define | INST_SYNC 0x0F |
#define | INST_SYSCALL 0x0C |
#define | INST_TEQ 0x34 |
#define | INST_TGE 0x30 |
#define | INST_TGEU 0x31 |
#define | INST_TLT 0x32 |
#define | INST_TLTU 0x33 |
#define | INST_TNE 0x36 |
#define | INST_XOR 0x26 |
#define | NUM_OPCODES 64 |
#define | NUM_REG_GENERICOS 32 |
#define | REG_A0 4 |
#define | REG_A1 5 |
#define | REG_A2 6 |
#define | REG_A3 7 |
#define | REG_AT 1 |
#define | REG_FP 30 |
#define | REG_GP 28 |
#define | REG_K0 26 |
#define | REG_K1 27 |
#define | REG_RA 31 |
#define | REG_S0 16 |
#define | REG_S1 17 |
#define | REG_S2 18 |
#define | REG_S3 19 |
#define | REG_S4 20 |
#define | REG_S5 21 |
#define | REG_S6 22 |
#define | REG_S7 23 |
#define | REG_SP 29 |
#define | REG_T0 8 |
#define | REG_T1 9 |
#define | REG_T2 10 |
#define | REG_T3 11 |
#define | REG_T4 12 |
#define | REG_T5 13 |
#define | REG_T6 14 |
#define | REG_T7 15 |
#define | REG_T8 24 |
#define | REG_T9 25 |
#define | REG_V0 2 |
#define | REG_V1 3 |
#define | REG_VALOR_DEFECTO 0 |
#define | REG_VALOR_INICIAL_PC 0xBFC00000 |
#define | REG_VALOR_INICIAL_SP 0x7FFFEFFC |
#define | REG_ZR 0 |
#define | TAM_INSTRUCCION sizeof(tWord) |
#define | TAM_PIPLINE 2 |
'typedefs' | |
typedef uint32_t | tRegistro |
#define INST_ADD 0x20 |
#define INST_ADDU 0x21 |
#define INST_AND 0x24 |
#define INST_BREAK 0x0D |
#define INST_DIV 0x1A |
#define INST_DIVU 0x1B |
#define INST_JALR 0x09 |
#define INST_JR 0x08 |
#define INST_MASC_J 0xC0000000 |
Máscara para saltos
#define INST_MFHI 0x10 |
#define INST_MFLO 0x12 |
#define INST_MOVNZ 0x0B |
#define INST_MOVZ 0x0A |
#define INST_MTHI 0x11 |
#define INST_MTLO 0x13 |
#define INST_MULT 0x18 |
#define INST_MULTU 0x19 |
#define INST_NOP 0x00000000 |
#define INST_NOR 0x27 |
#define INST_OR 0x25 |
#define INST_RIMM_BGEZ 0x01 |
#define INST_RIMM_BGEZAL 0x11 |
#define INST_RIMM_BGEZALL 0x13 |
#define INST_RIMM_BGEZL 0x03 |
#define INST_RIMM_BLTZ 0x00 |
#define INST_RIMM_BLTZAL 0x10 |
#define INST_RIMM_BLTZALL 0x12 |
#define INST_RIMM_BLTZL 0x02 |
#define INST_RIMM_TEQI 0x0C |
#define INST_RIMM_TGEI 0x08 |
#define INST_RIMM_TGEIU 0x09 |
#define INST_RIMM_TLTI 0x0A |
#define INST_RIMM_TLTIU 0x0B |
#define INST_RIMM_TNEI 0x0E |
#define INST_SLL 0x00 |
#define INST_SLLV 0x04 |
#define INST_SLT 0x2A |
#define INST_SLTU 0x2B |
#define INST_SRA 0x03 |
#define INST_SRAV 0x07 |
#define INST_SRL 0x02 |
#define INST_SRLV 0x06 |
#define INST_SUB 0x22 |
#define INST_SUBU 0x23 |
#define INST_SYNC 0x0F |
#define INST_SYSCALL 0x0C |
#define INST_TEQ 0x34 |
#define INST_TGE 0x30 |
#define INST_TGEU 0x31 |
#define INST_TLT 0x32 |
#define INST_TLTU 0x33 |
#define INST_TNE 0x36 |
#define INST_XOR 0x26 |
#define NUM_OPCODES 64 |
Tipos diferentes de códigos de operación que existen
#define NUM_REG_GENERICOS 32 |
Número de registros genéricos tiene el procesador
#define REG_A0 4 |
#define REG_A1 5 |
#define REG_A2 6 |
#define REG_A3 7 |
#define REG_AT 1 |
#define REG_FP 30 |
#define REG_GP 28 |
#define REG_K0 26 |
#define REG_K1 27 |
#define REG_RA 31 |
#define REG_S0 16 |
#define REG_S1 17 |
#define REG_S2 18 |
#define REG_S3 19 |
#define REG_S4 20 |
#define REG_S5 21 |
#define REG_S6 22 |
#define REG_S7 23 |
#define REG_SP 29 |
#define REG_T0 8 |
#define REG_T1 9 |
#define REG_T2 10 |
#define REG_T3 11 |
#define REG_T4 12 |
#define REG_T5 13 |
#define REG_T6 14 |
#define REG_T7 15 |
#define REG_T8 24 |
#define REG_T9 25 |
#define REG_V0 2 |
#define REG_V1 3 |
#define REG_VALOR_DEFECTO 0 |
#define REG_VALOR_INICIAL_PC 0xBFC00000 |
#define REG_VALOR_INICIAL_SP 0x7FFFEFFC |
#define REG_ZR 0 |
#define TAM_INSTRUCCION sizeof(tWord) |
Tamaño de instrucción del procesador
#define TAM_PIPLINE 2 |
Tamaño del pipeline del procesador
typedef uint32_t tRegistro |
Definimos un registro del procesador