The Trunk: Compiler-eem.400.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Compiler-eem.400.mcz

commits-2
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
  !