[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