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

commits at source.squeak.org commits at source.squeak.org
Tue Aug 19 13:58:44 UTC 2014


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

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

Name: Cog-eem.192
Author: eem
Time: 19 August 2014, 2:58:28.826 pm
UUID: 2ee6c024-c179-48ee-ac77-9f1a3eb5c458
Ancestors: Cog-eem.191

Fix SpurBootstrap>>cloneMethodProxy: when running on V3.

=============== Diff against Cog-eem.191 ===============

Item was changed:
  ----- Method: SpurBootstrap>>cloneMethodProxy: (in category 'bootstrap methods') -----
  cloneMethodProxy: proxy "<VMCompiledMethodProxy>"
  	| bytes newMethod delta |
  	bytes := proxy size - proxy initialPC + 1.
  	delta := proxy primitive > 0
  				ifTrue: [3]
  				ifFalse: [0].
  	newMethod := CompiledMethod
  						newMethod: bytes + delta
+ 						header: (self headerForOldMethodHeader: (oldHeap integerObjectOf: proxy header)).
- 						header: (self convertOldMethodHeader: (oldHeap integerObjectOf: proxy header)).
  	1 to: proxy numLiterals - 1 do:
  		[:i| newMethod literalAt: i put: (proxy literalAt: i)].
  	newMethod
  		literalAt: proxy numLiterals
  		put: (Smalltalk bindingOf: #Character).
  	delta > 0 ifTrue:
  		[newMethod
  			at: newMethod initialPC + 0 put: 139;
  			at: newMethod initialPC + 1 put: (proxy primitive bitAnd: 16rFF);
  			at: newMethod initialPC + 2 put: (proxy primitive bitShift: -8)].
  	proxy initialPC to: proxy size do:
  		[:i| newMethod at: i + delta put: (proxy at: i)].
  	^newMethod!

Item was added:
+ ----- Method: SpurBootstrap>>headerForOldMethodHeader: (in category 'bootstrap image') -----
+ headerForOldMethodHeader: methodHeaderOop
+ 	^self isOnSpur
+ 		ifTrue: [self convertOldMethodHeader: methodHeaderOop]
+ 		ifFalse: [oldHeap integerValueOf: methodHeaderOop]!

Item was added:
+ ----- Method: SpurBootstrap>>isOnSpur (in category 'testing') -----
+ isOnSpur
+ 	^$c class instSize = 0!



More information about the Vm-dev mailing list