diff options
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); |
