[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