Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1390.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1390 Author: eem Time: 27 June 2015, 12:40:53.257 pm UUID: 8c7374c7-15cf-49d6-9917-609af6a1ee1c Ancestors: VMMaker.oscog-cb.1389
Example response to Clément's last commit. Add the potentially useful availableRegNotConflictingWith:. Use the available register if available in genPushRemoteTempLongBytecode.
=============== Diff against VMMaker.oscog-cb.1389 ===============
Item was added: + ----- Method: StackToRegisterMappingCogit>>availableRegNotConflictingWith: (in category 'simulation stack') ----- + availableRegNotConflictingWith: regMask + <inline: true> + "If there's a free register, answer it, otherwise answer nil." + ^backEnd availableRegisterOrNilFor: (self liveRegisters bitOr: regMask)!
Item was changed: ----- Method: StackToRegisterMappingCogit>>genPushRemoteTempLongBytecode (in category 'bytecode generators') ----- genPushRemoteTempLongBytecode + | newReg freeReg | - | newReg | newReg := self allocateRegNotConflictingWith: 0. + freeReg := self availableRegNotConflictingWith: (self registerMaskFor: newReg). + self MoveMw: (self frameOffsetOfTemporary: byte2) r: FPReg R: (freeReg ifNil: newReg). - self MoveMw: (self frameOffsetOfTemporary: byte2) r: FPReg R: newReg. objectRepresentation genLoadSlot: byte1 + sourceReg: (freeReg ifNil: newReg) - sourceReg: newReg destReg: newReg. ^self ssPushRegister: newReg!
vm-dev@lists.squeakfoundation.org