mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix last commit.
This commit is contained in:
parent
ff0a1f3f4e
commit
0dd175d9e7
@ -818,9 +818,9 @@ LJFOLDF(simplify_nummuldiv_k)
|
|||||||
return RETRYFOLD;
|
return RETRYFOLD;
|
||||||
} else if (fins->o == IR_DIV) { /* x / 2^k ==> x * 2^-k */
|
} else if (fins->o == IR_DIV) { /* x / 2^k ==> x * 2^-k */
|
||||||
uint64_t u = ir_knum(fright)->u64;
|
uint64_t u = ir_knum(fright)->u64;
|
||||||
if ((u & U64x(000fffff,ffffffff)) == 0 &&
|
uint32_t ex = ((uint32_t)(u >> 52) & 0x7ff);
|
||||||
(uint32_t)(u = ((u >> 52) & 0x7ff)) - 1 < 0x7fd) {
|
if ((u & U64x(000fffff,ffffffff)) == 0 && ex - 1 < 0x7fd) {
|
||||||
u = (u & (uint64_t)1 << 63) | ((uint64_t)(0x7fe - (uint32_t)u) << 52);
|
u = (u & ((uint64_t)1 << 63)) | ((uint64_t)(0x7fe - ex) << 52);
|
||||||
fins->o = IR_MUL; /* Multiply by exact reciprocal. */
|
fins->o = IR_MUL; /* Multiply by exact reciprocal. */
|
||||||
fins->op2 = lj_ir_knum_u64(J, u);
|
fins->op2 = lj_ir_knum_u64(J, u);
|
||||||
return RETRYFOLD;
|
return RETRYFOLD;
|
||||||
|
Loading…
Reference in New Issue
Block a user