From 26c38de804ecb87eae7fbe6ac32dadebb7803b4d Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Fri, 1 Apr 2016 09:03:57 +1100 Subject: [PATCH] MDEV-8684: Use POWER wrappers rather than direct asm i.e. __ppc_set_ppr_low rather than 'or 1,1,1' --- configure.cmake | 5 +++-- storage/innobase/include/ut0ut.h | 5 +++-- storage/xtradb/include/ut0ut.h | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/configure.cmake b/configure.cmake index acb80965a64..5b8bc3688c7 100644 --- a/configure.cmake +++ b/configure.cmake @@ -857,10 +857,11 @@ IF(NOT CMAKE_CROSSCOMPILING AND NOT MSVC) ENDIF() IF (NOT HAVE_PAUSE_INSTRUCTION) CHECK_C_SOURCE_COMPILES(" + #include int main() { - __asm__ __volatile__ (\"or 1,1,1\"); - __asm__ __volatile__ (\"or 2,2,2\"); + __ppc_set_ppr_low(); + __ppc_set_ppr_med(); return 0; } " HAVE_HMT_PRIORITY_INSTRUCTION) diff --git a/storage/innobase/include/ut0ut.h b/storage/innobase/include/ut0ut.h index 9ed1a87508c..1334a6000be 100644 --- a/storage/innobase/include/ut0ut.h +++ b/storage/innobase/include/ut0ut.h @@ -100,8 +100,9 @@ private: #define UT_COMPILER_BARRIER() __asm__ __volatile__ ("":::"memory") # if defined(HAVE_HMT_PRIORITY_INSTRUCTION) -# define UT_LOW_PRIORITY_CPU() __asm__ __volatile__ ("or 1,1,1") -# define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2") +#include +# define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low() +# define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med() # else # define UT_LOW_PRIORITY_CPU() ((void)0) # define UT_RESUME_PRIORITY_CPU() ((void)0) diff --git a/storage/xtradb/include/ut0ut.h b/storage/xtradb/include/ut0ut.h index 328ccdf7430..722acdb607e 100644 --- a/storage/xtradb/include/ut0ut.h +++ b/storage/xtradb/include/ut0ut.h @@ -97,8 +97,9 @@ private: #define UT_COMPILER_BARRIER() __asm__ __volatile__ ("":::"memory") # if defined(HAVE_HMT_PRIORITY_INSTRUCTION) -# define UT_LOW_PRIORITY_CPU() __asm__ __volatile__ ("or 1,1,1") -# define UT_RESUME_PRIORITY_CPU() __asm__ __volatile__ ("or 2,2,2") +#include +# define UT_LOW_PRIORITY_CPU() __ppc_set_ppr_low() +# define UT_RESUME_PRIORITY_CPU() __ppc_set_ppr_med() # else # define UT_LOW_PRIORITY_CPU() ((void)0) # define UT_RESUME_PRIORITY_CPU() ((void)0)