aboutsummaryrefslogtreecommitdiff
path: root/src/lj_arch.h
diff options
context:
space:
mode:
authorMike Pall <mike>2021-03-23 00:22:34 +0100
committerMike Pall <mike>2021-03-23 00:22:34 +0100
commite131936133c58de4426c595db2341caf5a1665b5 (patch)
treee8659c1bbc626acde7bbcb998eac5ad93349d113 /src/lj_arch.h
parentce9faf2e0d627aa043b84f290aebc4ef87c5a3b4 (diff)
downloadluajit-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.h33
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