Merge pull request #1178 from jcowgill/mips-fixes
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Sat, 6 May 2017 15:20:10 +0000 (17:20 +0200)
committerGitHub <noreply@github.com>
Sat, 6 May 2017 15:20:10 +0000 (17:20 +0200)
MIPS threading fixes

common_mips.h
common_mips64.h

index 5a28814..35bff50 100644 (file)
@@ -33,8 +33,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef COMMON_MIPS
 #define COMMON_MIPS
 
-#define MB
-#define WMB
+#define MB  __sync_synchronize()
+#define WMB __sync_synchronize()
 
 #define INLINE inline
 
@@ -42,11 +42,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #ifndef ASSEMBLER
 
-static void INLINE blas_lock(volatile unsigned long *address){
-
-}
-#define BLAS_LOCK_DEFINED
-
 static inline unsigned int rpcc(void){
   unsigned long ret;
 
index 6078bf3..93bc7e5 100644 (file)
@@ -71,35 +71,13 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef COMMON_MIPS64
 #define COMMON_MIPS64
 
-#define MB
-#define WMB
+#define MB  __sync_synchronize()
+#define WMB __sync_synchronize()
 
 #define INLINE inline
 
 #ifndef ASSEMBLER
 
-static void INLINE blas_lock(volatile unsigned long *address){
-
-  long int ret, val = 1;
-
-  do {
-    while (*address) {YIELDING;};
-
-    __asm__ __volatile__(
-                        "1:    ll      %0, %3\n"
-                        "      ori     %2, %0, 1\n"
-                        "      sc      %2, %1\n"
-                        "      beqz    %2, 1b\n"
-                        "       andi   %2, %0, 1\n"
-                        "      sync\n"
-                        : "=&r" (val), "=m" (address), "=&r" (ret)
-                        : "m" (address)
-                        : "memory");
-
-  } while (ret);
-}
-#define BLAS_LOCK_DEFINED
-
 static inline unsigned int rpcc(void){
   unsigned long ret;