summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-08-08 16:27:17 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-08-09 13:54:57 -0500
commitbe61bd382972ec946396dadc161231c65ea9d968 (patch)
tree29acf3176ca910cd3f740d930b9d1fcee0c0e382 /src/include
parentaf0bcd44f7c475eb00178d4f448a14343c0354c0 (diff)
downloadtalos-hostboot-be61bd382972ec946396dadc161231c65ea9d968.tar.gz
talos-hostboot-be61bd382972ec946396dadc161231c65ea9d968.zip
Clean up mutex issues.
- Final fix for mutex bug. - Document weak-consistency decisions in mutex code. - Prevent aggressive optimizations around lwsync/isync instrs. - Fix minor bug in futex_wait system call. - Optimize futex path with likely/unlikely hints. Change-Id: I26b54dee7e45bcb42195f730474b350b44f53cfc Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/233 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/arch/ppc.H9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/include/arch/ppc.H b/src/include/arch/ppc.H
index 5280c82e4..405a2c297 100644
--- a/src/include/arch/ppc.H
+++ b/src/include/arch/ppc.H
@@ -64,7 +64,6 @@ inline void setHSRR1(uint64_t _hsrr1)
asm volatile("mtspr 315, %0" : : "r" (hsrr1));
}
-
ALWAYS_INLINE
inline uint64_t getPVR()
{
@@ -146,25 +145,25 @@ inline void setDEC(uint64_t _dec)
ALWAYS_INLINE
inline void sync()
{
- asm volatile("sync");
+ asm volatile("sync" ::: "memory");
}
ALWAYS_INLINE
inline void lwsync()
{
- asm volatile("lwsync");
+ asm volatile("lwsync" ::: "memory");
}
ALWAYS_INLINE
inline void isync()
{
- asm volatile("isync");
+ asm volatile("isync" ::: "memory");
}
ALWAYS_INLINE
inline void eieio()
{
- asm volatile("eieio");
+ asm volatile("eieio" ::: "memory");
}
ALWAYS_INLINE
OpenPOWER on IntegriCloud