diff options
author | Mike Pall <mike> | 2012-10-07 15:47:11 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-10-07 15:47:11 +0200 |
commit | 0561a5693884d76db5b75f7cc746478b325b311b (patch) | |
tree | beef0d8674adf5b0f24a101e4e92613ee85e996e /src/lj_ffrecord.c | |
parent | 0d62e2e1ab450a2d2d2291dc9da43606bd573bf7 (diff) | |
download | luajit-0561a5693884d76db5b75f7cc746478b325b311b.tar.gz luajit-0561a5693884d76db5b75f7cc746478b325b311b.tar.bz2 luajit-0561a5693884d76db5b75f7cc746478b325b311b.zip |
From Lua 5.2: Add math.log(x, base).
Diffstat (limited to 'src/lj_ffrecord.c')
-rw-r--r-- | src/lj_ffrecord.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index b9e0d8f9..270c10c5 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c | |||
@@ -447,6 +447,28 @@ static void LJ_FASTCALL recff_math_unary(jit_State *J, RecordFFData *rd) | |||
447 | J->base[0] = emitir(IRTN(IR_FPMATH), lj_ir_tonum(J, J->base[0]), rd->data); | 447 | J->base[0] = emitir(IRTN(IR_FPMATH), lj_ir_tonum(J, J->base[0]), rd->data); |
448 | } | 448 | } |
449 | 449 | ||
450 | /* Record math.log. */ | ||
451 | static void LJ_FASTCALL recff_math_log(jit_State *J, RecordFFData *rd) | ||
452 | { | ||
453 | TRef tr = lj_ir_tonum(J, J->base[0]); | ||
454 | if (J->base[1]) { | ||
455 | #ifdef LUAJIT_NO_LOG2 | ||
456 | uint32_t fpm = IRFPM_LOG; | ||
457 | #else | ||
458 | uint32_t fpm = IRFPM_LOG2; | ||
459 | #endif | ||
460 | TRef trb = lj_ir_tonum(J, J->base[1]); | ||
461 | tr = emitir(IRTN(IR_FPMATH), tr, fpm); | ||
462 | trb = emitir(IRTN(IR_FPMATH), trb, fpm); | ||
463 | trb = emitir(IRTN(IR_DIV), lj_ir_knum_one(J), trb); | ||
464 | tr = emitir(IRTN(IR_MUL), tr, trb); | ||
465 | } else { | ||
466 | tr = emitir(IRTN(IR_FPMATH), tr, IRFPM_LOG); | ||
467 | } | ||
468 | J->base[0] = tr; | ||
469 | UNUSED(rd); | ||
470 | } | ||
471 | |||
450 | /* Record math.atan2. */ | 472 | /* Record math.atan2. */ |
451 | static void LJ_FASTCALL recff_math_atan2(jit_State *J, RecordFFData *rd) | 473 | static void LJ_FASTCALL recff_math_atan2(jit_State *J, RecordFFData *rd) |
452 | { | 474 | { |