Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1749.mcz==================== Summary ====================
Name: VMMaker.oscog-cb.1749
Author: cb
Time: 30 March 2016, 4:38:46.991 pm
UUID: 934efe61-338b-40ad-999c-a1c9bd594736
Ancestors: VMMaker.oscog-cb.1748
fixed a type zip.
=============== Diff against VMMaker.oscog-cb.1748 ===============
Item was changed:
----- Method: CogObjectRepresentationForSpur>>genStoreWithImmutabilityButNoStoreCheckSourceReg:slotIndex:destReg:scratchReg:needRestoreRcvr: (in category 'compile abstract instructions') -----
genStoreWithImmutabilityButNoStoreCheckSourceReg: sourceReg slotIndex: index destReg: destReg scratchReg: scratchReg needRestoreRcvr: needRestoreRcvr
+ <var: #mutableJump type: #'AbstractInstruction *'>
- <var: #immutableJump type: #'AbstractInstruction *'>
<var: #immutabilityFailure type: #'AbstractInstruction *'>
| immutabilityFailure mutableJump |
"imm check has its own trampoline"
mutableJump := self genJumpMutable: destReg scratchReg: scratchReg.
cogit MoveCq: index + 1 R: TempReg. "index + 1 as 0 is reserved for store checks"
cogit CallRT: ceStoreTrampoline.
cogit annotateBytecode: cogit Label.
needRestoreRcvr ifTrue: [ cogit putSelfInReceiverResultReg ].
immutabilityFailure := cogit Jump: 0.
mutableJump jmpTarget: cogit Label.
cogit genTraceStores.
"do the store"
cogit MoveR: sourceReg
Mw: index * objectMemory wordSize + objectMemory baseHeaderSize
r: destReg.
immutabilityFailure jmpTarget: cogit Label.
^ 0!