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

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

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

Name: VMMaker.oscog-eem.627
Author: eem
Time: 5 March 2014, 2:28:44.296 pm
UUID: e34ab5ac-3db8-4b8d-8e5f-722905cea020
Ancestors: VMMaker.oscog-eem.626

Fix startPCOrNilOfLiteral:in: (for scanForCleanBlocks) for newspeak
accessors in Spur.

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

Item was changed:
  ----- Method: CoInterpreter>>startPCOrNilOfLiteral:in: (in category 'cog jit support') -----
  startPCOrNilOfLiteral: lit in: aMethodObj
+ "Answer the startPC of lit if it is a (clean) block in aMethodObj, otherwise answer nil."
- "Answer the startPC of lit if it is a (clean) block in aMethodObj, oitherwise answer nil."
  <api>
  | outerContext |
+ ((objectMemory isNonImmediate: lit)
+ and: [(objectMemory formatOf: lit) = objectMemory indexablePointersFormat
+ and: [(objectMemory numSlotsOf: lit) >= ClosureCopiedValuesIndex]]) ifFalse:
- (objectMemory isImmediate: lit) ifTrue:
  [^nil].
- (objectMemory lastPointerOf: lit) <= ClosureCopiedValuesIndex ifTrue:
- [^nil].
- (objectMemory isArrayNonImm: lit) ifTrue:
- [^nil].
  outerContext := objectMemory fetchPointer: ClosureOuterContextIndex ofObject: lit.
  (objectMemory isContext: outerContext) ifFalse:
  [^nil].
  aMethodObj ~~ (objectMemory fetchPointer: MethodIndex ofObject: outerContext) ifTrue:
  [^nil].
  ^self quickFetchInteger: ClosureStartPCIndex ofObject: lit!