/*****************************************************************************
-Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS
+Copyright (c) 2011-2014, The OpenBLAS Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
- 3. Neither the name of the ISCAS nor the names of its contributors may
- be used to endorse or promote products derived from this software
- without specific prior written permission.
+ 3. Neither the name of the OpenBLAS project nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
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
} while (ret);
}
+#define BLAS_LOCK_DEFINED
static inline unsigned int rpcc(void){
unsigned long ret;
-#if defined(LOONGSON3A) || defined(LOONGSON3B)
+
// unsigned long long tmp;
//__asm__ __volatile__("dmfc0 %0, $25, 1": "=r"(tmp):: "memory");
//ret=tmp;
"rdhwr %0, $2\n"
".set pop": "=r"(ret):: "memory");
-#else
- __asm__ __volatile__(".set push \n"
- ".set mips32r2\n"
- "rdhwr %0, $30 \n"
- ".set pop" : "=r"(ret) : : "memory");
-#endif
return ret;
}
+#define RPCC_DEFINED
-#if defined(LOONGSON3A) || defined(LOONGSON3B)
#ifndef NO_AFFINITY
#define WHEREAMI
static inline int WhereAmI(void){
}
#endif
-#endif
static inline int blas_quickdivide(blasint x, blasint y){
return x / y;