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!
vm-dev@lists.squeakfoundation.org