[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