VariableNode.st
changeset 843 522c116f86d9
parent 789 d9bbb0970239
child 869 c483b1e6a0c3
--- a/VariableNode.st	Thu Apr 22 14:07:18 1999 +0200
+++ b/VariableNode.st	Sat Apr 24 23:39:42 1999 +0200
@@ -193,6 +193,60 @@
     ^ self
 !
 
+codeForSimpleReturnOn:aStream inBlock:b lineNumber:lineNrOrNil for:aCompiler
+    |code|
+
+    lineNrOrNil notNil ifTrue:[
+        self codeLineNumber:lineNrOrNil on:aStream for:aCompiler
+    ].
+
+    (type == #InstanceVariable) ifTrue:[
+        (index <= 8) ifTrue:[
+            code := #( retInstVar1
+                       retInstVar2
+                       retInstVar3
+                       retInstVar4
+                       retInstVar5
+                       retInstVar6
+                       retInstVar7
+                       retInstVar8) at:index.
+
+            aStream nextPut:code.
+            ^ self
+        ].
+    ].
+
+    (type == #MethodVariable) ifTrue:[
+        (index <= 6) ifTrue:[
+            code := #( retMethodVar1
+                       retMethodVar2
+                       retMethodVar3
+                       retMethodVar4
+                       retMethodVar5
+                       retMethodVar6) at:index.
+
+            aStream nextPut:code.
+            ^ self
+        ].
+    ].
+
+    (type == #MethodArg) ifTrue:[
+        (index <= 2) ifTrue:[
+            code := #(retMethodArg1
+                      retMethodArg2) at:index.
+
+            aStream nextPut:code.
+            ^ self
+        ]
+    ].
+
+    "/ anything else must be pushed, then top rturned
+
+    self codeOn:aStream inBlock:b for:aCompiler.
+    aStream nextPut:#retTop
+
+!
+
 codeLoadOn:aStream type:type index:index inBlock:codeBlock for:aCompiler
     |theCode b deltaLevel litIndex specialGlobalIndex
      bvIdx bvTyp blocksCode|
@@ -722,5 +776,5 @@
 !VariableNode class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/VariableNode.st,v 1.38 1998-10-19 18:44:24 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/VariableNode.st,v 1.39 1999-04-24 21:39:09 cg Exp $'
 ! !