[Vm-dev] VM Maker: VMMaker.oscog-cb.1338.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jun 4 14:29:23 UTC 2015
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1338.mcz
==================== Summary ====================
Name: VMMaker.oscog-cb.1338
Author: cb
Time: 4 June 2015, 4:28:00.954 pm
UUID: 25cd5227-7a5f-466c-8e83-eb3533ccee1a
Ancestors: VMMaker.oscog-eem.1337
Fix the bug eliot reported where rcvrReg was nil in genEqualsEqualsnoBranch.
=============== Diff against VMMaker.oscog-eem.1337 ===============
Item was changed:
----- Method: StackToRegisterMappingCogit>>genEqualsEqualsNoBranchArgIsConstant:rcvrIsConstant:argReg:rcvrReg: (in category 'bytecode generator support') -----
genEqualsEqualsNoBranchArgIsConstant: argIsConstant rcvrIsConstant: rcvrIsConstant argReg: argReg rcvrReg: rcvrReg
"Generates the machine code for #== in the case where the instruction is not followed by a branch"
+ | label jumpEqual jumpNotEqual resultReg |
- | label jumpEqual jumpNotEqual |
<var: #label type: #'AbstractInstruction *'>
<var: #jumpEqual type: #'AbstractInstruction *'>
<var: #jumpNotEqual type: #'AbstractInstruction *'>
label := self Label.
self genEqualsEqualsComparisonArgIsConstant: argIsConstant rcvrIsConstant: rcvrIsConstant argReg: argReg rcvrReg: rcvrReg.
self ssPop: 2.
+ resultReg := rcvrReg ifNil: [argReg ].
jumpEqual := self JumpZero: 0.
argIsConstant ifFalse: [ objectRepresentation genEnsureOopInRegNotForwarded: argReg scratchReg: TempReg jumpBackTo: label ].
rcvrIsConstant ifFalse: [ objectRepresentation genEnsureOopInRegNotForwarded: rcvrReg scratchReg: TempReg jumpBackTo: label ].
+ self genMoveFalseR: resultReg.
- self genMoveFalseR: rcvrReg.
jumpNotEqual := self Jump: 0.
+ jumpEqual jmpTarget: (self genMoveTrueR: resultReg).
- jumpEqual jmpTarget: (self genMoveTrueR: rcvrReg).
jumpNotEqual jmpTarget: self Label.
+ self ssPushRegister: resultReg.
- self ssPushRegister: rcvrReg.
^0!
More information about the Vm-dev
mailing list