[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