Merge pull request #1178 from jcowgill/mips-fixes

MIPS threading fixes
This commit is contained in:
Martin Kroeker 2017-05-06 17:20:10 +02:00 committed by GitHub
commit fd4e68128e
2 changed files with 4 additions and 31 deletions

View File

@ -33,8 +33,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef COMMON_MIPS #ifndef COMMON_MIPS
#define COMMON_MIPS #define COMMON_MIPS
#define MB #define MB __sync_synchronize()
#define WMB #define WMB __sync_synchronize()
#define INLINE inline #define INLINE inline
@ -42,11 +42,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef ASSEMBLER #ifndef ASSEMBLER
static void INLINE blas_lock(volatile unsigned long *address){
}
#define BLAS_LOCK_DEFINED
static inline unsigned int rpcc(void){ static inline unsigned int rpcc(void){
unsigned long ret; unsigned long ret;

View File

@ -71,35 +71,13 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef COMMON_MIPS64 #ifndef COMMON_MIPS64
#define COMMON_MIPS64 #define COMMON_MIPS64
#define MB #define MB __sync_synchronize()
#define WMB #define WMB __sync_synchronize()
#define INLINE inline #define INLINE inline
#ifndef ASSEMBLER #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){ static inline unsigned int rpcc(void){
unsigned long ret; unsigned long ret;