Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.385.mcz==================== Summary ====================
Name: Compiler-eem.385
Author: eem
Time: 16 June 2018, 4:29:33.44317 pm
UUID: 07c5fc8e-5463-4db6-912a-fdc0125ce7df
Ancestors: Compiler-eem.384
The scanner for spotting closure creation bytecodes in methods must identify full block closure creations.
=============== Diff against Compiler-eem.384 ===============
Item was changed:
----- Method: EncoderForSistaV1 class>>createClosureScanBlock (in category 'compiled method support') -----
createClosureScanBlock
"Answer a block argument for InstructionStream>>scanFor: that answers true
+ for block closure creation bytecodes. Note that with this interface we can't answer
- for block closure creation bytecodes. ote that with this interface we can't answer
true for the extension in front of a push closure bytecode and so the interface may
have to change at some point."
+ "* 224 11100000 aaaaaaaa Extend A (Ext A = Ext A prev * 256 + Ext A)
+ * 225 11100001 bbbbbbbb Extend B (Ext B = Ext B prev * 256 + Ext B)
+ ** 249 11111001 xxxxxxxx siyyyyyy push Closure Compiled block literal index xxxxxxxx (+ Extend A * 256) numCopied yyyyyy receiverOnStack: s = 1 ignoreOuterContext: i = 1
+ ** 250 11111010 eeiiikkk jjjjjjjj Push Closure Num Copied iii (+ExtA//16*8) Num Args kkk (+ ExtA\\16*8) BlockSize jjjjjjjj (+ExtB*256). ee = num extensions"
+ ^[:b| b >= 249 and: [b <= 250]]!
- "* 224 11100000 aaaaaaaa Extend A (Ext A = Ext A prev * 256 + Ext A)
- * 225 11100001 bbbbbbbb Extend B (Ext B = Ext B prev * 256 + Ext B)
- ** 250 11111010 eeiiikkk jjjjjjjj Push Closure Num Copied iii (+ExtA//16*8) Num Args kkk (+ ExtA\\16*8) BlockSize jjjjjjjj (+ExtB*256). ee = num extensions"
- ^[:b| b = 250]!