[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