Rearrange defines for workarounds to embedded operating systems.

This commit is contained in:
Mike Pall 2011-10-19 18:14:46 +02:00
parent 00591a2539
commit e80478c44b
5 changed files with 19 additions and 10 deletions

View File

@ -191,8 +191,7 @@ void emit_asm(BuildCtx *ctx)
if (ctx->mode != BUILD_machasm) if (ctx->mode != BUILD_machasm)
fprintf(ctx->fp, ".Lbegin:\n"); fprintf(ctx->fp, ".Lbegin:\n");
#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) && \ #if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
!LJ_TARGET_OSX
/* This should really be moved into buildvm_arm.dasc. */ /* This should really be moved into buildvm_arm.dasc. */
fprintf(ctx->fp, fprintf(ctx->fp,
".fnstart\n" ".fnstart\n"
@ -228,8 +227,7 @@ void emit_asm(BuildCtx *ctx)
#endif #endif
} }
#if LJ_TARGET_ARM && defined(__GNUC__) && !defined(__symbian__) && \ #if LJ_TARGET_ARM && defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
!LJ_TARGET_OSX
fprintf(ctx->fp, fprintf(ctx->fp,
".globl lj_err_unwind_arm\n" ".globl lj_err_unwind_arm\n"
".personality lj_err_unwind_arm\n" ".personality lj_err_unwind_arm\n"

View File

@ -279,4 +279,16 @@
#define LJ_64 1 #define LJ_64 1
#endif #endif
/* Various workarounds for embedded operating systems. */
#if defined(__ANDROID__) || defined(__symbian__)
#define LUAJIT_NO_LOG2
#endif
#if defined(__symbian__)
#define LUAJIT_NO_EXP2
#endif
#if defined(__symbian__) || (LJ_TARGET_ARM && LJ_TARGET_OSX)
#define LUAJIT_NO_UNWIND
#endif
#endif #endif

View File

@ -178,8 +178,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode)
/* -- External frame unwinding -------------------------------------------- */ /* -- External frame unwinding -------------------------------------------- */
#if defined(__GNUC__) && !defined(__symbian__) && \ #if defined(__GNUC__) && !defined(LUAJIT_NO_UNWIND)
!(LJ_TARGET_ARM && LJ_TARGET_OSX)
#ifdef __clang__ #ifdef __clang__
/* http://llvm.org/bugs/show_bug.cgi?id=8703 */ /* http://llvm.org/bugs/show_bug.cgi?id=8703 */

View File

@ -66,12 +66,12 @@ LJ_ASMF void lj_vm_powi_sse(void);
#else #else
LJ_ASMF double lj_vm_trunc(double); LJ_ASMF double lj_vm_trunc(double);
LJ_ASMF double lj_vm_powi(double, int32_t); LJ_ASMF double lj_vm_powi(double, int32_t);
#if defined(__ANDROID__) || defined(__symbian__) #ifdef LUAJIT_NO_LOG2
LJ_ASMF double lj_vm_log2(double); LJ_ASMF double lj_vm_log2(double);
#else #else
#define lj_vm_log2 log2 #define lj_vm_log2 log2
#endif #endif
#if defined(__symbian__) #ifdef LUAJIT_NO_EXP2
LJ_ASMF double lj_vm_exp2(double); LJ_ASMF double lj_vm_exp2(double);
#else #else
#define lj_vm_exp2 exp2 #define lj_vm_exp2 exp2

View File

@ -25,14 +25,14 @@ LJ_FUNCA double lj_vm_tanh(double x) { return tanh(x); }
#if LJ_HASJIT #if LJ_HASJIT
#if defined(__ANDROID__) || defined(__symbian__) #ifdef LUAJIT_NO_LOG2
double lj_vm_log2(double a) double lj_vm_log2(double a)
{ {
return log(a) * 1.4426950408889634074; return log(a) * 1.4426950408889634074;
} }
#endif #endif
#if defined(__symbian__) #ifdef LUAJIT_NO_EXP2
double lj_vm_exp2(double a) double lj_vm_exp2(double a)
{ {
return exp(a * 0.6931471805599453); return exp(a * 0.6931471805599453);