PCNT_GPU,
PCNT_SPU,
PCNT_BLIT,
+ PCNT_GTE,
PCNT_TEST,
PCNT_CNT
};
#ifdef PCNT
-static const char *pcnt_names[PCNT_CNT] = { "", "gpu", "spu", "blit", "test" };
+static const char *pcnt_names[PCNT_CNT] = { "", "gpu", "spu", "blit", "gte", "test" };
#define PCNT_FRAMES 10
#endif
}
+void pcnt_gte_start(int op);
+void pcnt_gte_end(int op);
+
#else
#define pcnt_start(id)
hook_it(SPU_playCDDAchannel);
}
+// hooked into recompiler
+void pcnt_gte_start(int op)
+{
+ pcnt_start(PCNT_GTE);
+}
+
+void pcnt_gte_end(int op)
+{
+ pcnt_end(PCNT_GTE);
+}
+
#endif
static void c2op_prologue(u_int op,u_int reglist)
{
save_regs_all(reglist);
+#ifdef PCNT
+ emit_movimm(op,0);
+ emit_call((int)pcnt_gte_start);
+#endif
emit_addimm(FP,(int)&psxRegs.CP2D.r[0]-(int)&dynarec_local,0); // cop2 regs
}
static void c2op_epilogue(u_int op,u_int reglist)
{
+#ifdef PCNT
+ emit_movimm(op,0);
+ emit_call((int)pcnt_gte_end);
+#endif
restore_regs_all(reglist);
}
if (psxCP2[i] != psxNULL)
gte_handlers[i] = psxCP2[i];
-#if !defined(DRC_DBG) && !defined(PCNT)
+#if !defined(DRC_DBG)
#ifdef __arm__
gte_handlers[0x06] = gteNCLIP_arm;
gte_handlers_nf[0x01] = gteRTPS_nf_arm;