Index: nspr/pr/include/md/_linux.h |
diff --git a/nspr/pr/include/md/_linux.h b/nspr/pr/include/md/_linux.h |
index 278f90cd6c9e3c9d6a6541434f3116da09fa1538..d378db56094a667e1f02d98f19ad4bf234b57312 100644 |
--- a/nspr/pr/include/md/_linux.h |
+++ b/nspr/pr/include/md/_linux.h |
@@ -55,6 +55,8 @@ |
#define _PR_SI_ARCHITECTURE "avr32" |
#elif defined(__m32r__) |
#define _PR_SI_ARCHITECTURE "m32r" |
+#elif defined(__or1k__) |
+#define _PR_SI_ARCHITECTURE "or1k" |
#else |
#error "Unknown CPU architecture" |
#endif |
@@ -65,7 +67,7 @@ |
#define _MD_DEFAULT_STACK_SIZE 65536L |
#define _MD_MMAP_FLAGS MAP_PRIVATE |
-#if defined(__aarch64__) |
+#if defined(__aarch64__) || defined(__mips__) |
#define _MD_MINIMUM_STACK_SIZE 0x20000 |
#endif |
@@ -123,6 +125,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval); |
#define _MD_ATOMIC_SET _PR_x86_64_AtomicSet |
#endif |
+#if defined(__or1k__) |
+#if defined(__GNUC__) |
+/* Use GCC built-in functions */ |
+#define _PR_HAVE_ATOMIC_OPS |
+#define _MD_INIT_ATOMIC() |
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1) |
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1) |
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i) |
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv) |
+#endif |
+#endif |
+ |
#if defined(__powerpc__) && !defined(__powerpc64__) |
#define _PR_HAVE_ATOMIC_OPS |
#define _MD_INIT_ATOMIC() |
@@ -148,6 +162,16 @@ extern PRInt32 _PR_ppc_AtomicSet(PRInt32 *val, PRInt32 newval); |
#endif |
#endif |
+#if defined(__mips__) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) |
+/* Use GCC built-in functions */ |
+#define _PR_HAVE_ATOMIC_OPS |
+#define _MD_INIT_ATOMIC() |
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1) |
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1) |
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i) |
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv) |
+#endif |
+ |
#if defined(__alpha) |
#define _PR_HAVE_ATOMIC_OPS |
#define _MD_INIT_ATOMIC() |