[Vm-dev] VM Maker: VMMaker.oscog-eem.2231.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed May 31 02:12:53 UTC 2017
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2231.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2231
Author: eem
Time: 30 May 2017, 7:11:59.716529 pm
UUID: de62947a-7f40-4977-a232-e06a3a80c939
Ancestors: VMMaker.oscog-eem.2230
Oops.
=============== Diff against VMMaker.oscog-eem.2230 ===============
Item was changed:
----- Method: Spur32BitCoMemoryManager>>receiverTagBitsForMethod: (in category 'cog jit support') -----
receiverTagBitsForMethod: aMethodObj
"Answer the tag bits for the receiver based on the method's methodClass, if any."
<api>
| methodClassOrNil |
methodClassOrNil := coInterpreter methodClassOf: aMethodObj.
NewspeakVM "Mixins don't necessarily have a format inst var; filter out non-integer format."
ifTrue:
[| instSpec |
(methodClassOrNil = nilObj
or: [(self isNonIntegerObject: (instSpec := self fetchPointer: InstanceSpecificationIndex ofObject: methodClassOrNil))
+ or: [(self instSpecOfClassFormat: (self integerValueOf: instSpec)) ~= self forwardedFormat]]) ifTrue:
- or: [(self self instSpecOfClassFormat: (self integerValueOf: instSpec)) ~= self forwardedFormat]]) ifTrue:
[^0]]
ifFalse:
[(methodClassOrNil = nilObj
or: [(self instSpecOfClass: methodClassOrNil) ~= self forwardedFormat]) ifTrue:
[^0]].
^methodClassOrNil = (self fetchPointer: self smallIntegerTag ofObject: classTableFirstPage)
ifTrue: [self smallIntegerTag]
ifFalse: [self assert: methodClassOrNil = (self fetchPointer: self characterTag ofObject: classTableFirstPage).
self characterTag]!
Item was changed:
----- Method: Spur64BitCoMemoryManager>>receiverTagBitsForMethod: (in category 'cog jit support') -----
receiverTagBitsForMethod: aMethodObj
"Answer the tag bits for the receiver based on the method's methodClass, if any."
<api>
| methodClassOrNil |
methodClassOrNil := coInterpreter methodClassOf: aMethodObj.
NewspeakVM "Mixins don't necessarily have a format inst var; filter out non-integer format."
ifTrue:
[| instSpec |
(methodClassOrNil = nilObj
or: [(self isNonIntegerObject: (instSpec := self fetchPointer: InstanceSpecificationIndex ofObject: methodClassOrNil))
+ or: [(self instSpecOfClassFormat: (self integerValueOf: instSpec)) ~= self forwardedFormat]]) ifTrue:
- or: [(self self instSpecOfClassFormat: (self integerValueOf: instSpec)) ~= self forwardedFormat]]) ifTrue:
[^0]]
ifFalse:
[(methodClassOrNil = nilObj
or: [(self instSpecOfClass: methodClassOrNil) ~= self forwardedFormat]) ifTrue:
[^0]].
methodClassOrNil = (self fetchPointer: self smallIntegerTag ofObject: classTableFirstPage) ifTrue:
[^self smallIntegerTag].
methodClassOrNil = (self fetchPointer: self characterTag ofObject: classTableFirstPage) ifTrue:
[^self characterTag].
self assert: methodClassOrNil = (self fetchPointer: self smallFloatTag ofObject: classTableFirstPage).
^self smallFloatTag!
More information about the Vm-dev
mailing list