-
Notifications
You must be signed in to change notification settings - Fork 82
Open
Description
Looks like there is no case of macOS here:
libretro-common/features/features_cpu.c
Lines 155 to 214 in 668749a
| retro_perf_tick_t cpu_features_get_perf_counter(void) | |
| { | |
| retro_perf_tick_t time_ticks = 0; | |
| #if defined(_WIN32) | |
| long tv_sec, tv_usec; | |
| #if defined(_MSC_VER) && _MSC_VER <= 1200 | |
| static const unsigned __int64 epoch = 11644473600000000; | |
| #else | |
| static const unsigned __int64 epoch = 11644473600000000ULL; | |
| #endif | |
| FILETIME file_time; | |
| SYSTEMTIME system_time; | |
| ULARGE_INTEGER ularge; | |
| GetSystemTime(&system_time); | |
| SystemTimeToFileTime(&system_time, &file_time); | |
| ularge.LowPart = file_time.dwLowDateTime; | |
| ularge.HighPart = file_time.dwHighDateTime; | |
| tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L); | |
| tv_usec = (long)(system_time.wMilliseconds * 1000); | |
| time_ticks = (1000000 * tv_sec + tv_usec); | |
| #elif defined(GEKKO) | |
| time_ticks = gettime(); | |
| #elif !defined(__MACH__) && !defined(__FreeBSD__) && (defined(_XBOX360) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) || defined(__PSL1GHT__) || defined(__PPC64__) || defined(__powerpc64__)) | |
| time_ticks = __mftb(); | |
| #elif (defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK > 0) || defined(__QNX__) || defined(ANDROID) | |
| struct timespec tv; | |
| if (ra_clock_gettime(CLOCK_MONOTONIC, &tv) == 0) | |
| time_ticks = (retro_perf_tick_t)tv.tv_sec * 1000000000 + | |
| (retro_perf_tick_t)tv.tv_nsec; | |
| #elif defined(__GNUC__) && defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(_M_X64) || defined(_M_AMD64) | |
| __asm__ volatile ("rdtsc" : "=A" (time_ticks)); | |
| #elif defined(__GNUC__) && defined(__x86_64__) || defined(_M_IX86) | |
| unsigned a, d; | |
| __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); | |
| time_ticks = (retro_perf_tick_t)a | ((retro_perf_tick_t)d << 32); | |
| #elif defined(__ARM_ARCH_6__) | |
| __asm__ volatile( "mrc p15, 0, %0, c9, c13, 0" : "=r"(time_ticks) ); | |
| #elif defined(__aarch64__) | |
| __asm__ volatile( "mrs %0, cntvct_el0" : "=r"(time_ticks) ); | |
| #elif defined(PSP) || defined(VITA) | |
| time_ticks = sceKernelGetSystemTimeWide(); | |
| #elif defined(ORBIS) | |
| sceRtcGetCurrentTick((SceRtcTick*)&time_ticks); | |
| #elif defined(PS2) | |
| time_ticks = ps2_clock(); | |
| #elif defined(_3DS) | |
| time_ticks = svcGetSystemTick(); | |
| #elif defined(WIIU) | |
| time_ticks = OSGetSystemTime(); | |
| #elif defined(HAVE_LIBNX) | |
| time_ticks = armGetSystemTick(); | |
| #elif defined(EMSCRIPTEN) | |
| time_ticks = emscripten_get_now() * 1000; | |
| #endif | |
| return time_ticks; | |
| } |
x86 and arm64 will use arch-specific cases, but for powerpc there is nothing, since macOS is excluded here:
libretro-common/features/features_cpu.c
Lines 179 to 180 in 668749a
| #elif !defined(__MACH__) && !defined(__FreeBSD__) && (defined(_XBOX360) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) || defined(__PSL1GHT__) || defined(__PPC64__) || defined(__powerpc64__)) | |
| time_ticks = __mftb(); |
Metadata
Metadata
Assignees
Labels
No labels