aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-10-19 18:14:46 +0200
committerMike Pall <mike>2011-10-19 18:14:46 +0200
commite80478c44b7e4bf32a509c480edb39bd39ede51b (patch)
treed19abf3b51a45f785112cd1803832a19bece651c /src
parent00591a2539d62dc43f1dc2d9250d78e1182765d8 (diff)
downloadluajit-e80478c44b7e4bf32a509c480edb39bd39ede51b.tar.gz
luajit-e80478c44b7e4bf32a509c480edb39bd39ede51b.tar.bz2
luajit-e80478c44b7e4bf32a509c480edb39bd39ede51b.zip
Rearrange defines for workarounds to embedded operating systems.
Diffstat (limited to 'src')
-rw-r--r--src/buildvm_asm.c6
-rw-r--r--src/lj_arch.h12
-rw-r--r--src/lj_err.c3
-rw-r--r--src/lj_vm.h4
-rw-r--r--src/lj_vmmath.c4
5 files changed, 19 insertions, 10 deletions
diff --git a/src/buildvm_asm.c b/src/buildvm_asm.c
index 94e62ce7..6a860c9f 100644
--- a/src/buildvm_asm.c
+++ b/src/buildvm_asm.c
@@ -191,8 +191,7 @@ void emit_asm(BuildCtx *ctx)
191 if (ctx->mode != BUILD_machasm) 191 if (ctx->mode != BUILD_machasm)
192 fprintf(ctx->fp, ".Lbegin:\n"); 192 fprintf(ctx->fp, ".Lbegin:\n");
193 193
194#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) && \ 194#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
195 !LJ_TARGET_OSX
196 /* This should really be moved into buildvm_arm.dasc. */ 195 /* This should really be moved into buildvm_arm.dasc. */
197 fprintf(ctx->fp, 196 fprintf(ctx->fp,
198 ".fnstart\n" 197 ".fnstart\n"
@@ -228,8 +227,7 @@ void emit_asm(BuildCtx *ctx)
228#endif 227#endif
229 } 228 }
230 229
231#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) && \ 230#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
232 !LJ_TARGET_OSX
233 fprintf(ctx->fp, 231 fprintf(ctx->fp,
234 ".globl lj_err_unwind_arm\n" 232 ".globl lj_err_unwind_arm\n"
235 ".personality lj_err_unwind_arm\n" 233 ".personality lj_err_unwind_arm\n"
diff --git a/src/lj_arch.h b/src/lj_arch.h
index 355474fb..80ab051e 100644
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -279,4 +279,16 @@
279#define LJ_64 1 279#define LJ_64 1
280#endif 280#endif
281 281
282/* Various workarounds for embedded operating systems. */
283#if defined(__ANDROID__) || defined(__symbian__)
284#define LUAJIT_NO_LOG2
285#endif
286#if defined(__symbian__)
287#define LUAJIT_NO_EXP2
288#endif
289
290#if defined(__symbian__) || (LJ_TARGET_ARM && LJ_TARGET_OSX)
291#define LUAJIT_NO_UNWIND
292#endif
293
282#endif 294#endif
diff --git a/src/lj_err.c b/src/lj_err.c
index 63c5a22d..406c833d 100644
--- a/src/lj_err.c
+++ b/src/lj_err.c
@@ -178,8 +178,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode)
178 178
179/* -- External frame unwinding -------------------------------------------- */ 179/* -- External frame unwinding -------------------------------------------- */
180 180
181#if defined(__GNUC__) && !defined(__symbian__) && \ 181#if defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
182 !(LJ_TARGET_ARM && LJ_TARGET_OSX)
183 182
184#ifdef __clang__ 183#ifdef __clang__
185/* http://llvm.org/bugs/show_bug.cgi?id=8703 */ 184/* http://llvm.org/bugs/show_bug.cgi?id=8703 */
diff --git a/src/lj_vm.h b/src/lj_vm.h
index 3f6777ad..5a82dab0 100644
--- a/src/lj_vm.h
+++ b/src/lj_vm.h
@@ -66,12 +66,12 @@ LJ_ASMF void lj_vm_powi_sse(void);
66#else 66#else
67LJ_ASMF double lj_vm_trunc(double); 67LJ_ASMF double lj_vm_trunc(double);
68LJ_ASMF double lj_vm_powi(double, int32_t); 68LJ_ASMF double lj_vm_powi(double, int32_t);
69#if defined(__ANDROID__) || defined(__symbian__) 69#ifdef LUAJIT_NO_LOG2
70LJ_ASMF double lj_vm_log2(double); 70LJ_ASMF double lj_vm_log2(double);
71#else 71#else
72#define lj_vm_log2 log2 72#define lj_vm_log2 log2
73#endif 73#endif
74#if defined(__symbian__) 74#ifdef LUAJIT_NO_EXP2
75LJ_ASMF double lj_vm_exp2(double); 75LJ_ASMF double lj_vm_exp2(double);
76#else 76#else
77#define lj_vm_exp2 exp2 77#define lj_vm_exp2 exp2
diff --git a/src/lj_vmmath.c b/src/lj_vmmath.c
index 46f06504..ec3d98af 100644
--- a/src/lj_vmmath.c
+++ b/src/lj_vmmath.c
@@ -25,14 +25,14 @@ LJ_FUNCA double lj_vm_tanh(double x) { return tanh(x); }
25 25
26#if LJ_HASJIT 26#if LJ_HASJIT
27 27
28#if defined(__ANDROID__) || defined(__symbian__) 28#ifdef LUAJIT_NO_LOG2
29double lj_vm_log2(double a) 29double lj_vm_log2(double a)
30{ 30{
31 return log(a) * 1.4426950408889634074; 31 return log(a) * 1.4426950408889634074;
32} 32}
33#endif 33#endif
34 34
35#if defined(__symbian__) 35#ifdef LUAJIT_NO_EXP2
36double lj_vm_exp2(double a) 36double lj_vm_exp2(double a)
37{ 37{
38 return exp(a * 0.6931471805599453); 38 return exp(a * 0.6931471805599453);