Nicolas Cellier uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-nice.2537.mcz==================== Summary ====================
Name: VMMaker.oscog-nice.2537
Author: nice
Time: 20 August 2019, 7:00:27.878544 pm
UUID: f5d48af0-8ca1-a448-9fcd-c05c9ba540e4
Ancestors: VMMaker.oscog-eem.2536
Fix issue #415
incorrect Spur64 genJumpNotSmallIntegerValue:scratch: bugs SmallInteger minVal / -1
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/415=============== Diff against VMMaker.oscog-eem.2536 ===============
Item was changed:
----- Method: CogObjectRepresentationFor64BitSpur>>genJumpNotSmallIntegerValue:scratch: (in category 'compile abstract instructions') -----
genJumpNotSmallIntegerValue: aRegister scratch: scratchReg
"Generate a test for aRegister containing an integer value outside 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;
JumpGreater: 0!