--- a/ReturnNode.st Thu Feb 16 04:03:28 1995 +0100
+++ b/ReturnNode.st Thu Feb 16 17:27:24 1995 +0100
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 1989 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -19,9 +19,9 @@
ReturnNode comment:'
COPYRIGHT (c) 1989 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
-$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.6 1994-08-11 21:42:09 claus Exp $
+$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.7 1995-02-16 16:27:24 claus Exp $
'!
!ReturnNode class methodsFor:'documentation'!
@@ -29,7 +29,7 @@
copyright
"
COPYRIGHT (c) 1989 by Claus Gittinger
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -42,7 +42,7 @@
version
"
-$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.6 1994-08-11 21:42:09 claus Exp $
+$Header: /cvs/stx/stx/libcomp/ReturnNode.st,v 1.7 1995-02-16 16:27:24 claus Exp $
"
!
@@ -92,66 +92,66 @@
"/ after 2.10
b notNil ifTrue:[
- expression codeOn:aStream inBlock:b.
- aStream nextPut:#homeRetTop.
+ expression codeOn:aStream inBlock:b.
+ aStream nextPut:#homeRetTop.
^ self
].
- (expression isKindOf:PrimaryNode) ifTrue:[
- type := expression type.
- (type == #Nil) ifTrue:[
- aStream nextPut:#retNil. ^ self
- ].
- (type == #True) ifTrue:[
- aStream nextPut:#retTrue. ^ self
- ].
- (type == #False) ifTrue:[
- aStream nextPut:#retFalse. ^ self
- ].
- (type == #Self) ifTrue:[
- aStream nextPut:#retSelf. ^ self
- ].
- (type == #Integer) ifTrue:[
- value := expression evaluate.
- (value between: -128 and:127) ifTrue:[
- (value == 0) ifTrue:[
- aStream nextPut:#ret0. ^ self
- ].
- aStream nextPut:#retNum.
- aStream nextPut:value. ^ self
- ]
- ].
- (type == #InstanceVariable) ifTrue:[
- index := expression index.
- (index <= 8) ifTrue:[
- aStream nextPut:(#(retInstVar1
- retInstVar2
- retInstVar3
- retInstVar4
- retInstVar5
- retInstVar6
- retInstVar7
- retInstVar8) at:index). ^ self
- ]
- ].
- (type == #MethodVariable) ifTrue:[
- index := expression index.
- (index <= 6) ifTrue:[
- aStream nextPut:(#(retMethodVar1
- retMethodVar2
- retMethodVar3
- retMethodVar4
- retMethodVar5
- retMethodVar6) at:index). ^ self
- ]
- ].
- (type == #MethodArg) ifTrue:[
- index := expression index.
- (index <= 2) ifTrue:[
- aStream nextPut:(#(retMethodArg1
- retMethodArg2) at:index). ^ self
- ]
- ]
+ expression isPrimary ifTrue:[
+ type := expression type.
+ (type == #Nil) ifTrue:[
+ aStream nextPut:#retNil. ^ self
+ ].
+ (type == #True) ifTrue:[
+ aStream nextPut:#retTrue. ^ self
+ ].
+ (type == #False) ifTrue:[
+ aStream nextPut:#retFalse. ^ self
+ ].
+ (type == #Self) ifTrue:[
+ aStream nextPut:#retSelf. ^ self
+ ].
+ (type == #Integer) ifTrue:[
+ value := expression evaluate.
+ (value between: -128 and:127) ifTrue:[
+ (value == 0) ifTrue:[
+ aStream nextPut:#ret0. ^ self
+ ].
+ aStream nextPut:#retNum.
+ aStream nextPut:value. ^ self
+ ]
+ ].
+ (type == #InstanceVariable) ifTrue:[
+ index := expression index.
+ (index <= 8) ifTrue:[
+ aStream nextPut:(#(retInstVar1
+ retInstVar2
+ retInstVar3
+ retInstVar4
+ retInstVar5
+ retInstVar6
+ retInstVar7
+ retInstVar8) at:index). ^ self
+ ]
+ ].
+ (type == #MethodVariable) ifTrue:[
+ index := expression index.
+ (index <= 6) ifTrue:[
+ aStream nextPut:(#(retMethodVar1
+ retMethodVar2
+ retMethodVar3
+ retMethodVar4
+ retMethodVar5
+ retMethodVar6) at:index). ^ self
+ ]
+ ].
+ (type == #MethodArg) ifTrue:[
+ index := expression index.
+ (index <= 2) ifTrue:[
+ aStream nextPut:(#(retMethodArg1
+ retMethodArg2) at:index). ^ self
+ ]
+ ]
].
expression codeOn:aStream inBlock:b.
aStream nextPut:#retTop