diff options
author | Mike Pall <mike> | 2011-10-19 18:14:46 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-10-19 18:14:46 +0200 |
commit | e80478c44b7e4bf32a509c480edb39bd39ede51b (patch) | |
tree | d19abf3b51a45f785112cd1803832a19bece651c /src | |
parent | 00591a2539d62dc43f1dc2d9250d78e1182765d8 (diff) | |
download | luajit-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.c | 6 | ||||
-rw-r--r-- | src/lj_arch.h | 12 | ||||
-rw-r--r-- | src/lj_err.c | 3 | ||||
-rw-r--r-- | src/lj_vm.h | 4 | ||||
-rw-r--r-- | src/lj_vmmath.c | 4 |
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 |
67 | LJ_ASMF double lj_vm_trunc(double); | 67 | LJ_ASMF double lj_vm_trunc(double); |
68 | LJ_ASMF double lj_vm_powi(double, int32_t); | 68 | LJ_ASMF double lj_vm_powi(double, int32_t); |
69 | #if defined(__ANDROID__) || defined(__symbian__) | 69 | #ifdef LUAJIT_NO_LOG2 |
70 | LJ_ASMF double lj_vm_log2(double); | 70 | LJ_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 |
75 | LJ_ASMF double lj_vm_exp2(double); | 75 | LJ_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 |
29 | double lj_vm_log2(double a) | 29 | double 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 |
36 | double lj_vm_exp2(double a) | 36 | double lj_vm_exp2(double a) |
37 | { | 37 | { |
38 | return exp(a * 0.6931471805599453); | 38 | return exp(a * 0.6931471805599453); |