VM Maker: VMMaker-dtl.388.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-dtl.388.mcz

commits-2
 
David T. Lewis uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-dtl.388.mcz

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

Name: VMMaker-dtl.388
Author: dtl
Time: 11 December 2016, 11:42:49.558 am
UUID: 09c15fd6-eb5a-416d-b481-8bdec834b668
Ancestors: VMMaker-dtl.387

VMMaker 4.15.10 - Fix 'debug it' from the menu for V3 images.

Fix primitiveChangeClass by factoring fetchClassOfNonImm: into a version for ClassicObjectMemory that calls fetchClassofNonInt: and a version for NewObjectMemory that retains the oscog implementation.

TODO: The primitive now works as expected for interpreter VM, but fetchClassOfNonImm: should be revisited for StackInterpreter on V3 image (may depend on Spur logic).

=============== Diff against VMMaker-dtl.387 ===============

Item was added:
+ ----- Method: ClassicObjectMemory>>fetchClassOfNonImm: (in category 'object access') -----
+ fetchClassOfNonImm: oop
+ "Only integers are immediate"
+ <inline: true>
+ ^self fetchClassOfNonInt: oop!

Item was added:
+ ----- Method: NewObjectMemory>>fetchClassOfNonImm: (in category 'object access') -----
+ fetchClassOfNonImm: oop
+ | ccIndex |
+ <inline: true>
+ ^(ccIndex := (self compactClassIndexOf: oop)) = 0
+ ifTrue: [(self classHeader: oop) bitAnd: self allButTypeMask]
+ ifFalse: [self compactClassAt: ccIndex]!

Item was changed:
  ----- Method: ObjectMemory>>fetchClassOfNonImm: (in category 'object access') -----
+ fetchClassOfNonImm: oop
+ ^self subclassResponsibility!
- fetchClassOfNonImm: oop
- | ccIndex |
- <inline: true>
- ^(ccIndex := (self compactClassIndexOf: oop)) = 0
- ifTrue: [(self classHeader: oop) bitAnd: self allButTypeMask]
- ifFalse: [self compactClassAt: ccIndex]!

Item was changed:
  ----- Method: VMMaker class>>versionString (in category 'version testing') -----
  versionString
 
  "VMMaker versionString"
 
+ ^'4.15.10'!
- ^'4.15.9'!