b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | --- a/include/my_cpu.h |
| 2 | +++ b/include/my_cpu.h |
| 3 | @@ -24,17 +24,16 @@ |
| 4 | */ |
| 5 | |
| 6 | #ifdef _ARCH_PWR8 |
| 7 | -#include <sys/platform/ppc.h> |
| 8 | /* Very low priority */ |
| 9 | -#define HMT_very_low() __ppc_set_ppr_very_low() |
| 10 | +#define HMT_very_low() asm volatile("or 31,31,31") |
| 11 | /* Low priority */ |
| 12 | -#define HMT_low() __ppc_set_ppr_low() |
| 13 | +#define HMT_low() asm volatile ("or 1,1,1") |
| 14 | /* Medium low priority */ |
| 15 | -#define HMT_medium_low() __ppc_set_ppr_med_low() |
| 16 | +#define HMT_medium_low() asm volatile ("or 6,6,6") |
| 17 | /* Medium priority */ |
| 18 | -#define HMT_medium() __ppc_set_ppr_med() |
| 19 | +#define HMT_medium() asm volatile ("or 2,2,2") |
| 20 | /* Medium high priority */ |
| 21 | -#define HMT_medium_high() __ppc_set_ppr_med_high() |
| 22 | +#define HMT_medium_high() asm volatile("or 5,5,5") |
| 23 | /* High priority */ |
| 24 | #define HMT_high() asm volatile("or 3,3,3") |
| 25 | #else |
| 26 | @@ -80,7 +79,7 @@ static inline void MY_RELAX_CPU(void) |
| 27 | __asm__ __volatile__ ("pause"); |
| 28 | #endif |
| 29 | #elif defined(_ARCH_PWR8) |
| 30 | - __ppc_get_timebase(); |
| 31 | + __builtin_ppc_get_timebase(); |
| 32 | #elif defined __GNUC__ && (defined __arm__ || defined __aarch64__) |
| 33 | /* Mainly, prevent the compiler from optimizing away delay loops */ |
| 34 | __asm__ __volatile__ ("":::"memory"); |
| 35 | --- a/storage/tokudb/PerconaFT/portability/toku_time.h |
| 36 | +++ b/storage/tokudb/PerconaFT/portability/toku_time.h |
| 37 | @@ -124,7 +124,7 @@ static inline tokutime_t toku_time_now(v |
| 38 | __asm __volatile__ ("mrs %[rt], cntvct_el0" : [rt] "=r" (result)); |
| 39 | return result; |
| 40 | #elif defined(__powerpc__) |
| 41 | - return __ppc_get_timebase(); |
| 42 | + return __builtin_ppc_get_timebase(); |
| 43 | #else |
| 44 | #error No timer implementation for this platform |
| 45 | #endif |