aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_opt_narrow.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_narrow.c b/src/lj_opt_narrow.c
index 1938766c..688cc7b4 100644
--- a/src/lj_opt_narrow.c
+++ b/src/lj_opt_narrow.c
@@ -360,7 +360,7 @@ TRef lj_opt_narrow_mod(jit_State *J, TRef rb, TRef rc)
360 tref_isk(rc) && tref_isint(rc)) { /* Optimize x % k. */ 360 tref_isk(rc) && tref_isint(rc)) { /* Optimize x % k. */
361 int32_t k = IR(tref_ref(rc))->i; 361 int32_t k = IR(tref_ref(rc))->i;
362 if (k > 0 && (k & (k-1)) == 0) { /* i % 2^k ==> band(i, 2^k-1) */ 362 if (k > 0 && (k & (k-1)) == 0) { /* i % 2^k ==> band(i, 2^k-1) */
363 if (tref_isint(rb)) 363 if (tref_isinteger(rb))
364 return emitir(IRTI(IR_BAND), rb, lj_ir_kint(J, k-1)); 364 return emitir(IRTI(IR_BAND), rb, lj_ir_kint(J, k-1));
365 } 365 }
366 } 366 }
@@ -381,7 +381,7 @@ TRef lj_opt_narrow_pow(jit_State *J, TRef rb, TRef rc, TValue *vc)
381 lj_trace_err(J, LJ_TRERR_BADTYPE); 381 lj_trace_err(J, LJ_TRERR_BADTYPE);
382 n = numV(vc); 382 n = numV(vc);
383 /* Limit narrowing for pow to small exponents (or for two constants). */ 383 /* Limit narrowing for pow to small exponents (or for two constants). */
384 if ((tref_isint(rc) && tref_isk(rc) && tref_isk(rb)) || 384 if ((tref_isk(rc) && tref_isint(rc) && tref_isk(rb)) ||
385 ((J->flags & JIT_F_OPT_NARROW) && 385 ((J->flags & JIT_F_OPT_NARROW) &&
386 (numisint(n) && n >= -65536.0 && n <= 65536.0))) { 386 (numisint(n) && n >= -65536.0 && n <= 65536.0))) {
387 TRef tmp; 387 TRef tmp;