From 745d1e3cdf2ea0275f4a955a353e3a3a04cafd69 Mon Sep 17 00:00:00 2001 From: Drahflow Date: Mon, 22 Jun 2015 17:29:55 +0200 Subject: Some instruction shuffling (3% performance boost) --- elymas/lib/sys/opt.ey | 12 +++++------- 1 file 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 }' ? * -- cgit v1.2.3