|
|
@@ -60,7 +60,7 @@
|
|
|
/* Select native OS if no target OS defined. */
|
|
|
#ifndef LUAJIT_OS
|
|
|
|
|
|
-#if defined(_WIN32)
|
|
|
+#if defined(_WIN32) && !defined(_XBOX_VER)
|
|
|
#define LUAJIT_OS LUAJIT_OS_WINDOWS
|
|
|
#elif defined(__linux__)
|
|
|
#define LUAJIT_OS LUAJIT_OS_LINUX
|
|
|
@@ -100,6 +100,16 @@
|
|
|
#define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS)
|
|
|
#define LJ_TARGET_DLOPEN LJ_TARGET_POSIX
|
|
|
|
|
|
+#ifdef __CELLOS_LV2__
|
|
|
+#define LJ_TARGET_PS3 1
|
|
|
+#define LJ_TARGET_CONSOLE 1
|
|
|
+#endif
|
|
|
+
|
|
|
+#if _XBOX_VER >= 200
|
|
|
+#define LJ_TARGET_XBOX360 1
|
|
|
+#define LJ_TARGET_CONSOLE 1
|
|
|
+#endif
|
|
|
+
|
|
|
#define LJ_NUMMODE_SINGLE 0 /* Single-number mode only. */
|
|
|
#define LJ_NUMMODE_SINGLE_DUAL 1 /* Default to single-number mode. */
|
|
|
#define LJ_NUMMODE_DUAL 2 /* Dual-number mode only. */
|
|
|
@@ -151,6 +161,16 @@
|
|
|
#define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */
|
|
|
#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL
|
|
|
|
|
|
+#if __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__
|
|
|
+#define LJ_ARCH_VERSION 70
|
|
|
+#elif __ARM_ARCH_6T2__
|
|
|
+#define LJ_ARCH_VERSION 61
|
|
|
+#elif __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6K__ || __ARM_ARCH_6Z__ || __ARM_ARCH_6ZK__
|
|
|
+#define LJ_ARCH_VERSION 60
|
|
|
+#else
|
|
|
+#define LJ_ARCH_VERSION 50
|
|
|
+#endif
|
|
|
+
|
|
|
#elif LUAJIT_TARGET == LUAJIT_ARCH_PPC
|
|
|
|
|
|
#define LJ_ARCH_NAME "ppc"
|
|
|
@@ -165,6 +185,35 @@
|
|
|
#define LJ_TARGET_UNIFYROT 1 /* Want only IR_BROL. */
|
|
|
#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL_SINGLE
|
|
|
|
|
|
+#if _ARCH_PWR7
|
|
|
+#define LJ_ARCH_VERSION 70
|
|
|
+#elif _ARCH_PWR6
|
|
|
+#define LJ_ARCH_VERSION 60
|
|
|
+#elif _ARCH_PWR5X
|
|
|
+#define LJ_ARCH_VERSION 51
|
|
|
+#elif _ARCH_PWR5
|
|
|
+#define LJ_ARCH_VERSION 50
|
|
|
+#elif _ARCH_PWR4
|
|
|
+#define LJ_ARCH_VERSION 40
|
|
|
+#else
|
|
|
+#define LJ_ARCH_VERSION 0
|
|
|
+#endif
|
|
|
+#if __PPC64__ || __powerpc64__ || LJ_TARGET_XBOX360
|
|
|
+#define LJ_ARCH_PPC64 1
|
|
|
+#endif
|
|
|
+#if _ARCH_PPCSQ
|
|
|
+#define LJ_ARCH_SQRT 1
|
|
|
+#endif
|
|
|
+#if _ARCH_PPC5X
|
|
|
+#define LJ_ARCH_ROUND 1
|
|
|
+#endif
|
|
|
+#if __PPU__
|
|
|
+#define LJ_ARCH_CELL 1
|
|
|
+#endif
|
|
|
+#if LJ_TARGET_XBOX360
|
|
|
+#define LJ_ARCH_XENON 1
|
|
|
+#endif
|
|
|
+
|
|
|
#elif LUAJIT_TARGET == LUAJIT_ARCH_PPCSPE
|
|
|
|
|
|
#define LJ_ARCH_NAME "ppcspe"
|
|
|
@@ -202,6 +251,12 @@
|
|
|
#define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */
|
|
|
#define LJ_ARCH_NUMMODE LJ_NUMMODE_SINGLE
|
|
|
|
|
|
+#if _MIPS_ARCH_MIPS32R2
|
|
|
+#define LJ_ARCH_VERSION 20
|
|
|
+#else
|
|
|
+#define LJ_ARCH_VERSION 10
|
|
|
+#endif
|
|
|
+
|
|
|
#else
|
|
|
#error "No target architecture defined"
|
|
|
#endif
|
|
|
@@ -240,6 +295,9 @@
|
|
|
#if defined(__ARM_PCS_VFP)
|
|
|
#error "No support for ARM hard-float ABI (yet)"
|
|
|
#endif
|
|
|
+#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__
|
|
|
+#error "No support for Cortex-M CPUs"
|
|
|
+#endif
|
|
|
#if !(__ARM_EABI__ || LJ_TARGET_IOS)
|
|
|
#error "Only ARM EABI or iOS 3.0+ ABI is supported"
|
|
|
#endif
|
|
|
@@ -269,8 +327,9 @@
|
|
|
#define LJ_DUALNUM 0
|
|
|
#endif
|
|
|
|
|
|
-#if LJ_TARGET_IOS
|
|
|
+#if LJ_TARGET_IOS || LJ_TARGET_CONSOLE
|
|
|
/* Runtime code generation is restricted on iOS. Complain to Apple, not me. */
|
|
|
+/* Ditto for the consoles. Complain to Sony or MS, not me. */
|
|
|
#ifndef LUAJIT_ENABLE_JIT
|
|
|
#define LJ_OS_NOJIT 1
|
|
|
#endif
|
|
|
@@ -320,7 +379,7 @@
|
|
|
#define LUAJIT_NO_EXP2
|
|
|
#endif
|
|
|
|
|
|
-#if defined(__symbian__) || LJ_TARGET_IOS
|
|
|
+#if defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3
|
|
|
#define LUAJIT_NO_UNWIND
|
|
|
#endif
|
|
|
|