137 lines
3.9 KiB
Diff
137 lines
3.9 KiB
Diff
Index: cimple-2.0.24/config.guess
|
|
===================================================================
|
|
--- cimple-2.0.24.orig/config.guess
|
|
+++ cimple-2.0.24/config.guess
|
|
@@ -38,6 +38,10 @@ if [ -z "$host" ]; then
|
|
host=ppc-unknown-linux-gnu
|
|
;;
|
|
|
|
+ aarch64:Linux:*:*)
|
|
+ host=aarch64-unknown-linux-gnu
|
|
+ ;;
|
|
+
|
|
sun4*:SunOS:*:*)
|
|
host=sparc-sun-solaris-gnu
|
|
;;
|
|
Index: cimple-2.0.24/configure
|
|
===================================================================
|
|
--- cimple-2.0.24.orig/configure
|
|
+++ cimple-2.0.24/configure
|
|
@@ -282,6 +282,11 @@ case "$host" in
|
|
libbase=lib64
|
|
;;
|
|
|
|
+ aarch64-unknown-linux-gnu)
|
|
+ platform=LINUX_AARCH64_GNU
|
|
+ libbase=lib64
|
|
+ ;;
|
|
+
|
|
arm-wrs-vxworks-gnu)
|
|
platform=VXWORKS_XSCALE_GNU
|
|
libbase=lib
|
|
Index: cimple-2.0.24/mak/platform_LINUX_AARCH64_GNU.mak
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ cimple-2.0.24/mak/platform_LINUX_AARCH64_GNU.mak
|
|
@@ -0,0 +1 @@
|
|
+include $(TOP)/mak/platform_LINUX.mak
|
|
Index: cimple-2.0.24/src/cimple/Atomic.h
|
|
===================================================================
|
|
--- cimple-2.0.24.orig/src/cimple/Atomic.h
|
|
+++ cimple-2.0.24/src/cimple/Atomic.h
|
|
@@ -41,6 +41,8 @@
|
|
#elif defined(CIMPLE_PLATFORM_LINUX_S390_GNU) || \
|
|
defined(CIMPLE_PLATFORM_LINUX_S390X_GNU)
|
|
# include "Atomic_LINUX_S390_GNU.h"
|
|
+#elif defined(CIMPLE_PLATFORM_LINUX_AARCH64_GNU)
|
|
+# include "Atomic_LINUX_AARCH64_GNU.h"
|
|
#elif defined(CIMPLE_PLATFORM_DARWIN_PPC_GNU)
|
|
# include "Atomic_DARWIN_PPC_GNU.h"
|
|
#elif defined(CIMPLE_PLATFORM_DARWIN_IX86_GNU)
|
|
Index: cimple-2.0.24/src/cimple/Atomic_LINUX_AARCH64_GNU.h
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ cimple-2.0.24/src/cimple/Atomic_LINUX_AARCH64_GNU.h
|
|
@@ -0,0 +1,53 @@
|
|
+#ifndef _cimple_Atomic_LINUX_AARCH64_GNU_h
|
|
+#define _cimple_Atomic_LINUX_AARCH64_GNU_h
|
|
+
|
|
+#include "config.h"
|
|
+
|
|
+#define CIMPLE_ATOMIC_INITIALIZER { 0 }
|
|
+
|
|
+CIMPLE_NAMESPACE_BEGIN
|
|
+
|
|
+struct Atomic
|
|
+{
|
|
+ int n;
|
|
+};
|
|
+
|
|
+inline void Atomic_create(Atomic* atomic, int x)
|
|
+{
|
|
+ atomic->n = x;
|
|
+}
|
|
+
|
|
+inline void Atomic_destroy(Atomic* atomic)
|
|
+{
|
|
+}
|
|
+
|
|
+inline int Atomic_get(const Atomic* atomic)
|
|
+{
|
|
+ int value;
|
|
+ __atomic_load (&atomic->n, &value, __ATOMIC_SEQ_CST);
|
|
+ return value;
|
|
+}
|
|
+
|
|
+inline void Atomic_set(Atomic* atomic, int x)
|
|
+{
|
|
+ __atomic_store (&atomic->n, &x, __ATOMIC_SEQ_CST);
|
|
+}
|
|
+
|
|
+static __inline__ void Atomic_inc(Atomic* atomic)
|
|
+{
|
|
+ __atomic_add_fetch(&atomic->n, 1, __ATOMIC_SEQ_CST);
|
|
+}
|
|
+
|
|
+static __inline__ int Atomic_dec_and_test(Atomic* atomic)
|
|
+{
|
|
+ return __atomic_add_fetch(&atomic->n, -1, __ATOMIC_SEQ_CST) == 0;
|
|
+}
|
|
+
|
|
+static __inline__ void Atomic_dec(Atomic* atomic)
|
|
+{
|
|
+ __atomic_add_fetch(&atomic->n, -1, __ATOMIC_SEQ_CST);
|
|
+}
|
|
+
|
|
+CIMPLE_NAMESPACE_END
|
|
+
|
|
+#endif /* _cimple_Atomic_LINUX_IX86_GNU_h */
|
|
Index: cimple-2.0.24/src/cimple/config.h
|
|
===================================================================
|
|
--- cimple-2.0.24.orig/src/cimple/config.h
|
|
+++ cimple-2.0.24/src/cimple/config.h
|
|
@@ -55,6 +55,8 @@
|
|
#elif defined(CIMPLE_PLATFORM_LINUX_S390_GNU) || \
|
|
defined(CIMPLE_PLATFORM_LINUX_S390X_GNU)
|
|
# include "platform_LINUX_S390_GNU.h"
|
|
+#elif defined(CIMPLE_PLATFORM_LINUX_AARCH64_GNU)
|
|
+# include "platform_LINUX_AARCH64_GNU.h"
|
|
#elif defined(CIMPLE_PLATFORM_WIN32_IX86_MSVC)
|
|
# include "platform_WIN32_IX86_MSVC.h"
|
|
#elif defined(CIMPLE_PLATFORM_WIN64_X86_64_MSVC)
|
|
Index: cimple-2.0.24/src/cimple/platform_LINUX_AARCH64_GNU.h
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ cimple-2.0.24/src/cimple/platform_LINUX_AARCH64_GNU.h
|
|
@@ -0,0 +1,10 @@
|
|
+#ifndef _cimple_platform_LINUX_AARCH64_GNU_h
|
|
+#define _cimple_platform_LINUX_AARCH64_GNU_h
|
|
+
|
|
+#include "platform_LINUX.h"
|
|
+
|
|
+#define CIMPLE_LITTLE_ENDIAN
|
|
+
|
|
+#define CIMPLE_PLATFORM_ID "LINUX_AARCH64_GNU"
|
|
+
|
|
+#endif /* _cimple_platform_LINUX_AARCH64_GNU_h */
|