mips: remove incorrect blas_lock implementations
authorJames Cowgill <james410@cowgill.org.uk>
Thu, 4 May 2017 13:35:36 +0000 (14:35 +0100)
committerJames Cowgill <james410@cowgill.org.uk>
Fri, 5 May 2017 16:28:03 +0000 (17:28 +0100)
MIPS 32-bit currently has an empty blas_lock implementation which is
worse than nothing at all. MIPS 64-bit does has a blas_lock
implementation but is broken. Remove them and fallback to the generic
version in common.h which should do the right thing on MIPS.

common_mips.h
common_mips64.h

index bb579d1..35bff50 100644 (file)
@@ -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 21e706c..93bc7e5 100644 (file)
@@ -78,28 +78,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){
-
-  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;