--- a/BCompiler.st Sun Apr 14 01:09:01 1996 +0200
+++ b/BCompiler.st Sun Apr 14 01:29:58 1996 +0200
@@ -952,6 +952,7 @@
(aSymbol == #storeClassVarS) ifTrue:[extra := #speciallitS.stackDelta := -1. ^ 40].
(aSymbol == #storeGlobalS) ifTrue:[extra := #speciallitS. stackDelta := -1. ^ 40].
+ (aSymbol == #pushSpecialGlobal) ifTrue:[stackDelta := 1. extra := #index. ^ 200].
(aSymbol == #storeOuterBlockVar) ifTrue:[stackDelta := -1. extra := #indexLevel. ^ 129].
@@ -1594,6 +1595,16 @@
^ false
!
+isSpecialGlobalSymbol:nm
+ "return true, if unary selector sel is a special selector"
+
+ ^ #(Array String FloatArray DoubleArray
+ Point Symbol Smalltalk Processor) includesIdentical:nm
+
+ "Created: 13.4.1996 / 20:15:35 / cg"
+ "Modified: 13.4.1996 / 20:24:01 / cg"
+!
+
isSpecialSendSelector:sel
"return true, if unary selector sel is a special selector"
@@ -1813,6 +1824,20 @@
^ true
!
+specialGlobalCodeFor:aSymbol
+ aSymbol == #Array ifTrue:[^ 0].
+ aSymbol == #String ifTrue:[^ 1].
+ aSymbol == #FloatArray ifTrue:[^ 2].
+ aSymbol == #DoubleArray ifTrue:[^ 3].
+ aSymbol == #Point ifTrue:[^ 4].
+ aSymbol == #Symbol ifTrue:[^ 5].
+ aSymbol == #Smalltalk ifTrue:[^ 6].
+ aSymbol == #Processor ifTrue:[^ 7].
+
+ self error:'invalid special global symbol'.
+ errorFlag := #Error
+!
+
specialSendCodeFor:aSymbol
aSymbol == #top ifTrue:[^ 0].
aSymbol == #bottom ifTrue:[^ 1].
@@ -2177,6 +2202,6 @@
!ByteCodeCompiler class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/Attic/BCompiler.st,v 1.72 1996-04-13 23:08:38 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/Attic/BCompiler.st,v 1.73 1996-04-13 23:29:58 cg Exp $'
! !
ByteCodeCompiler initialize!