[squeak-dev] The Trunk: Compiler-eem.400.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jan 18 21:14:22 UTC 2019


Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.400.mcz

==================== Summary ====================

Name: Compiler-eem.400
Author: eem
Time: 18 January 2019, 1:14:15.703384 pm
UUID: 0454c383-0390-4733-ad3e-ed056ace7715
Ancestors: Compiler-eem.399

Fix some typos in the V3 bytecode set description

=============== Diff against Compiler-eem.399 ===============

Item was changed:
  BytecodeEncoder subclass: #EncoderForV3
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'Compiler-Kernel'!
  
+ !EncoderForV3 commentStamp: 'eem 1/18/2019 12:38' prior: 0!
- !EncoderForV3 commentStamp: 'eem 5/17/2014 11:58' prior: 0!
  I add behaviour to Encoder to size and emit bytecodes for the Squeak V3.x VM bytecode set, a close variant of the original Smalltalk-80 bytecode set defined in the Blue Book.
  
  	0-15 		0000iiii 	Push Receiver Variable #iiii
  	16-31 		0001iiii 	Push Temporary Location #iiii
  	32-63 		001iiiii 		Push Literal Constant #iiiii
  	64-95 		010iiiii 		Push Literal Variable #iiiii
  	96-103 	01100iii 	Pop and Store Receiver Variable #iii
  	104-111 	01101iii 	Pop and Store Temporary Location #iii
  	112-119 	01110iii 	Push (receiver, true, false, nil, -1, 0, 1, 2) [iii]
  	120-123 	011110ii 	Return (receiver, true, false, nil) [ii] From Message
  	124-125 	0111110i 	Return Stack Top From (Message, Block) [i]
  	(126-127 unassigned)
  	128 		10000000 jjkkkkkk 	Push (Receiver Variable, Temporary Location, Literal Constant, Literal Variable) [jj] #kkkkkk
  	129 		10000001 jjkkkkkk 	Store (Receiver Variable, Temporary Location, Illegal, Literal Variable) [jj] #kkkkkk
  	130 		10000010 jjkkkkkk 	Pop and Store (Receiver Variable, Temporary Location, Illegal, Literal Variable) [jj] #kkkkkk
  	131 		10000011 jjjkkkkk 	Send Literal Selector #kkkkk With jjj Arguments
  	132 		10000100 iiijjjjj kkkkkkkk 	(Send, Send Super, Push Receiver Variable, Push Literal Constant, Push Literal Variable, Store Receiver Variable, Store-Pop Receiver Variable, Store Literal Variable)[iii] #kkkkkkkk jjjjj (for sends jjjjj = numArgs)
+ 	133 		10000101 jjjkkkkk 	Send Literal Selector #kkkkk To Superclass With jjj Arguments
+ 	134 		10000110 jjkkkkkk 	Send Literal Selector #kkkkkk With jj Arguments
- 	133 		10000011 jjjkkkkk 	Send Literal Selector #kkkkk To Superclass With jjj Arguments
- 	134 		10000011 jjjkkkkk 	Send Literal Selector #kkkkk With jjj Arguments
  	135 		10000111 	Pop Stack Top
  	136 		10001000 	Duplicate Stack Top
  	137 		10001001 	Push Active Context
  	(138-143 unassigned)
  	144-151 	10010iii 		Jump iii + 1 (i.e., 1 through 8)
  	152-159 	10011iii 		Pop and Jump 0n False iii +1 (i.e., 1 through 8)
  	160-167 	10100iii jjjjjjjj 	Jump(iii - 4) *256+jjjjjjjj
  	168-171 	101010ii jjjjjjjj 	Pop and Jump On True ii *256+jjjjjjjj
  	172-175 	101011ii jjjjjjjj 	Pop and Jump On False ii *256+jjjjjjjj
  	176-191 	1011iiii 		Send Arithmetic Message #iiii
  	192-207 	1100iiii 		Send Special Message #iiii
  	208-223 	1101iiii 		Send Literal Selector #iiii With No Arguments
  	224-239 	1110iiii 		Send Literal Selector #iiii With 1 Argument
  	240-255 	1111iiii 		Send Literal Selector #iiii With 2 Arguments
  !



More information about the Squeak-dev mailing list