mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
FFI: Fix FOLD rules for int64_t comparisons.
Thanks to Peter Cawley.
This commit is contained in:
parent
f50bf7585a
commit
e205ad0c55
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user