diff options
Diffstat (limited to 'libitm/config/powerpc')
-rw-r--r-- | libitm/config/powerpc/target.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/libitm/config/powerpc/target.h b/libitm/config/powerpc/target.h index 8288173..77652a6 100644 --- a/libitm/config/powerpc/target.h +++ b/libitm/config/powerpc/target.h @@ -81,7 +81,20 @@ cpu_relax (void) static inline bool htm_available (void) { - return (getauxval (AT_HWCAP2) & PPC_FEATURE2_HAS_HTM) ? true : false; +#ifdef __BUILTIN_CPU_SUPPORTS__ + if (__builtin_cpu_supports ("htm-no-suspend") + || __builtin_cpu_supports ("htm")) + return true; +#else + unsigned long htm_flags = PPC_FEATURE2_HAS_HTM +#ifdef PPC_FEATURE2_HTM_NO_SUSPEND + | PPC_FEATURE2_HTM_NO_SUSPEND +#endif + | 0; + if (getauxval (AT_HWCAP2) & htm_flags) + return true; +#endif + return false; } static inline uint32_t |