mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 07:34:07 +00:00
Add minimal set of fold rules for KINT64.
This commit is contained in:
parent
588fa0481f
commit
281f426d60
@ -661,6 +661,25 @@ LJFOLDF(simplify_intsub_k)
|
|||||||
return RETRYFOLD;
|
return RETRYFOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LJFOLD(ADD any KINT64)
|
||||||
|
LJFOLDF(simplify_intadd_k64)
|
||||||
|
{
|
||||||
|
if (ir_kint64(fright)->u64 == 0) /* i + 0 ==> i */
|
||||||
|
return LEFTFOLD;
|
||||||
|
return NEXTFOLD;
|
||||||
|
}
|
||||||
|
|
||||||
|
LJFOLD(SUB any KINT64)
|
||||||
|
LJFOLDF(simplify_intsub_k64)
|
||||||
|
{
|
||||||
|
uint64_t k = ir_kint64(fright)->u64;
|
||||||
|
if (k == 0) /* i - 0 ==> i */
|
||||||
|
return LEFTFOLD;
|
||||||
|
fins->o = IR_ADD; /* i - k ==> i + (-k) */
|
||||||
|
fins->op2 = (IRRef1)lj_ir_kint64(J, -k); /* Overflow for -2^63 ok. */
|
||||||
|
return RETRYFOLD;
|
||||||
|
}
|
||||||
|
|
||||||
LJFOLD(SUB any any)
|
LJFOLD(SUB any any)
|
||||||
LJFOLD(SUBOV any any)
|
LJFOLD(SUBOV any any)
|
||||||
LJFOLDF(simplify_intsub)
|
LJFOLDF(simplify_intsub)
|
||||||
|
Loading…
Reference in New Issue
Block a user