[Vm-dev] VM Maker: VMMaker.oscog-eem.1390.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Jun 27 19:43:01 UTC 2015
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!
More information about the Vm-dev
mailing list