[Vm-dev] VM Maker: VMMaker.oscog-eem.355.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Sep 8 20:56:44 UTC 2013
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!
More information about the Vm-dev
mailing list