[Vm-dev] VM Maker: VMMaker.oscog-eem.646.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 19 00:11:42 UTC 2014


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

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

Name: VMMaker.oscog-eem.646
Author: eem
Time: 18 March 2014, 5:09:22.178 pm
UUID: 688bbdd2-e45e-4b9b-b332-2a5387116729
Ancestors: VMMaker.oscog-eem.645

Fix stack depth assert in ceSendAbort:to:numArgs:.
Fix method access for assert in followForwardedFrameContents:stackPointer:

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

Item was changed:
  ----- Method: CogVMSimulator>>ceSendAbort:to:numArgs: (in category 'trampolines') -----
  ceSendAbort: selector to: rcvr numArgs: numArgs
  	"self stringOf: selector"
  	"self printOop: rcvr"
  	self logSend: selector.
  	cogit assertCStackWellAligned.
+ 	self maybeCheckStackDepth: numArgs + 1
+ 		sp: stackPointer + BytesPerWord
+ 		pc: (stackPages longAt: stackPointer).
- 	self maybeCheckStackDepth: 0 sp: stackPointer pc: (stackPages longAt: stackPointer).
  	^super ceSendAbort: selector to: rcvr numArgs: numArgs!

Item was changed:
  ----- Method: StackInterpreter>>followForwardedFrameContents:stackPointer: (in category 'lazy become') -----
  followForwardedFrameContents: theFP stackPointer: theSP
  	"follow pointers in the current stack frame up to theSP."
  	<var: #theFP type: #'char *'>
  	<var: #theSP type: #'char *'>
  	<var: #ptr type: #'char *'>
  	theFP + (self frameStackedReceiverOffset: theFP)
  		to: theFP + FoxCallerSavedIP + BytesPerWord
  		by: BytesPerWord
  		do: [:ptr| | oop |
  			oop := stackPages longAt: ptr.
  			((objectMemory isNonImmediate: oop)
  			 and: [objectMemory isForwarded: oop]) ifTrue:
  				[stackPages longAt: ptr put: (objectMemory followForwarded: oop)]].
  	theSP
  		to: (self frameReceiverOffset: theFP)
  		by: BytesPerWord
  		do: [:ptr| | oop |
  			oop := stackPages longAt: ptr.
  			((objectMemory isNonImmediate: oop)
  			 and: [objectMemory isForwarded: oop]) ifTrue:
  				[stackPages longAt: ptr put: (objectMemory followForwarded: oop)]].
+ 	self assert: (objectMemory isForwarded: (self frameMethodObject: theFP)) not.
- 	self assert: (objectMemory isForwarded: (self frameMethod: theFP)) not.
  	(self frameHasContext: theFP) ifTrue:
  		[self assert: (objectMemory isForwarded: (self frameContext: theFP)) not]!



More information about the Vm-dev mailing list