diff options
| author | Drahflow <drahflow@gmx.de> | 2015-06-22 17:29:55 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2015-06-22 17:29:55 +0200 |
| commit | 745d1e3cdf2ea0275f4a955a353e3a3a04cafd69 (patch) | |
| tree | 08ddc52754faa2fe23ea2ca89cad417cbef3e680 /elymas/lib | |
| parent | 9fe65a93ad8ba92808fcef1a077dc9e818130f1a (diff) | |
Some instruction shuffling (3% performance boost)
Diffstat (limited to 'elymas/lib')
| -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 }' ? * |
