| 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()
|
|
|