|
@@ -17,10 +17,12 @@
|
|
|
#define LUAJIT_ARCH_x86 1
|
|
|
#define LUAJIT_ARCH_X64 2
|
|
|
#define LUAJIT_ARCH_x64 2
|
|
|
-#define LUAJIT_ARCH_PPC 3
|
|
|
-#define LUAJIT_ARCH_ppc 3
|
|
|
-#define LUAJIT_ARCH_PPCSPE 4
|
|
|
-#define LUAJIT_ARCH_ppcspe 4
|
|
|
+#define LUAJIT_ARCH_ARM 3
|
|
|
+#define LUAJIT_ARCH_arm 3
|
|
|
+#define LUAJIT_ARCH_PPC 4
|
|
|
+#define LUAJIT_ARCH_ppc 4
|
|
|
+#define LUAJIT_ARCH_PPCSPE 5
|
|
|
+#define LUAJIT_ARCH_ppcspe 5
|
|
|
|
|
|
/* Target OS. */
|
|
|
#define LUAJIT_OS_OTHER 0
|
|
@@ -37,6 +39,8 @@
|
|
|
#define LUAJIT_TARGET LUAJIT_ARCH_X86
|
|
|
#elif defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)
|
|
|
#define LUAJIT_TARGET LUAJIT_ARCH_X64
|
|
|
+#elif defined(__arm__) || defined(__arm) || defined(__ARM__) || defined(__ARM)
|
|
|
+#define LUAJIT_TARGET LUAJIT_ARCH_ARM
|
|
|
#elif defined(__ppc__) || defined(__ppc) || defined(__PPC__) || defined(__PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__POWERPC) || defined(_M_PPC)
|
|
|
#ifdef __NO_FPRS__
|
|
|
#define LUAJIT_TARGET LUAJIT_ARCH_PPCSPE
|
|
@@ -117,6 +121,22 @@
|
|
|
#define LJ_TARGET_MASKSHIFT 1
|
|
|
#define LJ_TARGET_MASKROT 1
|
|
|
|
|
|
+#elif LUAJIT_TARGET == LUAJIT_ARCH_ARM
|
|
|
+
|
|
|
+#error "No support for ARM CPUs (yet)"
|
|
|
+#define LJ_ARCH_NAME "arm"
|
|
|
+#define LJ_ARCH_BITS 32
|
|
|
+#define LJ_ARCH_ENDIAN LUAJIT_LE
|
|
|
+#define LJ_ARCH_HASFPU 0
|
|
|
+#define LJ_ABI_SOFTFP 1
|
|
|
+#define LJ_ABI_EABI 1
|
|
|
+#define LJ_TARGET_ARM 1
|
|
|
+#define LJ_TARGET_EHRETREG 0
|
|
|
+#define LJ_TARGET_MASKSHIFT 0
|
|
|
+#define LJ_TARGET_MASKROT 1
|
|
|
+#define LJ_ARCH_NOFFI 1
|
|
|
+#define LJ_ARCH_NOJIT 1
|
|
|
+
|
|
|
#elif LUAJIT_TARGET == LUAJIT_ARCH_PPC
|
|
|
|
|
|
#error "No support for plain PowerPC CPUs (yet)"
|
|
@@ -150,7 +170,7 @@
|
|
|
#if __GNUC__ < 4
|
|
|
#error "Need at least GCC 4.0 or newer"
|
|
|
#endif
|
|
|
-#elif LJ_TARGET_PPC
|
|
|
+#elif LJ_TARGET_ARM || LJ_TARGET_PPC
|
|
|
#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
|
|
|
#error "Need at least GCC 4.3 or newer"
|
|
|
#endif
|
|
@@ -163,7 +183,17 @@
|
|
|
|
|
|
/* Check target-specific constraints. */
|
|
|
#ifndef _BUILDVM_H
|
|
|
-#if LJ_TARGET_PPC
|
|
|
+#if LJ_TARGET_ARM
|
|
|
+#if defined(__ARMEB__)
|
|
|
+#error "No support for big-endian ARM"
|
|
|
+#endif
|
|
|
+#if defined(__thumb__) || defined(__thumb2__)
|
|
|
+#error "No support for Thumb instruction set (yet)"
|
|
|
+#endif
|
|
|
+#if !__ARM_EABI__
|
|
|
+#error "Only ARM EABI is supported"
|
|
|
+#endif
|
|
|
+#elif LJ_TARGET_PPC
|
|
|
#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
|
|
|
#error "No support for PowerPC CPUs without double-precision FPU"
|
|
|
#endif
|