diff options
| -rw-r--r-- | compiler/elymasAsmLib.ey | 9 | ||||
| -rw-r--r-- | elymas/lib/sys/opt.ey | 2 |
2 files changed, 4 insertions, 7 deletions
diff --git a/compiler/elymasAsmLib.ey b/compiler/elymasAsmLib.ey index 795e9a1..191f1fb 100644 --- a/compiler/elymasAsmLib.ey +++ b/compiler/elymasAsmLib.ey @@ -361,13 +361,11 @@ # freelist code must not modify rbx, rdi # FIXME, find why lib/sys/opt.ey requires unmodified rdi # @takeFromFreelist - /rdi /rax :movqRegReg - /rax :decqReg + 1 neg /rdi /rax :leaqMemDisp8Reg /rax /rax :bsrqRegReg # compute log_2(rdi) - /rax :incqReg freeLists /rsi :movqImmReg - 8 /rax /rsi /rcx :leaqMemIndexScaleReg # load correct freelist start + 8 8 /rax /rsi /rcx :leaqMemIndexScaleDisp8Reg # load correct freelist start /rax /rax :xorqRegReg /rcx /rax :orqMemReg # load entry /freeListUseful :jnzLbl8 @@ -394,8 +392,7 @@ %F0 /rsi :andqImm8Reg # reset lower 4 bit /returnFreeListBlock :jzLbl8 - /rax /rdi /rdx :leaqMemIndexReg - 8 /rdx :addqImm8Reg + 8 1 /rax /rdi /rdx :leaqMemIndexScaleDisp8Reg %F0 /rdx :andqImm8Reg # align on 16 byte cell # rdx == start of remaining block diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey index 5163c63..78b716c 100644 --- a/elymas/lib/sys/opt.ey +++ b/elymas/lib/sys/opt.ey @@ -1786,7 +1786,7 @@ rewriteConstantStar rewriteConstantQuestionStar rewriteIntegerTrace - # rewriteArithmetics + # rewriteArithmetics # SUPERSEDED BY rewriteIntegerTrace rewriteArithmeticsOptimistic rewriteSimpleFunctions testAllocatedScopeEscape |
