diff options
| -rw-r--r-- | elymas/lib/sys/opt.ey | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/elymas/lib/sys/opt.ey b/elymas/lib/sys/opt.ey index 300a454..e71a6fc 100644 --- a/elymas/lib/sys/opt.ey +++ b/elymas/lib/sys/opt.ey @@ -2345,9 +2345,8 @@ isScoping { allocatedScopeMightEscape { [ - 8 /r15 :subqImm8Reg - /r15 :popqMem - 8 /r15 :subqImm8Reg + 8 neg /r15 :popqMemDisp8 + 16 /r15 :subqImm8Reg /r14 /r15 :movqRegMem /r14 /rsi :movqRegReg INITIALSCOPESIZE /rdi :movqImmReg @@ -2360,9 +2359,8 @@ # this works even though we cannot GC the scope object anymore, because # the stack contents are tracked anyway [ - 8 /r15 :subqImm8Reg - /r15 :popqMem - 8 /r15 :subqImm8Reg + 8 neg /r15 :popqMemDisp8 + 16 /r15 :subqImm8Reg /r14 /r15 :movqRegMem INITIALSCOPESIZE 8 mul 32 add /r15 :subqImm8Reg /rax /rax :xorqRegReg @@ -2389,8 +2387,8 @@ } { } ? * }' { [ + 8 neg /r15 :popqMemDisp8 8 /r15 :subqImm8Reg - /r15 :popqMem ] emitOpcodes }' ? * |
