diff options
Diffstat (limited to 'src/lj_arch.h')
-rw-r--r-- | src/lj_arch.h | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/lj_arch.h b/src/lj_arch.h index d65bc551..3e3581c2 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
@@ -8,6 +8,8 @@ | |||
8 | 8 | ||
9 | #include "lua.h" | 9 | #include "lua.h" |
10 | 10 | ||
11 | /* -- Target definitions -------------------------------------------------- */ | ||
12 | |||
11 | /* Target endianess. */ | 13 | /* Target endianess. */ |
12 | #define LUAJIT_LE 0 | 14 | #define LUAJIT_LE 0 |
13 | #define LUAJIT_BE 1 | 15 | #define LUAJIT_BE 1 |
@@ -38,6 +40,14 @@ | |||
38 | #define LUAJIT_OS_BSD 4 | 40 | #define LUAJIT_OS_BSD 4 |
39 | #define LUAJIT_OS_POSIX 5 | 41 | #define LUAJIT_OS_POSIX 5 |
40 | 42 | ||
43 | /* Number mode. */ | ||
44 | #define LJ_NUMMODE_SINGLE 0 /* Single-number mode only. */ | ||
45 | #define LJ_NUMMODE_SINGLE_DUAL 1 /* Default to single-number mode. */ | ||
46 | #define LJ_NUMMODE_DUAL 2 /* Dual-number mode only. */ | ||
47 | #define LJ_NUMMODE_DUAL_SINGLE 3 /* Default to dual-number mode. */ | ||
48 | |||
49 | /* -- Target detection ---------------------------------------------------- */ | ||
50 | |||
41 | /* Select native target if no target defined. */ | 51 | /* Select native target if no target defined. */ |
42 | #ifndef LUAJIT_TARGET | 52 | #ifndef LUAJIT_TARGET |
43 | 53 | ||
@@ -74,7 +84,10 @@ | |||
74 | defined(__NetBSD__) || defined(__OpenBSD__) || \ | 84 | defined(__NetBSD__) || defined(__OpenBSD__) || \ |
75 | defined(__DragonFly__)) && !defined(__ORBIS__) | 85 | defined(__DragonFly__)) && !defined(__ORBIS__) |
76 | #define LUAJIT_OS LUAJIT_OS_BSD | 86 | #define LUAJIT_OS LUAJIT_OS_BSD |
77 | #elif (defined(__sun__) && defined(__svr4__)) || defined(__HAIKU__) | 87 | #elif (defined(__sun__) && defined(__svr4__)) |
88 | #define LJ_TARGET_SOLARIS 1 | ||
89 | #define LUAJIT_OS LUAJIT_OS_POSIX | ||
90 | #elif defined(__HAIKU__) | ||
78 | #define LUAJIT_OS LUAJIT_OS_POSIX | 91 | #define LUAJIT_OS LUAJIT_OS_POSIX |
79 | #elif defined(__CYGWIN__) | 92 | #elif defined(__CYGWIN__) |
80 | #define LJ_TARGET_CYGWIN 1 | 93 | #define LJ_TARGET_CYGWIN 1 |
@@ -103,6 +116,7 @@ | |||
103 | #define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS) | 116 | #define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS) |
104 | #define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX) | 117 | #define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX) |
105 | #define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX) | 118 | #define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX) |
119 | #define LJ_TARGET_BSD (LUAJIT_OS == LUAJIT_OS_BSD) | ||
106 | #define LJ_TARGET_IOS (LJ_TARGET_OSX && (LUAJIT_TARGET == LUAJIT_ARCH_ARM || LUAJIT_TARGET == LUAJIT_ARCH_ARM64)) | 120 | #define LJ_TARGET_IOS (LJ_TARGET_OSX && (LUAJIT_TARGET == LUAJIT_ARCH_ARM || LUAJIT_TARGET == LUAJIT_ARCH_ARM64)) |
107 | #define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS) | 121 | #define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS) |
108 | #define LJ_TARGET_DLOPEN LJ_TARGET_POSIX | 122 | #define LJ_TARGET_DLOPEN LJ_TARGET_POSIX |
@@ -142,10 +156,7 @@ | |||
142 | #endif | 156 | #endif |
143 | #endif | 157 | #endif |
144 | 158 | ||
145 | #define LJ_NUMMODE_SINGLE 0 /* Single-number mode only. */ | 159 | /* -- Arch-specific settings ---------------------------------------------- */ |
146 | #define LJ_NUMMODE_SINGLE_DUAL 1 /* Default to single-number mode. */ | ||
147 | #define LJ_NUMMODE_DUAL 2 /* Dual-number mode only. */ | ||
148 | #define LJ_NUMMODE_DUAL_SINGLE 3 /* Default to dual-number mode. */ | ||
149 | 160 | ||
150 | /* Set target architecture properties. */ | 161 | /* Set target architecture properties. */ |
151 | #if LUAJIT_TARGET == LUAJIT_ARCH_X86 | 162 | #if LUAJIT_TARGET == LUAJIT_ARCH_X86 |
@@ -407,9 +418,7 @@ | |||
407 | #error "No target architecture defined" | 418 | #error "No target architecture defined" |
408 | #endif | 419 | #endif |
409 | 420 | ||
410 | #ifndef LJ_PAGESIZE | 421 | /* -- Checks for requirements --------------------------------------------- */ |
411 | #define LJ_PAGESIZE 4096 | ||
412 | #endif | ||
413 | 422 | ||
414 | /* Check for minimum required compiler versions. */ | 423 | /* Check for minimum required compiler versions. */ |
415 | #if defined(__GNUC__) | 424 | #if defined(__GNUC__) |
@@ -485,6 +494,8 @@ | |||
485 | #endif | 494 | #endif |
486 | #endif | 495 | #endif |
487 | 496 | ||
497 | /* -- Derived defines ----------------------------------------------------- */ | ||
498 | |||
488 | /* Enable or disable the dual-number mode for the VM. */ | 499 | /* Enable or disable the dual-number mode for the VM. */ |
489 | #if (LJ_ARCH_NUMMODE == LJ_NUMMODE_SINGLE && LUAJIT_NUMMODE == 2) || \ | 500 | #if (LJ_ARCH_NUMMODE == LJ_NUMMODE_SINGLE && LUAJIT_NUMMODE == 2) || \ |
490 | (LJ_ARCH_NUMMODE == LJ_NUMMODE_DUAL && LUAJIT_NUMMODE == 1) | 501 | (LJ_ARCH_NUMMODE == LJ_NUMMODE_DUAL && LUAJIT_NUMMODE == 1) |
@@ -582,6 +593,10 @@ | |||
582 | #define LJ_TARGET_UNALIGNED 0 | 593 | #define LJ_TARGET_UNALIGNED 0 |
583 | #endif | 594 | #endif |
584 | 595 | ||
596 | #ifndef LJ_PAGESIZE | ||
597 | #define LJ_PAGESIZE 4096 | ||
598 | #endif | ||
599 | |||
585 | /* Various workarounds for embedded operating systems or weak C runtimes. */ | 600 | /* Various workarounds for embedded operating systems or weak C runtimes. */ |
586 | #if defined(__ANDROID__) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS | 601 | #if defined(__ANDROID__) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS |
587 | #define LUAJIT_NO_LOG2 | 602 | #define LUAJIT_NO_LOG2 |