Add SH4 and mips architecture support.
Submitted by Andreas Vinsander.
diff --git a/include/jemalloc/internal/atomic.h b/include/jemalloc/internal/atomic.h
index 8c68593..1dbb7d6 100644
--- a/include/jemalloc/internal/atomic.h
+++ b/include/jemalloc/internal/atomic.h
@@ -160,6 +160,22 @@
return (x);
}
+#elif (defined __SH4__ || defined __mips__) && (__GNUC__ > 4 || \
+ (__GNUC__ == 4 && (__GNUC_MINOR__ > 1 || (__GNUC_MINOR__ == 1 && \
+ __GNUC_PATCHLEVEL__ > 1))))
+JEMALLOC_INLINE uint32_t
+atomic_add_uint32(uint32_t *p, uint32_t x)
+{
+
+ return (__sync_add_and_fetch(p, x));
+}
+
+JEMALLOC_INLINE uint32_t
+atomic_sub_uint32(uint32_t *p, uint32_t x)
+{
+
+ return (__sync_sub_and_fetch(p, x));
+}
#else
# error "Missing implementation for 32-bit atomic operations"
#endif
diff --git a/include/jemalloc/internal/jemalloc_internal.h.in b/include/jemalloc/internal/jemalloc_internal.h.in
index 403e480..3e445f7 100644
--- a/include/jemalloc/internal/jemalloc_internal.h.in
+++ b/include/jemalloc/internal/jemalloc_internal.h.in
@@ -254,6 +254,9 @@
# ifdef __s390x__
# define LG_QUANTUM 4
# endif
+# ifdef __SH4__
+# define LG_QUANTUM 4
+# endif
# ifdef __tile__
# define LG_QUANTUM 4
# endif