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

commits at source.squeak.org commits at source.squeak.org
Wed Mar 30 14:47:31 UTC 2016


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

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

Name: VMMaker.oscog-cb.1750
Author: cb
Time: 30 March 2016, 4:45:49.478 pm
UUID: f3fb15a8-3341-47eb-899d-eac3ca8696f3
Ancestors: VMMaker.oscog-cb.1749

fixed a missing option which was triggering compilation warnings.

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

Item was changed:
  ----- Method: CogObjectRepresentationForSpur>>genStoreTrampolineCalled: (in category 'initialization') -----
  genStoreTrampolineCalled: trampolineName
  	"This can be entered in one of two states, depending on TempReg. 
  	TempReg = 0 => store check
  	TempReg > 0 => immutability failure
  	TempReg holds index + 1 in this case as the value 0 is reserved for store checks.
  	In addition the 0 value is convenient to save one instruction for store checks."
  	| jumpSC |
+ 	<option: #IMMUTABILITY>
  	<var: #trampolineName type: #'char *'>
  	<var: #jumpSC type: #'AbstractInstruction *'>
  	<inline: false>
  	cogit zeroOpcodeIndex.
  	cogit CmpCq: 0 R: TempReg.
  	jumpSC := cogit JumpZero: 0.
  	
  	"CannotAssignTo:, we restore the index."
  	cogit SubCq: 1 R: TempReg.
  	cogit
  		compileTrampolineFor: #ceCannotAssignTo:withIndex:valueToAssign:
  		numArgs: 3
  		arg: ReceiverResultReg
  		arg: TempReg
  		arg: ClassReg
  		arg: nil
  		regsToSave: cogit emptyRegisterMask
  		pushLinkReg: true
  		resultReg: NoReg.
  		
  	"Store check"
  	jumpSC jmpTarget: cogit Label.
  	^ cogit genTrampolineFor: #remember:
  		called: trampolineName
  		numArgs: 1
  		arg: ReceiverResultReg
  		arg: nil
  		arg: nil
  		arg: nil
  		regsToSave: cogit emptyRegisterMask
  		pushLinkReg: true
  		resultReg: NoReg
  		appendOpcodes: true!



More information about the Vm-dev mailing list