notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drc: implement literal dupe merging
[pcsx_rearmed.git]
/
libpcsxcore
/
new_dynarec
/
emu_if.c
diff --git
a/libpcsxcore/new_dynarec/emu_if.c
b/libpcsxcore/new_dynarec/emu_if.c
index
39bbf2a
..
6957689
100644
(file)
--- a/
libpcsxcore/new_dynarec/emu_if.c
+++ b/
libpcsxcore/new_dynarec/emu_if.c
@@
-116,17
+116,17
@@
void gen_interupt()
// from interpreter
extern void MTC0(int reg, u32 val);
// from interpreter
extern void MTC0(int reg, u32 val);
-void pcsx_mtc0(u32 reg)
+void pcsx_mtc0(u32 reg
, u32 val
)
{
{
- evprintf("MTC0 %d #%x @%08x %u\n", reg,
readmem_word
, psxRegs.pc, psxRegs.cycle);
- MTC0(reg,
readmem_word
);
+ evprintf("MTC0 %d #%x @%08x %u\n", reg,
val
, psxRegs.pc, psxRegs.cycle);
+ MTC0(reg,
val
);
gen_interupt();
}
gen_interupt();
}
-void pcsx_mtc0_ds(u32 reg)
+void pcsx_mtc0_ds(u32 reg
, u32 val
)
{
{
- evprintf("MTC0 %d #%x @%08x %u\n", reg,
readmem_word
, psxRegs.pc, psxRegs.cycle);
- MTC0(reg,
readmem_word
);
+ evprintf("MTC0 %d #%x @%08x %u\n", reg,
val
, psxRegs.pc, psxRegs.cycle);
+ MTC0(reg,
val
);
}
void new_dyna_save(void)
}
void new_dyna_save(void)
@@
-139,6
+139,8
@@
void new_dyna_restore(void)
int i;
for (i = 0; i < PSXINT_COUNT; i++)
event_cycles[i] = psxRegs.intCycle[i].sCycle + psxRegs.intCycle[i].cycle;
int i;
for (i = 0; i < PSXINT_COUNT; i++)
event_cycles[i] = psxRegs.intCycle[i].sCycle + psxRegs.intCycle[i].cycle;
+
+ new_dyna_pcsx_mem_load_state();
}
void *gte_handlers[64];
}
void *gte_handlers[64];
@@
-200,6
+202,9
@@
static int ari64_init()
gte_handlers[0x30] = gte_handlers_nf[0x30] = gteRTPT_neon;
gte_handlers[0x12] = gte_handlers_nf[0x12] = gteMVMVA_neon;
#endif
gte_handlers[0x30] = gte_handlers_nf[0x30] = gteRTPT_neon;
gte_handlers[0x12] = gte_handlers_nf[0x12] = gteMVMVA_neon;
#endif
+#endif
+#ifdef DRC_DBG
+ memcpy(gte_handlers_nf, gte_handlers, sizeof(gte_handlers_nf));
#endif
psxH_ptr = psxH;
#endif
psxH_ptr = psxH;
@@
-297,6
+302,8
@@
unsigned short hword;
unsigned char byte;
int pending_exception, stop;
unsigned int next_interupt;
unsigned char byte;
int pending_exception, stop;
unsigned int next_interupt;
+int new_dynarec_did_compile;
+int cycle_multiplier;
void *psxH_ptr;
void new_dynarec_init() {}
void new_dyna_start() {}
void *psxH_ptr;
void new_dynarec_init() {}
void new_dyna_start() {}
@@
-306,6
+313,7
@@
void invalidate_all_pages() {}
void invalidate_block(unsigned int block) {}
void new_dyna_pcsx_mem_init(void) {}
void new_dyna_pcsx_mem_reset(void) {}
void invalidate_block(unsigned int block) {}
void new_dyna_pcsx_mem_init(void) {}
void new_dyna_pcsx_mem_reset(void) {}
+void new_dyna_pcsx_mem_load_state(void) {}
#endif
#ifdef DRC_DBG
#endif
#ifdef DRC_DBG