[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