[Vm-dev] VM Maker: VMMaker.oscog-eem.1897.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jul 4 23:23:48 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1897.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1897
Author: eem
Time: 4 July 2016, 4:21:58.850141 pm
UUID: c3215ac9-9da7-4d9d-9f40-a6ef2eaaa861
Ancestors: VMMaker.oscog-cb.1896
Fix genJumpIsSmallIntegerValue:scratch: for all memory managers and hence fix SmallInteger minVal // -1.
=============== Diff against VMMaker.oscog-cb.1896 ===============
Item was changed:
----- Method: CogObjectRepresentationFor32BitSpur>>genJumpIsSmallIntegerValue:scratch: (in category 'compile abstract instructions') -----
genJumpIsSmallIntegerValue: aRegister scratch: scratchReg
"Generate a test for aRegister containing an integer value in the SmallInteger range, and a jump if so, answering the jump.
c.f. Spur32BitMemoryManager>>isIntegerValue:"
<returnTypeC: #'AbstractInstruction *'>
^cogit
MoveR: aRegister R: scratchReg;
+ LogicalShiftLeftCq: 1 R: scratchReg;
- ArithmeticShiftRightCq: 1 R: scratchReg;
XorR: aRegister R: scratchReg;
JumpGreaterOrEqual: 0!
Item was changed:
----- Method: CogObjectRepresentationFor64BitSpur>>genJumpIsSmallIntegerValue:scratch: (in category 'compile abstract instructions') -----
genJumpIsSmallIntegerValue: aRegister scratch: scratchReg
"Generate a test for aRegister containing an integer value in the SmallInteger range, and a jump if so, answering the jump.
c.f. Spur64BitMemoryManager>>isIntegerValue:"
<returnTypeC: #'AbstractInstruction *'>
^cogit
MoveR: aRegister R: scratchReg;
+ ArithmeticShiftRightCq: 63 - objectMemory numTagBits R: scratchReg;
- ArithmeticShiftRightCq: 64 - objectMemory numTagBits R: scratchReg;
AddCq: 1 R: scratchReg;
AndCq: 1 << (objectMemory numTagBits + 1) - 1 R: scratchReg; "sign and top numTags bits must be the same"
CmpCq: 1 R: scratchReg;
JumpLessOrEqual: 0!
Item was changed:
----- Method: CogObjectRepresentationForSqueakV3>>genJumpIsSmallIntegerValue:scratch: (in category 'compile abstract instructions') -----
genJumpIsSmallIntegerValue: aRegister scratch: scratchReg
"Generate a test for aRegister containing an integer value in the SmallInteger range, and a jump if so, answering the jump.
c.f. ObjectMemory>>isIntegerValue:"
<returnTypeC: #'AbstractInstruction *'>
^cogit
MoveR: aRegister R: scratchReg;
+ LogicalShiftLeftCq: 1 R: scratchReg;
- ArithmeticShiftRightCq: 1 R: scratchReg;
XorR: aRegister R: scratchReg;
JumpGreaterOrEqual: 0!
More information about the Vm-dev
mailing list