--- 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 $'
! !