Merge pull request #664 from bureddy/master
powerpc: update mem barrier instructions
Этот коммит содержится в:
Коммит
c78b8e9b8e
@ -63,6 +63,10 @@ static inline void opal_atomic_wmb(void)
|
|||||||
WMB();
|
WMB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,6 +66,10 @@ static inline void opal_atomic_wmb(void)
|
|||||||
MB();
|
MB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +88,11 @@ void opal_atomic_wmb(void)
|
|||||||
WMB();
|
WMB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,6 +75,10 @@ static inline void opal_atomic_wmb(void)
|
|||||||
MB();
|
MB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,6 +61,9 @@ static inline void opal_atomic_wmb(void)
|
|||||||
MB();
|
MB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
|
||||||
|
@ -74,6 +74,11 @@ void opal_atomic_wmb(void)
|
|||||||
WMB();
|
WMB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
@ -67,6 +67,10 @@ static inline void opal_atomic_wmb(void)
|
|||||||
MB();
|
MB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
*
|
*
|
||||||
* Atomic math operations
|
* Atomic math operations
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define MB() __asm__ __volatile__ ("sync" : : : "memory")
|
#define MB() __asm__ __volatile__ ("sync" : : : "memory")
|
||||||
#define RMB() __asm__ __volatile__ ("lwsync" : : : "memory")
|
#define RMB() __asm__ __volatile__ ("lwsync" : : : "memory")
|
||||||
#define WMB() __asm__ __volatile__ ("eieio" : : : "memory")
|
#define WMB() __asm__ __volatile__ ("eieio" : : : "memory")
|
||||||
|
#define ISYNC() __asm__ __volatile__ ("isync" : : : "memory")
|
||||||
#define SMP_SYNC "sync \n\t"
|
#define SMP_SYNC "sync \n\t"
|
||||||
#define SMP_ISYNC "\n\tisync"
|
#define SMP_ISYNC "\n\tisync"
|
||||||
|
|
||||||
@ -74,7 +75,13 @@ void opal_atomic_rmb(void)
|
|||||||
static inline
|
static inline
|
||||||
void opal_atomic_wmb(void)
|
void opal_atomic_wmb(void)
|
||||||
{
|
{
|
||||||
WMB();
|
RMB();
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
ISYNC();
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif OPAL_XLC_INLINE_ASSEMBLY /* end OPAL_GCC_INLINE_ASSEMBLY */
|
#elif OPAL_XLC_INLINE_ASSEMBLY /* end OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
@ -65,6 +65,11 @@ static inline void opal_atomic_wmb(void)
|
|||||||
MEMBAR("#StoreStore");
|
MEMBAR("#StoreStore");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void opal_atomic_isync(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
#endif /* OPAL_GCC_INLINE_ASSEMBLY */
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user