[Vm-dev] VM Maker: VMMaker.oscog-nice.2537.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Aug 20 17:00:44 UTC 2019


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!



More information about the Vm-dev mailing list