X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fpcnt.h;h=0213ca1210e66dc33b7076dc7806fe0a70801ad8;hp=232ae07766dc8db3815b528fd03ed57915c57f0a;hb=bab59f00112104919df591338e9601086f211ba1;hpb=fc42805bfb38d33e23b4eddb115cf9ab88a4345a diff --git a/frontend/pcnt.h b/frontend/pcnt.h index 232ae077..0213ca12 100644 --- a/frontend/pcnt.h +++ b/frontend/pcnt.h @@ -4,13 +4,14 @@ enum pcounters { 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 @@ -83,6 +84,22 @@ static inline unsigned int pcnt_get(void) return val; } +static inline void pcnt_init(void) +{ +#ifdef __ARM_ARCH_7A__ + int v; + asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(v)); + v |= 5; // master enable, ccnt reset + v &= ~8; // ccnt divider 0 + asm volatile("mcr p15, 0, %0, c9, c12, 0" :: "r"(v)); + // enable cycle counter + asm volatile("mcr p15, 0, %0, c9, c12, 1" :: "r"(1<<31)); +#endif +} + +void pcnt_gte_start(int op); +void pcnt_gte_end(int op); + #else #define pcnt_start(id)