[Vm-dev] VM Maker: BytecodeSets.spur-eem.58.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 1 09:33:35 UTC 2016


Eliot Miranda uploaded a new version of BytecodeSets to project VM Maker:
http://source.squeak.org/VMMaker/BytecodeSets.spur-eem.58.mcz

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

Name: BytecodeSets.spur-eem.58
Author: eem
Time: 1 September 2016, 11:33:26.908292 am
UUID: 1124d09b-cde5-41a4-9c6d-4a610aa72ee2
Ancestors: BytecodeSets.spur-cb.57

Nuke obsolete class (NewsquekV3).
Allow genPushNClosureTemps: without complaint for backward compatibility.
Add supportsFullBlocks for parser et al to test.

=============== Diff against BytecodeSets.spur-cb.57 ===============

Item was changed:
- SystemOrganization addCategory: #'BytecodeSets-NewsqueakV3'!
  SystemOrganization addCategory: #'BytecodeSets-NewsqueakV4'!
  SystemOrganization addCategory: #'BytecodeSets-ParseNodes'!
  SystemOrganization addCategory: #'BytecodeSets-SistaV1'!

Item was removed:
- EncoderForV3PlusClosures subclass: #EncoderForNewsqueakV3
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'BytecodeSets-NewsqueakV3'!
- 
- !EncoderForNewsqueakV3 commentStamp: 'eem 5/17/2014 16:42' prior: 0!
- An encoder for the Newsqueak V3 bytecode set.  It adds the following bytecodes that are part of the first Newspeak bytecode set.
- 
- 	127 	01111111 kkkkkkkk 		Push Implicit Receiver For Selector (self literalAt: kkkkkkkk)
- 	126 	01111110 jjjjjjjj kkkkkkkk 	Send Selector (self literalAt: kkkkkkkk) To Dynamic Superclass With NumArgs jjjjjjjj
- 	139	01000101 kkkkkkkk		Push Explicit Outer Receiver For Level (self literalAt: kkkkkkkk)!

Item was removed:
- ----- Method: EncoderForNewsqueakV3 class>>bytecodeSize: (in category 'instruction stream support') -----
- bytecodeSize: bytecode
- 	"Answer the number of bytes in the bytecode."
- 	bytecode <= 125 ifTrue:
- 		[^1].
- 	bytecode >= 176 ifTrue:
- 		[^1].
- 	bytecode >= 160 ifTrue: "long jumps"
- 		[^2].
- 	bytecode >= 144 ifTrue: "short jumps"
- 		[^1].
- 	"126, 127 & extensions"
- 	^#(3 2 2 2 2 2 3 2 2 1 1 1 2 2 3 3 3 4) at: bytecode - 125!

Item was removed:
- ----- Method: EncoderForNewsqueakV3 class>>interpretNextInstructionFor:in: (in category 'instruction stream support') -----
- interpretNextInstructionFor: aClient in: anInstructionStream
- 	"Double-dispatch through the encoder to select the correct instruction set decoder."
- 	^anInstructionStream interpretNextNSV3InstructionFor: aClient!

Item was added:
+ ----- Method: EncoderForNewsqueakV4>>supportsFullBlocks (in category 'testing') -----
+ supportsFullBlocks
+ 	"Answer if the instruction set supports full closures (closure creation from
+ 	 specfic methods instead of bytecodes embedded in an outer home method)."
+ 	
+ 	^false!

Item was changed:
  ----- Method: EncoderForSistaV1>>genPushNClosureTemps: (in category 'bytecode generation') -----
  genPushNClosureTemps: numTemps
- 	"Not supported anymore since we're migrating to FullBlockClosure"
- 	self notify: 'This instruction should not be used any more'.
  	"backward compatibility..."
  	numTemps timesRepeat: [ self genPushSpecialLiteral: nil ]!

Item was added:
+ ----- Method: EncoderForSistaV1>>supportsFullBlocks (in category 'testing') -----
+ supportsFullBlocks
+ 	"Answer if the instruction set supports full closures (closure creation from
+ 	 specfic methods instead of bytecodes embedded in an outer home method)."
+ 	
+ 	^true!



More information about the Vm-dev mailing list