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

commits at source.squeak.org commits at source.squeak.org
Tue Dec 2 02:23:18 UTC 2014


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

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

Name: Cog-eem.228
Author: eem
Time: 1 December 2014, 6:23:02.981 pm
UUID: 38634ea7-6be8-4325-acf8-fd06db4265c5
Ancestors: Cog-eem.227

Spur 32- to 64-bit bootstrap:
Remember to install SmallFloat64 in the first class
table page at smallFloatTags, replacing the entry
for SmallInteger in the 32-bit system (because in
32-bits SmallInteger can have tag 1 or tag 3).

=============== Diff against Cog-eem.227 ===============

Item was changed:
  ----- Method: Spur32to64BitBootstrap>>alterSystem (in category 'bootstrap image') -----
  alterSystem
+ 	self installSmallFloatInClassTable.
  	self nilWordSize!

Item was added:
+ ----- Method: Spur32to64BitBootstrap>>installSmallFloatInClassTable (in category 'bootstrap image') -----
+ installSmallFloatInClassTable
+ 	| firstPage |
+ 	firstPage := heap64 fetchPointer: 0 ofObject: heap64 classTableRootObj.
+ 	heap64
+ 		storePointer: heap64 smallFloatTag
+ 		ofObject: firstPage
+ 		withValue: self smallFloatClass!

Item was added:
+ ----- Method: Spur32to64BitBootstrap>>smallFloatClass (in category 'bootstrap image') -----
+ smallFloatClass
+ 	| sf64sym |
+ 	sf64sym := self findSymbol: #SmallFloat64.
+ 	heap64 allObjectsDo:
+ 		[:o|
+ 		((heap64 isPointersNonImm: o)
+ 		 and: [(heap64 numSlotsOf: o) > interpreter32 classNameIndex
+ 		 and: [(interpreter64 addressCouldBeClassObj: o)
+ 		 and: [(heap64 fetchPointer: interpreter32 classNameIndex ofObject: o) = sf64sym]]]) ifTrue:
+ 			[^o]].
+ 	^nil!



More information about the Vm-dev mailing list