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

commits-2
 
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!