Nugget
Loading...
Searching...
No Matches
Macros
load-timings.c File Reference
#include "common/hardware/counters.h"
#include "common/syscalls/syscalls.h"
#include "exotic/cester.h"
Include dependency graph for load-timings.c:

Macros

#define PCSX_TESTS   0
 
#define CESTER_MAYBE_TEST   CESTER_TEST
 
#define CESTER_NO_SIGNAL
 
#define CESTER_NO_TIME
 
#define EXIT_SUCCESS   0
 
#define EXIT_FAILURE   1
 
#define N_READS   256
 
#define N_LOADS   32
 
#define REP4(x)   x x x x
 
#define REP16(x)   REP4(x) REP4(x) REP4(x) REP4(x)
 
#define REP32(x)   REP16(x) REP16(x)
 
#define REP64(x)   REP16(x) REP16(x) REP16(x) REP16(x)
 
#define REP256(x)   REP64(x) REP64(x) REP64(x) REP64(x)
 
#define ADDR_SCRATCH   0x1f800000u /* scratchpad SRAM (fast on-chip, no bus) */
 
#define ADDR_ISTAT   0xbf801070u /* on-die MMIO: interrupt controller I_STAT */
 
#define ADDR_DMA   0xbf8010a0u /* on-die MMIO: DMA channel 2 MADR */
 
#define ADDR_RAM_C   0x80100000u /* main RAM, cached mirror (KSEG0) */
 
#define ADDR_RAM_U   0xa0100000u /* main RAM, uncached mirror (KSEG1) */
 
#define ADDR_BIOS   0xbfc00000u /* BIOS ROM (KSEG1) */
 
#define MAKE_SPACED(name, seq)
 
#define BENCH(ret, fn, p)
 

Macro Definition Documentation

◆ ADDR_BIOS

#define ADDR_BIOS   0xbfc00000u /* BIOS ROM (KSEG1) */

◆ ADDR_DMA

#define ADDR_DMA   0xbf8010a0u /* on-die MMIO: DMA channel 2 MADR */

◆ ADDR_ISTAT

#define ADDR_ISTAT   0xbf801070u /* on-die MMIO: interrupt controller I_STAT */

◆ ADDR_RAM_C

#define ADDR_RAM_C   0x80100000u /* main RAM, cached mirror (KSEG0) */

◆ ADDR_RAM_U

#define ADDR_RAM_U   0xa0100000u /* main RAM, uncached mirror (KSEG1) */

◆ ADDR_SCRATCH

#define ADDR_SCRATCH   0x1f800000u /* scratchpad SRAM (fast on-chip, no bus) */

◆ BENCH

#define BENCH (   ret,
  fn,
 
)
Value:
uint32_t ret; do { \
uint32_t best = 0xffffu; \
for (int i = 0; i < 8; i++) { \
uint32_t d = fn(p); \
if (d < best) best = d; \
} \
ret = best; \
} while (0);
int i
Definition gte-regio.c:287
static int ret
Definition syscalls.h:73
void uint32_t(classId, spec)

◆ CESTER_MAYBE_TEST

#define CESTER_MAYBE_TEST   CESTER_TEST

◆ CESTER_NO_SIGNAL

#define CESTER_NO_SIGNAL

◆ CESTER_NO_TIME

#define CESTER_NO_TIME

◆ EXIT_FAILURE

#define EXIT_FAILURE   1

◆ EXIT_SUCCESS

#define EXIT_SUCCESS   0

◆ MAKE_SPACED

#define MAKE_SPACED (   name,
  seq 
)
Value:
static __attribute__((always_inline)) uint32_t name(volatile void *p) { \
register uint32_t sink; \
uint16_t before, after; \
before = COUNTERS[2].value; \
__asm__ volatile(REP32(seq) : "=&r"(sink) : "r"(p) : "memory"); \
after = COUNTERS[2].value; \
(void)sink; \
return (uint16_t)(after - before); \
}
#define COUNTERS
Definition counters.h:40
fptr __preinit_array_start[] __attribute__((weak))
Definition cxxglue.c:76
#define REP32(x)
Definition load-timings.c:88
void void(ptr, size)
uint16_t before
Definition timers.c:145
int after
Definition timers.c:150

◆ N_LOADS

#define N_LOADS   32

◆ N_READS

#define N_READS   256

◆ PCSX_TESTS

#define PCSX_TESTS   0

◆ REP16

#define REP16 (   x)    REP4(x) REP4(x) REP4(x) REP4(x)

◆ REP256

#define REP256 (   x)    REP64(x) REP64(x) REP64(x) REP64(x)

◆ REP32

#define REP32 (   x)    REP16(x) REP16(x)

◆ REP4

#define REP4 (   x)    x x x x

◆ REP64

#define REP64 (   x)    REP16(x) REP16(x) REP16(x) REP16(x)