ref: 2938d7ff4aed900360df017dbad86f16d3db1610
parent: cd1b22d7c135a90834e8b49fc1dc52777d6d3485
author: allkern <lisandroaalarcon@gmail.com>
date: Mon Jun 26 18:01:42 EDT 2023
Remove unnecessary CPU fetch
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -10,6 +10,8 @@
psx_cpu_t* g_cpu;
void sigint_handler(int sig) {+ log_set_quiet(0);
+
log_fatal("r0=%08x at=%08x v0=%08x v1=%08x", g_cpu->r[0] , g_cpu->r[1] , g_cpu->r[2] , g_cpu->r[3] ); log_fatal("a0=%08x a1=%08x a2=%08x a3=%08x", g_cpu->r[4] , g_cpu->r[5] , g_cpu->r[6] , g_cpu->r[7] ); log_fatal("t0=%08x t1=%08x t2=%08x t3=%08x", g_cpu->r[8] , g_cpu->r[9] , g_cpu->r[10], g_cpu->r[11]);@@ -30,7 +32,7 @@
psxe_cfg_load_defaults(cfg);
psxe_cfg_load(cfg, argc, argv);
- log_set_level(LOG_ERROR);
+ log_set_level(cfg->log_level);
signal(SIGINT, sigint_handler);
@@ -64,6 +66,8 @@
}
psx_cpu_t* cpu = psx_get_cpu(psx);
+
+ log_set_quiet(0);
log_fatal("r0=%08x at=%08x v0=%08x v1=%08x", cpu->r[0] , cpu->r[1] , cpu->r[2] , cpu->r[3] ); log_fatal("a0=%08x a1=%08x a2=%08x a3=%08x", cpu->r[4] , cpu->r[5] , cpu->r[6] , cpu->r[7] );--- a/psx/cpu.c
+++ b/psx/cpu.c
@@ -129,7 +129,7 @@
psx_cpu_i_bltzal , psx_cpu_i_bgezal , psx_cpu_i_invalid, psx_cpu_i_invalid
};
-#define OP ((cpu->buf[1] >> 26) & 0x3f)
+#define OP ((cpu->buf[1] >> 26) & 0x3f)
#define S ((cpu->buf[1] >> 21) & 0x1f)
#define T ((cpu->buf[1] >> 16) & 0x1f)
#define D ((cpu->buf[1] >> 11) & 0x1f)
@@ -208,15 +208,15 @@
cpu->load_d = 0;
#define DEBUG_ALL \
- log_debug("r0=%08x at=%08x v0=%08x v1=%08x", R_R0, R_AT, R_V0, R_V1); \- log_debug("a0=%08x a1=%08x a2=%08x a3=%08x", R_A0, R_A1, R_A2, R_A3); \- log_debug("t0=%08x t1=%08x t2=%08x t3=%08x", R_T0, R_T1, R_T2, R_T3); \- log_debug("t4=%08x t5=%08x t6=%08x t7=%08x", R_T4, R_T5, R_T6, R_T7); \- log_debug("s0=%08x s1=%08x s2=%08x s3=%08x", R_S0, R_S1, R_S2, R_S3); \- log_debug("s4=%08x s5=%08x s6=%08x s7=%08x", R_S4, R_S5, R_S6, R_S7); \- log_debug("t8=%08x t9=%08x k0=%08x k1=%08x", R_T8, R_T9, R_K0, R_K1); \- log_debug("gp=%08x sp=%08x fp=%08x ra=%08x", R_GP, R_SP, R_FP, R_RA); \- log_debug("pc=%08x hi=%08x lo=%08x l:%s=%08x", cpu->pc, cpu->hi, cpu->lo, g_mips_cc_register_names[cpu->load_d], cpu->load_v); \+ log_fatal("r0=%08x at=%08x v0=%08x v1=%08x", R_R0, R_AT, R_V0, R_V1); \+ log_fatal("a0=%08x a1=%08x a2=%08x a3=%08x", R_A0, R_A1, R_A2, R_A3); \+ log_fatal("t0=%08x t1=%08x t2=%08x t3=%08x", R_T0, R_T1, R_T2, R_T3); \+ log_fatal("t4=%08x t5=%08x t6=%08x t7=%08x", R_T4, R_T5, R_T6, R_T7); \+ log_fatal("s0=%08x s1=%08x s2=%08x s3=%08x", R_S0, R_S1, R_S2, R_S3); \+ log_fatal("s4=%08x s5=%08x s6=%08x s7=%08x", R_S4, R_S5, R_S6, R_S7); \+ log_fatal("t8=%08x t9=%08x k0=%08x k1=%08x", R_T8, R_T9, R_K0, R_K1); \+ log_fatal("gp=%08x sp=%08x fp=%08x ra=%08x", R_GP, R_SP, R_FP, R_RA); \+ log_fatal("pc=%08x hi=%08x lo=%08x l:%s=%08x", cpu->pc, cpu->hi, cpu->lo, g_mips_cc_register_names[cpu->load_d], cpu->load_v); \exit(1)
#define SE8(v) ((int32_t)((int8_t)v))
@@ -324,7 +324,6 @@
g_psx_cpu_primary_table[OP](cpu);
- // Interrupts not yet working
if ((cpu->cop0_sr & SR_IEC) && (cpu->cop0_cause & cpu->cop0_sr & SR_IM2)) {psx_cpu_exception(cpu, CAUSE_INT);
}
@@ -369,7 +368,7 @@
void psx_cpu_i_invalid(psx_cpu_t* cpu) { log_warn("%08x: Illegal instruction %08x", cpu->pc - 8, cpu->buf[1]);- psx_cpu_exception(cpu, CAUSE_RI);
+ //psx_cpu_exception(cpu, CAUSE_RI);
}
// Primary
@@ -945,7 +944,6 @@
cpu->pc = s;
}
-
void psx_cpu_i_syscall(psx_cpu_t* cpu) { TRACE_I20("syscall");@@ -1098,7 +1096,7 @@
DO_PENDING_LOAD;
- int32_t r = s - t;
+ uint32_t r = s - t;
// To-do: Check SUB overflow check
uint32_t o = (s ^ t) & (t & r);
--- a/psx/dev/gpu.c
+++ b/psx/dev/gpu.c
@@ -712,7 +712,7 @@
gpu->line++;
if (gpu->line == GPU_SCANS_PER_FRAME_NTSC) {- psx_ic_irq(gpu->ic, IC_VBLANK);
+ //psx_ic_irq(gpu->ic, IC_VBLANK);
gpu->line = 0;
} else {--- a/psx/psx.c
+++ b/psx/psx.c
@@ -106,7 +106,6 @@
psx_scratchpad_init(psx->scratchpad);
psx_gpu_init(psx->gpu, psx->ic);
psx_spu_init(psx->spu);
- psx_cpu_init(psx->cpu, psx->bus);
psx_timer_init(psx->timer);
psx_cdrom_init(psx->cdrom, psx->ic);
psx_pad_init(psx->pad);
@@ -113,7 +112,7 @@
psx_bios_load(psx->bios, bios_path);
- psx_cpu_fetch(psx->cpu);
+ psx_cpu_init(psx->cpu, psx->bus);
}
void psx_hard_reset(psx_t* psx) {--
⑨