[Vm-dev] VM Maker: VMMaker.oscog-cb.1936.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Sep 5 12:54:04 UTC 2016


ClementBera uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1936.mcz

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

Name: VMMaker.oscog-cb.1936
Author: cb
Time: 5 September 2016, 2:51:19.995237 pm
UUID: a0fcd00d-b0e0-4a17-841c-f90144c91fe4
Ancestors: VMMaker.oscog-cb.1935

Added a deny to ensure the block can be frameless. Works both for blocks and full blocks.

=============== Diff against VMMaker.oscog-cb.1935 ===============

Item was changed:
  ----- Method: SimpleStackBasedCogit>>compileBlockFramelessEntry: (in category 'compile abstract instructions') -----
  compileBlockFramelessEntry: blockStart
  	"Make sure ReceiverResultReg holds the receiver, loaded from the closure,
  	 which is what is initially in ReceiverResultReg.  We must annotate the first
  	 instruction so that findMethodForStartBcpc:inHomeMethod: can function.
  	 We need two annotations because the first is a fiducial."
  	<var: #blockStart type: #'BlockStart *'>
+ 	self deny: blockStart hasInstVarRef. "Else we would need to unforward the receiver"
  	self annotateBytecode: blockStart entryLabel.
  	self annotateBytecode: blockStart entryLabel.
  	objectRepresentation
  		genLoadSlot: ClosureOuterContextIndex
  			sourceReg: ReceiverResultReg
  				destReg: TempReg;
  		genLoadSlot: ReceiverIndex
  			sourceReg: TempReg
  				destReg: ReceiverResultReg!



More information about the Vm-dev mailing list