[Vm-dev] VM Maker: VMMaker.oscog-cb.1285.mcz

commits at source.squeak.org commits at source.squeak.org
Tue May 5 13:31:54 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1285.mcz

==================== Summary ====================

Name: VMMaker.oscog-cb.1285
Author: cb
Time: 5 May 2015, 3:30:06.47 pm
UUID: 7ee85347-ea18-4249-81f1-e0510c99c8ce
Ancestors: VMMaker.oscog-cb.1284

Forgot a -1 which was creating a segfault....

=============== Diff against VMMaker.oscog-cb.1284 ===============

Item was changed:
  ----- Method: CogObjectRepresentationForSpur>>noneImmediateBranchIf:notInstanceOfBehaviors:target: (in category 'sista support') -----
  noneImmediateBranchIf: reg notInstanceOfBehaviors: arrayObj target: targetFixUp
  	"All classes in arrayObj are not immediate"
  	| label numJumps jumps classObj |
  	<var: #targetFixUp type: #'AbstractInstruction *'>
  	<var: #label type: #'AbstractInstruction *'>
  	<var: #jumps type: #'AbstractInstruction **'>
  	cogit MoveR: reg R: TempReg.
  	jumps := self alloca: (objectMemory numSlotsOf: arrayObj) type: (self cCode: [#'AbstractInstruction *'] inSmalltalk: [cogit backEnd class]).
  	(self genJumpImmediateInScratchReg: TempReg) jmpTarget: targetFixUp.
  	self genGetClassIndexOfNonImm: reg into: TempReg.
  	0 to: (numJumps := objectMemory numSlotsOf: arrayObj) - 1 do:
  		[:i|
  		 classObj := objectMemory fetchPointer: i ofObject: arrayObj.
  		 self genCmpClassIndex: (objectMemory classTagForClass: classObj) R: TempReg.
  		jumps at: i put: (cogit JumpZero: 0) ].
  	cogit Jump: targetFixUp.
  	label := self Label.
+ 	0 to: numJumps - 1 do: [:i |
- 	0 to: numJumps do: [:i |
  		(jumps at: i) jmpTarget: label ].
  	^0!



More information about the Vm-dev mailing list