[Vm-dev] VM Maker: Cog-eem.56.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Nov 26 23:45:02 UTC 2012
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.56.mcz
==================== Summary ====================
Name: Cog-eem.56
Author: eem
Time: 26 November 2012, 3:44:48.674 pm
UUID: 8beb4f67-65f8-48a3-89f8-dcfb5311613c
Ancestors: Cog-lw.55
Update Eliot's Type Checker to use willPushNil. Premature, but
I'll forget otherwise and this code is essentially dormant.
=============== Diff against Cog-lw.55 ===============
Item was changed:
----- Method: ETC>>pushClosureCopyNumCopiedValues:numArgs:blockSize: (in category 'instruction decoding') -----
pushClosureCopyNumCopiedValues: numCopied numArgs: numArgs blockSize: blockSize
"Push Closure bytecode. Either compute the end of the block if this is
the block we're analysing, or skip it, adjusting the stack as appropriate."
| blockClosure j |
blockEndStack addLast: blockEnd.
blockEnd := scanner pc + blockSize.
contextStack addLast: currentContext.
currentContext
pc: scanner pc;
pushClosureCopyNumCopiedValues: numCopied numArgs: numArgs blockSize: blockSize.
blockClosure := currentContext top.
currentContext := blockClosure asContext.
1 to: numArgs do:
[:i| currentContext push: 'blkarg', i printString].
1 to: numCopied do:
[:i| currentContext push: (blockClosure at: i)].
j := numArgs + numCopied.
+ [scanner willPushNil] whileTrue:
- [scanner nextByte = ParseNode pushNilCode] whileTrue:
[scanner interpretNextInstructionFor: self.
currentContext at: currentContext stackPtr put: 'blktmp', (j := j + 1) printString]
"ETC sendsForMethod: (ETC compiledMethodAt: #pushClosureCopyNumCopiedValues:numArgs:blockSize:)"!
More information about the Vm-dev
mailing list