X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Femu_if.c;h=4d6b6259f8ccaef41d96d2772b0da0a1db49708e;hp=d0b991e28620cf1d9289d366e577e5996ac1430b;hb=822b27d12f2c2a66f8de4ff7109f452048c5d899;hpb=666a299d761b91429d2952f55dac9270e0fb930e diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c index d0b991e2..4d6b6259 100644 --- a/libpcsxcore/new_dynarec/emu_if.c +++ b/libpcsxcore/new_dynarec/emu_if.c @@ -1,5 +1,5 @@ -// cycles after syscall/hle? // pending_exception? +// swi 0 in do_unalignedwritestub? #include #include "emu_if.h" @@ -27,22 +27,15 @@ void MTC0_() void gen_interupt() { evprintf("ari64_gen_interupt\n"); - evprintf(" +ge %08x, %d->%d\n", psxRegs.pc, Count, next_interupt); + evprintf(" +ge %08x, %d->%d\n", psxRegs.pc, psxRegs.cycle, next_interupt); #ifdef DRC_DBG psxRegs.cycle += 2; -#else - psxRegs.cycle = Count; // stupid #endif psxBranchTest(); - if (psxRegs.cycle != Count) { - printf("psxRegs.cycle != Count: %d != %d\n", psxRegs.cycle, Count); - Count = psxRegs.cycle; - } - - next_interupt = Count + psxNextCounter; - evprintf(" -ge %08x, %d->%d\n", psxRegs.pc, Count, next_interupt); + next_interupt = psxNextsCounter + psxNextCounter; + evprintf(" -ge %08x, %d->%d\n", psxRegs.pc, psxRegs.cycle, next_interupt); pending_exception = 1; /* FIXME */ } @@ -126,18 +119,12 @@ static void ari64_reset() static void ari64_execute() { - /* TODO: get rid of this cycle counter copying */ - Count = psxRegs.cycle; - next_interupt = Count + psxNextCounter; + next_interupt = psxNextsCounter + psxNextCounter; - evprintf("psxNextsCounter %d, psxNextCounter %d\n", psxNextsCounter, psxNextCounter); - evprintf("ari64_execute %08x, %d->%d\n", psxRegs.pc, Count, next_interupt); + evprintf("psxNextsCounter %d, psxNextCounter %d, Count %d\n", psxNextsCounter, psxNextCounter, psxRegs.CP0.r[9]); + evprintf("ari64_execute %08x, %d->%d\n", psxRegs.pc, psxRegs.cycle, next_interupt); new_dyna_start(psxRegs.pc); - evprintf("ari64_execute end %08x, %d->%d\n", psxRegs.pc, Count, next_interupt); - -#ifndef DRC_DBG - psxRegs.cycle = Count; -#endif + evprintf("ari64_execute end %08x, %d->%d\n", psxRegs.pc, psxRegs.cycle, next_interupt); } static void ari64_clear(u32 Addr, u32 Size)