"====================================================================== | | Smalltalk in Smalltalk compiler constant definitions | | $Revision: 1.7.5$ | $Date: 2000/05/28 16:56:52$ | $Author: pb$ | ======================================================================" "====================================================================== | | Copyright 1988-92, 1994-95, 1999, 2000 Free Software Foundation, Inc. | Written by Steve Byrne. | | This file is part of GNU Smalltalk. | | GNU Smalltalk is free software; you can redistribute it and/or modify it | under the terms of the GNU General Public License as published by the Free | Software Foundation; either version 2, or (at your option) any later version. | | GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | details. | | You should have received a copy of the GNU General Public License along with | GNU Smalltalk; see the file COPYING. If not, write to the Free Software | Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ======================================================================" Smalltalk at: #VMByteCodeNames put: ((Dictionary new: 75) at: #PushReceiverVariable put: 0; at: #PushTemporaryVariable put: 16; at: #PushLitConstant put: 32; at: #PushLitVariable put: 64; at: #PopReceiverVariable put: 96; at: #PopTemporaryVariable put: 104; at: #PushSpecial put: 112; at: #PushNil put: 115; at: #PushZero put: 117; at: #ReturnSpecial put: 120; at: #ReturnSelf put: 120; at: #ReturnMethodStackTop put: 124; at: #ReturnContextStackTop put: 125; at: #BigLiteral put: 126; at: #PushIndexed put: 128; at: #StoreIndexed put: 129; at: #PopStoreIndexed put: 130; at: #SendSelector1ExtByte put: 131; at: #SendSelector2ExtByte put: 132; at: #SendSuper1ExtByte put: 133; at: #SendSuper2ExtByte put: 134; at: #PopStackTop put: 135; at: #DupStackTop put: 136; at: #PushActiveContext put: 137; at: #OuterVar put: 138; at: #Nop put: 139; at: #ReplaceSelf put: 140; at: #ReplaceOne put: 141; at: #ReplaceIndexed put: 142; at: #JumpShort put: 144; at: #PopJumpFalseShort put: 152; at: #JumpLong put: 160; at: #PopJumpTrue put: 168; at: #PopJumpFalse put: 172; at: #SendSpecial put: 176; at: #BlockCopyColonSpecial put: 200; at: #SendSelectorShort put: 208; yourself). Smalltalk at: #VMOtherConstants put: ((Dictionary new: 39) at: #ReceiverIndex put: 0; at: #TrueIndex put: 1; at: #FalseIndex put: 2; at: #NilIndex put: 3; at: #LiteralMinusOneIndex put: 4; at: #LiteralZeroIndex put: 5; at: #LiteralOneIndex put: 6; at: #LiteralTwoIndex put: 7; at: #PushLiteral put: 0; at: #PushVariable put: 64; at: #StoreVariable put: 128; at: #PopStoreVariable put: 192; at: #ReceiverLocation put: 0; at: #TemporaryLocation put: 64; at: #LiteralConstantLocation put: 128; at: #LiteralVariableLocation put: 192; yourself)! VMOtherConstants at: #VMSpecialSelectors put: ((IdentityDictionary new: 65) at: #+ put: 0; at: #- put: 1; at: #< put: 2; at: #> put: 3; at: #<= put: 4; at: #>= put: 5; at: #= put: 6; at: #~= put: 7; at: #* put: 8; at: #/ put: 9; at: #\\ put: 10; at: #bitShift: put: 12; at: #// put: 13; at: #bitAnd: put: 14; at: #bitOr: put: 15; at: #at: put: 16; at: #at:put: put: 17; at: #size put: 18; at: #next put: 19; at: #nextPut: put: 20; at: #atEnd put: 21; at: #== put: 22; at: #class put: 23; at: #blockCopy:temporaries: put: 24; at: #value put: 25; at: #value: put: 26; at: #do: put: 27; at: #new put: 28; at: #new: put: 29; at: #isNil put: 30; at: #notNil put: 31; yourself). VMOtherConstants at: #VMSpecialIdentifiers put: ((LookupTable new: 19) at: 'self' put: 0; at: 'true' put: 1; at: 'false' put: 2; at: 'nil' put: 3; at: 'thisContext' put: 25; at: 'super' put: -1; at: -1 put: 4; at: 0 put: 5; at: 1 put: 6; at: 2 put: 7; yourself). VMOtherConstants at: #VMSpecialMethods put: ((IdentityDictionary new: 29) at: #whileTrue put: nil ; at: #whileFalse put: nil ; at: #whileTrue: put: nil ; at: #whileFalse: put: nil ; at: #timesRepeat: put: #compileTimesRepeatFor: ; at: #to:do: put: #compileLoopFor: ; at: #to:by:do: put: #compileLoopFor: ; at: #ifTrue: put: #compileBooleanFor: ; at: #ifTrue:ifFalse: put: #compileBooleanFor: ; at: #ifFalse: put: #compileBooleanFor: ; at: #ifFalse:ifTrue: put: #compileBooleanFor: ; at: #and: put: #compileBooleanFor: ; at: #or: put: #compileBooleanFor: ; yourself) !