]> gitweb.factorcode.org Git - factor.git/commitdiff
cpu.x86: better code without locals
authorBjörn Lindqvist <bjourne@gmail.com>
Fri, 22 Apr 2016 10:59:21 +0000 (12:59 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Fri, 22 Apr 2016 10:59:21 +0000 (12:59 +0200)
basis/cpu/x86/x86.factor

index 1b3f9cf4ac36e41aed93538cbd1f597a920f0c23..e3125ecc30f3295838c356b0fd199bbff33a8ec5 100644 (file)
@@ -602,11 +602,11 @@ M:: x86 %dispatch ( src temp -- )
     [ (align-code) ]
     bi ;
 
-M:: x86 %spill ( src rep dst -- )
-    dst src rep %copy ;
+M: x86 %spill ( src rep dst -- )
+    -rot %copy ;
 
-M:: x86 %reload ( dst rep src -- )
-    dst src rep %copy ;
+M: x86 %reload ( dst rep src -- )
+    swap %copy ;
 
 M:: x86 %local-allot ( dst size align offset -- )
     dst offset local-allot-offset special-offset stack@ LEA ;
@@ -656,8 +656,12 @@ M:: x86 %alien-assembly ( reg-inputs
     reg-outputs [ first3 %load-reg-param ] each
     dead-outputs [ first2 %discard-reg-param ] each ;
 
-M: x86 %alien-invoke ( reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size symbols dll gc-map -- )
-    '[ _ _ _ %c-invoke ] %alien-assembly ;
+M: x86 %alien-invoke ( reg-inputs stack-inputs
+                       reg-outputs dead-outputs
+                       cleanup
+                       stack-size
+                       symbols dll gc-map -- )
+                       '[ _ _ _ %c-invoke ] %alien-assembly ;
 
 M:: x86 %alien-indirect ( src reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size gc-map -- )
     reg-inputs stack-inputs reg-outputs dead-outputs cleanup stack-size [