[Vm-dev] VM Maker: Cog-eem.356.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jul 12 22:36:08 UTC 2019


Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.356.mcz

==================== Summary ====================

Name: Cog-eem.356
Author: eem
Time: 12 July 2019, 3:36:06.813531 pm
UUID: dedb85c8-a928-45ca-80c7-64fa30107e20
Ancestors: Cog-eem.355

Fix an assertion failure with the 32-to-64-bit bootstrap when SmallFloat64 has been assigned the correct hash but hasn't been added to the class table.

=============== Diff against Cog-eem.355 ===============

Item was changed:
  ----- Method: Spur32to64BitBootstrap>>ensureSmallFloatInClassTable (in category 'bootstrap image') -----
  ensureSmallFloatInClassTable
  	| firstClassTablePage smallFloatClass |
  	firstClassTablePage := heap64 fetchPointer: 0 ofObject: heap64 classTableRootObj.
  	smallFloatClass := self smallFloatClass.
  	(heap64 hashBitsOf: smallFloatClass) = heap64 smallFloatTag
  		ifTrue:
+ 			[heap64 nilObject = (heap64 fetchPointer: heap64 smallFloatTag ofObject: firstClassTablePage)
+ 				ifTrue:
+ 					[heap64
+ 						storePointer: heap64 smallFloatTag ofObject: firstClassTablePage withValue: smallFloatClass;
+ 						setHashBitsOf: smallFloatClass to: heap64 smallFloatTag]
+ 				ifFalse:
+ 					[self assert: (heap64 fetchPointer: heap64 smallFloatTag ofObject: firstClassTablePage)
+ 									= smallFloatClass]]
- 			[self assert: (heap64 fetchPointer: heap64 smallFloatTag ofObject: firstClassTablePage)
- 						= smallFloatClass]
  		ifFalse:
  			[self assert: (heap64 hashBitsOf: smallFloatClass) = 0.
  			 heap64
  				storePointer: heap64 smallFloatTag ofObject: firstClassTablePage withValue: smallFloatClass;
  				setHashBitsOf: smallFloatClass to: heap64 smallFloatTag]!



More information about the Vm-dev mailing list