Nicolas Cellier uploaded a new version of Compiler to project The Trunk: http://source.squeak.org/trunk/Compiler-nice.152.mcz
==================== Summary ====================
Name: Compiler-nice.152 Author: nice Time: 24 July 2010, 6:38:46.043 pm UUID: 11850e30-a071-425e-a01a-a52faffbddcd Ancestors: Compiler-jcg.147
Add the possibility in new code generation scheme to access shared variables by sending message #value to the variable binding instead of fetching second instance variable. This did already exist in old code generation scheme and is controlled by #isSpecialReadBinding.
=============== Diff against Compiler-jcg.147 ===============
Item was changed: ----- Method: LiteralVariableNode>>sizeCodeForValue: (in category 'code generation (new scheme)') ----- sizeCodeForValue: encoder self reserve: encoder. + (key isVariableBinding and: [key isSpecialReadBinding]) + ifFalse: + [^encoder sizePushLiteralVar: index]. + readNode := MessageNode new + receiver: (encoder encodeLiteral: key) + selector: (encoder encodeSelector: #value) + arguments: #() + precedence: #value precedence. + ^readNode sizeCodeForValue: encoder! - ^encoder sizePushLiteralVar: index!
Item was changed: ----- Method: LiteralVariableNode>>emitCodeForValue:encoder: (in category 'code generation (new scheme)') ----- emitCodeForValue: stack encoder: encoder + ^readNode + ifNil: [stack push: 1. + encoder genPushLiteralVar: index] + ifNotNil: [readNode emitCodeForValue: stack encoder: encoder]! - stack push: 1. - ^encoder genPushLiteralVar: index!
packages@lists.squeakfoundation.org