Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Unity-Technologies/libatomic_ops.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/atomic_ops/sysdeps/gcc/alpha.h2
-rw-r--r--src/atomic_ops/sysdeps/gcc/mips.h9
2 files changed, 5 insertions, 6 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/alpha.h b/src/atomic_ops/sysdeps/gcc/alpha.h
index 8ce67a0..3b98bec 100644
--- a/src/atomic_ops/sysdeps/gcc/alpha.h
+++ b/src/atomic_ops/sysdeps/gcc/alpha.h
@@ -57,7 +57,7 @@ AO_compare_and_swap(volatile AO_t *addr,
" stq_c %0,%1\n"
" beq %0,1b\n"
"2:\n"
- :"=&r" (temp), "=m" (*addr), "=&r" (was_equal)
+ : "=&r" (temp), "+m" (*addr), "=&r" (was_equal)
: "r" (new_val), "Ir" (old)
:"memory");
return (int)was_equal;
diff --git a/src/atomic_ops/sysdeps/gcc/mips.h b/src/atomic_ops/sysdeps/gcc/mips.h
index 10bb571..a891de6 100644
--- a/src/atomic_ops/sysdeps/gcc/mips.h
+++ b/src/atomic_ops/sysdeps/gcc/mips.h
@@ -59,7 +59,6 @@ AO_fetch_and_add(volatile AO_t *addr, AO_t incr)
register int temp;
__asm__ __volatile__(
-
" .set push\n"
" .set mips2\n"
" .set noreorder\n"
@@ -71,7 +70,7 @@ AO_fetch_and_add(volatile AO_t *addr, AO_t incr)
" beqz %1, 1b\n"
" nop\n"
" .set pop "
- : "=&r" (result), "=&r" (temp), "=m" (*addr)
+ : "=&r" (result), "=&r" (temp), "+m" (*addr)
: "Ir" (incr)
: "memory");
return (AO_t)result;
@@ -96,7 +95,7 @@ AO_test_and_set(volatile AO_TS_t *addr)
" beqz %1, 1b\n"
" nop\n"
" .set pop "
- : "=&r" (oldval), "=&r" (temp), "=m" (*addr)
+ : "=&r" (oldval), "=&r" (temp), "+m" (*addr)
: "r" (1)
: "memory");
return (AO_TS_VAL_t)oldval;
@@ -127,7 +126,7 @@ AO_test_and_set(volatile AO_TS_t *addr)
" beqz %0, 1b \n"
" li %2, 1 \n"
"2: "
- : "=&r" (temp), "+R" (*addr), "+r" (was_equal)
+ : "=&r" (temp), "+m" (*addr), "+r" (was_equal)
: "r" (new_val), "r" (old)
: "memory");
return was_equal;
@@ -155,7 +154,7 @@ AO_fetch_compare_and_swap(volatile AO_t *addr, AO_t old, AO_t new_val)
" nop\n"
" .set pop\n"
"2:"
- : "=&r" (fetched_val), "=&r" (temp), "=m" (*addr)
+ : "=&r" (fetched_val), "=&r" (temp), "+m" (*addr)
: "r" (new_val), "Jr" (old)
: "memory");
return (AO_t)fetched_val;