diff options
Diffstat (limited to 'src/lj_arch.h')
-rw-r--r-- | src/lj_arch.h | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/src/lj_arch.h b/src/lj_arch.h index 7f1fe93c..f9cb12e7 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | #include "lua.h" | 9 | #include "lua.h" |
10 | 10 | ||
11 | |||
12 | /* Target endianess. */ | 11 | /* Target endianess. */ |
13 | #define LUAJIT_LE 0 | 12 | #define LUAJIT_LE 0 |
14 | #define LUAJIT_BE 1 | 13 | #define LUAJIT_BE 1 |
@@ -23,6 +22,13 @@ | |||
23 | #define LUAJIT_ARCH_PPCSPE 4 | 22 | #define LUAJIT_ARCH_PPCSPE 4 |
24 | #define LUAJIT_ARCH_ppcspe 4 | 23 | #define LUAJIT_ARCH_ppcspe 4 |
25 | 24 | ||
25 | /* Target OS. */ | ||
26 | #define LUAJIT_OS_OTHER 0 | ||
27 | #define LUAJIT_OS_WINDOWS 1 | ||
28 | #define LUAJIT_OS_LINUX 2 | ||
29 | #define LUAJIT_OS_OSX 3 | ||
30 | #define LUAJIT_OS_BSD 4 | ||
31 | #define LUAJIT_OS_POSIX 5 | ||
26 | 32 | ||
27 | /* Select native target if no target defined. */ | 33 | /* Select native target if no target defined. */ |
28 | #ifndef LUAJIT_TARGET | 34 | #ifndef LUAJIT_TARGET |
@@ -43,15 +49,58 @@ | |||
43 | 49 | ||
44 | #endif | 50 | #endif |
45 | 51 | ||
46 | /* Set target properties. */ | 52 | /* Select native OS if no target OS defined. */ |
53 | #ifndef LUAJIT_OS | ||
54 | |||
55 | #if defined(_WIN32) | ||
56 | #define LUAJIT_OS LUAJIT_OS_WINDOWS | ||
57 | #elif defined(__linux__) | ||
58 | #define LUAJIT_OS LUAJIT_OS_LINUX | ||
59 | #elif defined(__MACH__) && defined(__APPLE__) | ||
60 | #define LUAJIT_OS LUAJIT_OS_OSX | ||
61 | #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ | ||
62 | defined(__NetBSD__) || defined(__OpenBSD__) | ||
63 | #define LUAJIT_OS LUAJIT_OS_BSD | ||
64 | #elif defined(__solaris__) || defined(__CYGWIN__) | ||
65 | #define LUAJIT_OS LUAJIT_OS_POSIX | ||
66 | #else | ||
67 | #define LUAJIT_OS LUAJIT_OS_OTHER | ||
68 | #endif | ||
69 | |||
70 | #endif | ||
71 | |||
72 | /* Set target OS properties. */ | ||
73 | #if LUAJIT_OS == LUAJIT_OS_WINDOWS | ||
74 | #define LJ_OS_NAME "Windows" | ||
75 | #elif LUAJIT_OS == LUAJIT_OS_LINUX | ||
76 | #define LJ_OS_NAME "Linux" | ||
77 | #elif LUAJIT_OS == LUAJIT_OS_OSX | ||
78 | #define LJ_OS_NAME "OSX" | ||
79 | #elif LUAJIT_OS == LUAJIT_OS_BSD | ||
80 | #define LJ_OS_NAME "BSD" | ||
81 | #elif LUAJIT_OS == LUAJIT_OS_POSIX | ||
82 | #define LJ_OS_NAME "Posix" | ||
83 | #else | ||
84 | #define LJ_OS_NAME "Other" | ||
85 | #endif | ||
86 | |||
87 | #define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS) | ||
88 | #define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX) | ||
89 | #define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX) | ||
90 | #define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS) | ||
91 | #define LJ_TARGET_DLOPEN LJ_TARGET_POSIX | ||
92 | |||
93 | /* Set target architecture properties. */ | ||
47 | #if LUAJIT_TARGET == LUAJIT_ARCH_X86 | 94 | #if LUAJIT_TARGET == LUAJIT_ARCH_X86 |
48 | 95 | ||
49 | #define LJ_ARCH_NAME "x86" | 96 | #define LJ_ARCH_NAME "x86" |
50 | #define LJ_ARCH_BITS 32 | 97 | #define LJ_ARCH_BITS 32 |
51 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 98 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
99 | #define LJ_ARCH_BITENDIAN LUAJIT_LE | ||
100 | #define LJ_ARCH_HASFPU 1 | ||
101 | #define LJ_ABI_WIN LJ_TARGET_WINDOWS | ||
52 | #define LJ_TARGET_X86 1 | 102 | #define LJ_TARGET_X86 1 |
53 | #define LJ_TARGET_X86ORX64 1 | 103 | #define LJ_TARGET_X86ORX64 1 |
54 | #define LJ_PAGESIZE 4096 | ||
55 | #define LJ_TARGET_EHRETREG 0 | 104 | #define LJ_TARGET_EHRETREG 0 |
56 | #define LJ_TARGET_MASKSHIFT 1 | 105 | #define LJ_TARGET_MASKSHIFT 1 |
57 | #define LJ_TARGET_MASKROT 1 | 106 | #define LJ_TARGET_MASKROT 1 |
@@ -61,9 +110,11 @@ | |||
61 | #define LJ_ARCH_NAME "x64" | 110 | #define LJ_ARCH_NAME "x64" |
62 | #define LJ_ARCH_BITS 64 | 111 | #define LJ_ARCH_BITS 64 |
63 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 112 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
113 | #define LJ_ARCH_BITENDIAN LUAJIT_LE | ||
114 | #define LJ_ARCH_HASFPU 1 | ||
115 | #define LJ_ABI_WIN LJ_TARGET_WINDOWS | ||
64 | #define LJ_TARGET_X64 1 | 116 | #define LJ_TARGET_X64 1 |
65 | #define LJ_TARGET_X86ORX64 1 | 117 | #define LJ_TARGET_X86ORX64 1 |
66 | #define LJ_PAGESIZE 4096 | ||
67 | #define LJ_TARGET_EHRETREG 0 | 118 | #define LJ_TARGET_EHRETREG 0 |
68 | #define LJ_TARGET_MASKSHIFT 1 | 119 | #define LJ_TARGET_MASKSHIFT 1 |
69 | #define LJ_TARGET_MASKROT 1 | 120 | #define LJ_TARGET_MASKROT 1 |
@@ -77,9 +128,12 @@ | |||
77 | #define LJ_ARCH_NAME "ppcspe" | 128 | #define LJ_ARCH_NAME "ppcspe" |
78 | #define LJ_ARCH_BITS 32 | 129 | #define LJ_ARCH_BITS 32 |
79 | #define LJ_ARCH_ENDIAN LUAJIT_BE | 130 | #define LJ_ARCH_ENDIAN LUAJIT_BE |
131 | #define LJ_ARCH_BITENDIAN LUAJIT_BE | ||
132 | #define LJ_ARCH_HASFPU 1 | ||
133 | #define LJ_ABI_SOFTFP 1 | ||
134 | #define LJ_ABI_EABI 1 | ||
80 | #define LJ_TARGET_PPC 1 | 135 | #define LJ_TARGET_PPC 1 |
81 | #define LJ_TARGET_PPCSPE 1 | 136 | #define LJ_TARGET_PPCSPE 1 |
82 | #define LJ_PAGESIZE 4096 | ||
83 | #define LJ_TARGET_EHRETREG 3 | 137 | #define LJ_TARGET_EHRETREG 3 |
84 | #define LJ_TARGET_MASKSHIFT 0 | 138 | #define LJ_TARGET_MASKSHIFT 0 |
85 | #define LJ_TARGET_MASKROT 1 | 139 | #define LJ_TARGET_MASKROT 1 |
@@ -89,6 +143,10 @@ | |||
89 | #error "No target architecture defined" | 143 | #error "No target architecture defined" |
90 | #endif | 144 | #endif |
91 | 145 | ||
146 | #ifndef LJ_PAGESIZE | ||
147 | #define LJ_PAGESIZE 4096 | ||
148 | #endif | ||
149 | |||
92 | /* Check for minimum required compiler versions. */ | 150 | /* Check for minimum required compiler versions. */ |
93 | #if defined(__GNUC__) | 151 | #if defined(__GNUC__) |
94 | #if LJ_TARGET_X64 | 152 | #if LJ_TARGET_X64 |