diff --git a/libs/ardour/ardour/cycles.h b/libs/ardour/ardour/cycles.h index 035e966dc4..4d4920219e 100644 --- a/libs/ardour/ardour/cycles.h +++ b/libs/ardour/ardour/cycles.h @@ -72,13 +72,23 @@ static inline cycles_t get_cycles (void) #elif defined(__powerpc64__) +#ifdef __linux__ #include typedef uint64_t cycles_t; static inline cycles_t get_cycles(void) { return __ppc_get_timebase(); } - +#elif defined(__FreeBSD__) +typedef uint64_t cycles_t; +static inline cycles_t get_cycles(void) +{ + cycles_t tbr; + asm volatile("mfspr %0, 268" : "=r"(tbr)); + return tbr; +} +#endif + #elif defined(__powerpc__) #define CPU_FTR_601 0x00000100