--- old/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp 2019-11-21 11:17:01.503430706 +0100 +++ new/src/hotspot/os_cpu/linux_ppc/orderAccess_linux_ppc.hpp 2019-11-21 11:17:01.075423835 +0100 @@ -68,8 +68,6 @@ #define inlasm_lwsync() __asm__ __volatile__ ("lwsync" : : : "memory"); #define inlasm_eieio() __asm__ __volatile__ ("eieio" : : : "memory"); #define inlasm_isync() __asm__ __volatile__ ("isync" : : : "memory"); -// Use twi-isync for load_acquire (faster than lwsync). -#define inlasm_acquire_reg(X) __asm__ __volatile__ ("twi 0,%0,0\n isync\n" : : "r" (X) : "memory"); inline void OrderAccess::loadload() { inlasm_lwsync(); } inline void OrderAccess::storestore() { inlasm_lwsync(); } @@ -82,17 +80,9 @@ inline void OrderAccess::cross_modify_fence() { inlasm_isync(); } -template -struct OrderAccess::PlatformOrderedLoad -{ - template - T operator()(const volatile T* p) const { T t = Atomic::load(p); inlasm_acquire_reg(t); return t; } -}; - #undef inlasm_sync #undef inlasm_lwsync #undef inlasm_eieio #undef inlasm_isync -#undef inlasm_acquire_reg #endif // OS_CPU_LINUX_PPC_ORDERACCESS_LINUX_PPC_HPP