diff options
author | Mike Pall <mike> | 2021-03-23 00:22:34 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2021-03-23 00:22:34 +0100 |
commit | e131936133c58de4426c595db2341caf5a1665b5 (patch) | |
tree | e8659c1bbc626acde7bbcb998eac5ad93349d113 /src/lj_arch.h | |
parent | ce9faf2e0d627aa043b84f290aebc4ef87c5a3b4 (diff) | |
download | luajit-e131936133c58de4426c595db2341caf5a1665b5.tar.gz luajit-e131936133c58de4426c595db2341caf5a1665b5.tar.bz2 luajit-e131936133c58de4426c595db2341caf5a1665b5.zip |
Cleanup and enable external unwinding for more platforms.
Diffstat (limited to 'src/lj_arch.h')
-rw-r--r-- | src/lj_arch.h | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/lj_arch.h b/src/lj_arch.h index d4fd9c9d..ac3e3753 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
@@ -170,11 +170,6 @@ | |||
170 | #define LJ_ARCH_NAME "x86" | 170 | #define LJ_ARCH_NAME "x86" |
171 | #define LJ_ARCH_BITS 32 | 171 | #define LJ_ARCH_BITS 32 |
172 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 172 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
173 | #if LJ_TARGET_WINDOWS || LJ_TARGET_CYGWIN | ||
174 | #define LJ_ABI_WIN 1 | ||
175 | #else | ||
176 | #define LJ_ABI_WIN 0 | ||
177 | #endif | ||
178 | #define LJ_TARGET_X86 1 | 173 | #define LJ_TARGET_X86 1 |
179 | #define LJ_TARGET_X86ORX64 1 | 174 | #define LJ_TARGET_X86ORX64 1 |
180 | #define LJ_TARGET_EHRETREG 0 | 175 | #define LJ_TARGET_EHRETREG 0 |
@@ -188,11 +183,6 @@ | |||
188 | #define LJ_ARCH_NAME "x64" | 183 | #define LJ_ARCH_NAME "x64" |
189 | #define LJ_ARCH_BITS 64 | 184 | #define LJ_ARCH_BITS 64 |
190 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 185 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
191 | #if LJ_TARGET_WINDOWS || LJ_TARGET_CYGWIN | ||
192 | #define LJ_ABI_WIN 1 | ||
193 | #else | ||
194 | #define LJ_ABI_WIN 0 | ||
195 | #endif | ||
196 | #define LJ_TARGET_X64 1 | 186 | #define LJ_TARGET_X64 1 |
197 | #define LJ_TARGET_X86ORX64 1 | 187 | #define LJ_TARGET_X86ORX64 1 |
198 | #define LJ_TARGET_EHRETREG 0 | 188 | #define LJ_TARGET_EHRETREG 0 |
@@ -203,6 +193,8 @@ | |||
203 | #define LJ_ARCH_NUMMODE LJ_NUMMODE_SINGLE_DUAL | 193 | #define LJ_ARCH_NUMMODE LJ_NUMMODE_SINGLE_DUAL |
204 | #ifndef LUAJIT_DISABLE_GC64 | 194 | #ifndef LUAJIT_DISABLE_GC64 |
205 | #define LJ_TARGET_GC64 1 | 195 | #define LJ_TARGET_GC64 1 |
196 | #elif LJ_TARGET_OSX | ||
197 | #error "macOS requires GC64 -- don't disable it" | ||
206 | #endif | 198 | #endif |
207 | 199 | ||
208 | #elif LUAJIT_TARGET == LUAJIT_ARCH_ARM | 200 | #elif LUAJIT_TARGET == LUAJIT_ARCH_ARM |
@@ -611,13 +603,10 @@ | |||
611 | #define LJ_NO_SYSTEM 1 | 603 | #define LJ_NO_SYSTEM 1 |
612 | #endif | 604 | #endif |
613 | 605 | ||
614 | #if !defined(LUAJIT_NO_UNWIND) && __GNU_COMPACT_EH__ | 606 | #if LJ_TARGET_WINDOWS || LJ_TARGET_CYGWIN |
615 | /* NYI: no support for compact unwind specification, yet. */ | 607 | #define LJ_ABI_WIN 1 |
616 | #define LUAJIT_NO_UNWIND 1 | 608 | #else |
617 | #endif | 609 | #define LJ_ABI_WIN 0 |
618 | |||
619 | #if defined(LUAJIT_NO_UNWIND) || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 || LJ_TARGET_PS4 | ||
620 | #define LJ_NO_UNWIND 1 | ||
621 | #endif | 610 | #endif |
622 | 611 | ||
623 | #if LJ_TARGET_WINDOWS | 612 | #if LJ_TARGET_WINDOWS |
@@ -632,6 +621,16 @@ extern void *LJ_WIN_LOADLIBA(const char *path); | |||
632 | #endif | 621 | #endif |
633 | #endif | 622 | #endif |
634 | 623 | ||
624 | #if defined(LUAJIT_NO_UNWIND) || __GNU_COMPACT_EH__ || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 || LJ_TARGET_PS4 | ||
625 | #define LJ_NO_UNWIND 1 | ||
626 | #endif | ||
627 | |||
628 | #if !LJ_NO_UNWIND && !defined(LUAJIT_UNWIND_INTERNAL) && (LJ_ABI_WIN || (defined(LUAJIT_UNWIND_EXTERNAL) && (defined(__GNUC__) || defined(__clang__)))) | ||
629 | #define LJ_UNWIND_EXT 1 | ||
630 | #else | ||
631 | #define LJ_UNWIND_EXT 0 | ||
632 | #endif | ||
633 | |||
635 | /* Compatibility with Lua 5.1 vs. 5.2. */ | 634 | /* Compatibility with Lua 5.1 vs. 5.2. */ |
636 | #ifdef LUAJIT_ENABLE_LUA52COMPAT | 635 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
637 | #define LJ_52 1 | 636 | #define LJ_52 1 |