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!
vm-dev@lists.squeakfoundation.org