Permalink
Browse files

FFI: Fix FOLD rules for int64_t comparisons.

Thanks to Peter Cawley.
  • Loading branch information...
Mike Pall
Mike Pall committed Mar 30, 2017
1 parent f50bf75 commit e205ad0c5533c0a538596b63cf12d3fd0e4cc8f2
Showing with 8 additions and 8 deletions.
  1. +8 −8 src/lj_opt_fold.c
View
@@ -444,14 +444,14 @@ LJFOLDF(kfold_int64comp)
#if LJ_HASFFI
uint64_t a = ir_k64(fleft)->u64, b = ir_k64(fright)->u64;
switch ((IROp)fins->o) {
case IR_LT: return CONDFOLD(a < b);
case IR_GE: return CONDFOLD(a >= b);
case IR_LE: return CONDFOLD(a <= b);
case IR_GT: return CONDFOLD(a > b);
case IR_ULT: return CONDFOLD((uint64_t)a < (uint64_t)b);
case IR_UGE: return CONDFOLD((uint64_t)a >= (uint64_t)b);
case IR_ULE: return CONDFOLD((uint64_t)a <= (uint64_t)b);
case IR_UGT: return CONDFOLD((uint64_t)a > (uint64_t)b);
case IR_LT: return CONDFOLD((int64_t)a < (int64_t)b);
case IR_GE: return CONDFOLD((int64_t)a >= (int64_t)b);
case IR_LE: return CONDFOLD((int64_t)a <= (int64_t)b);
case IR_GT: return CONDFOLD((int64_t)a > (int64_t)b);
case IR_ULT: return CONDFOLD(a < b);
case IR_UGE: return CONDFOLD(a >= b);
case IR_ULE: return CONDFOLD(a <= b);
case IR_UGT: return CONDFOLD(a > b);
default: lua_assert(0); return FAILFOLD;
}
#else

0 comments on commit e205ad0

Please sign in to comment.