VM Maker: VMMaker.oscog-nice.2537.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-nice.2537.mcz

commits-2
 
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!