VM Maker: VMMaker.oscog-eem.355.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.oscog-eem.355.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.355.mcz

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

Name: VMMaker.oscog-eem.355
Author: eem
Time: 8 September 2013, 1:54:12.22 pm
UUID: abc761d5-9502-4f4b-9c3a-6482da435a09
Ancestors: VMMaker.oscog-eem.354

Implement classIsItselfClassIndexPun for instance-specific behavior.

Define isSegmentSpanningFakeObjectPun.

=============== Diff against VMMaker.oscog-eem.354 ===============

Item was added:
+ ----- Method: SpurMemoryManager>>classIsItselfClassIndexPun (in category 'class table') -----
+ classIsItselfClassIndexPun
+ ^4!

Item was changed:
  ----- Method: SpurMemoryManager>>fetchClassOf: (in category 'object access') -----
+ fetchClassOf: oop
- fetchClassOf: oop
  | tagBits |
  (tagBits := oop bitAnd: self tagMask) ~= 0 ifTrue:
  [^self fetchPointer: tagBits ofObject: classTableFirstPage].
+ ^self fetchClassOfNonImm: oop!
- ^self classAtIndex: (self classIndexOf: oop)!

Item was changed:
  ----- Method: SpurMemoryManager>>fetchClassOfNonImm: (in category 'object access') -----
+ fetchClassOfNonImm: objOop
- fetchClassOfNonImm: objOop
  | classIndex |
  classIndex := self classIndexOf: objOop.
+ classIndex = self classIsItselfClassIndexPun ifTrue:
+ [^objOop].
  ^self classAtIndex: classIndex!

Item was changed:
  ----- Method: SpurMemoryManager>>isForwarded: (in category 'object testing') -----
  isForwarded: objOop
+ ^(self classIndexOf: objOop) = self isForwardedObjectClassIndexPun!
- ^(self classIndexOf: objOop) = self isForwardedClassIndexPun!

Item was removed:
- ----- Method: SpurMemoryManager>>isForwardedClassIndexPun (in category 'class table') -----
- isForwardedClassIndexPun
- ^1!

Item was added:
+ ----- Method: SpurMemoryManager>>isForwardedObjectClassIndexPun (in category 'class table') -----
+ isForwardedObjectClassIndexPun
+ ^1!

Item was removed:
- ----- Method: SpurMemoryManager>>isFreeClassIndexPun (in category 'class table') -----
- isFreeClassIndexPun
- ^0!

Item was changed:
  ----- Method: SpurMemoryManager>>isFreeObject: (in category 'object testing') -----
  isFreeObject: objOop
+ ^(self classIndexOf: objOop) = self isFreeObjectClassIndexPun!
- ^(self classIndexOf: objOop) = self isFreeClassIndexPun!

Item was added:
+ ----- Method: SpurMemoryManager>>isFreeObjectClassIndexPun (in category 'class table') -----
+ isFreeObjectClassIndexPun
+ ^0!

Item was added:
+ ----- Method: SpurMemoryManager>>isSegmentSpanningFakeObjectPun (in category 'class table') -----
+ isSegmentSpanningFakeObjectPun
+ ^3!