[squeak-dev] The Trunk: Compiler-eem.262.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 12 23:11:06 UTC 2013


Eliot Miranda uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-eem.262.mcz

==================== Summary ====================

Name: Compiler-eem.262
Author: eem
Time: 12 April 2013, 4:10:28.001 pm
UUID: b0593a62-a896-c24f-acf7-8edeeab9a81c
Ancestors: Compiler-nice.261

Restore and improve upon the comment in 
LiteralVariableNode>>emitCodeForStore:encoder:

=============== Diff against Compiler-nice.261 ===============

Item was changed:
  ----- Method: LiteralVariableNode>>emitCodeForStore:encoder: (in category 'code generation') -----
  emitCodeForStore: stack encoder: encoder
  	| exprOffset |
  	writeNode ifNil: [^encoder genStoreLiteralVar: index].
  	"On entry the stack has only the expression.  Push the binding,
+ 	 duplicate the expression, send #value: and pop.
+ 	 The various value: methods on Association ReadOnlyVariableBinding
+ 	 etc _do not_ return the value assigned; they return the receiver.  If they
+ 	 did we could generate much simpler code, e.g.
+ 		encoder genPushLiteral: index.
+ 		stack push: 1.
+ 		writeNode emitCode: stack args: 1 encoder: encoder super: false"
- 	 duplicate the expression, send #value: and pop."
  	exprOffset := stack position - 1.
  	encoder genPushLiteral: index.
  	stack push: 1.
  	encoder genPushTempLong: exprOffset.
  	stack push: 1.
  	writeNode
  		emitCode: stack
  		args: 1
  		encoder: encoder
  		super: false.
  	stack pop: 1.
  	encoder genPop!



More information about the Squeak-dev mailing list