diff options
Diffstat (limited to 'deskutils/lightning/files/patch-mozilla-js-src-jslock.cpp')
| -rw-r--r-- | deskutils/lightning/files/patch-mozilla-js-src-jslock.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/deskutils/lightning/files/patch-mozilla-js-src-jslock.cpp b/deskutils/lightning/files/patch-mozilla-js-src-jslock.cpp new file mode 100644 index 000000000000..c1a29f393d18 --- /dev/null +++ b/deskutils/lightning/files/patch-mozilla-js-src-jslock.cpp @@ -0,0 +1,37 @@ +--- mozilla/js/src/jslock.cpp.orig 2010-01-23 15:40:12.000000000 +0100 ++++ mozilla/js/src/jslock.cpp 2010-01-23 15:45:20.000000000 +0100 +@@ -133,7 +133,7 @@ + return (int)res; + } + +-#elif defined(SOLARIS) && defined(sparc) && defined(ULTRA_SPARC) ++#elif defined(__sparc) + + static JS_ALWAYS_INLINE int + NativeCompareAndSwap(jsword *w, jsword ov, jsword nv) +@@ -142,13 +142,18 @@ + unsigned int res; + JS_ASSERT(ov != nv); + asm volatile ("\ +-stbar\n\ +-cas [%1],%2,%3\n\ +-cmp %2,%3\n\ +-be,a 1f\n\ +-mov 1,%0\n\ +-mov 0,%0\n\ +-1:" ++ membar #StoreLoad | #LoadLoad\n" ++# if defined (__sparc64__) ++ "casx [%1],%2,%3\n" ++# else ++ "cas [%1],%2,%3\n" /* 32-bit version */ ++# endif ++ "membar #StoreLoad | #LoadLoad\n" ++ "cmp %2,%3\n" ++ "be,a 1f\n" ++ "mov 1,%0\n" ++ "mov 0,%0\n" ++ "1:" + : "=r" (res) + : "r" (w), "r" (ov), "r" (nv)); + return (int)res; |
