[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