[Vm-dev] VM Maker: VMMaker.oscog-eem.2070.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 4 22:29:29 UTC 2017
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2070.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2070
Author: eem
Time: 4 January 2017, 2:28:39.632529 pm
UUID: ada3d477-75ba-48e3-b468-2269b791f62b
Ancestors: VMMaker.oscog-eem.2069
CoInterpreter:
Make the stack depth check for abort sends consistent with normal sends. Add a stack chec for activating processes. Print non-local return info when there's an unwind to the transcript to aid debugging the wrong stack depth on some non-local returns issue.
No longer halt on code compaction; its utility/annoyance ratio is now too small.
=============== Diff against VMMaker.oscog-eem.2069 ===============
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
- self maybeCheckStackDepth: (selector = (objectMemory splObj: SelectorAboutToReturn)
- ifTrue: [numArgs]
- ifFalse: [numArgs + 1])
- sp: stackPointer + objectMemory wordSize
pc: (stackPages longAt: stackPointer).
^super ceSendAbort: selector to: rcvr numArgs: numArgs!
Item was changed:
----- Method: CogVMSimulator>>commenceCogCompiledCodeCompaction (in category 'cog jit support') -----
commenceCogCompiledCodeCompaction
+ "self halt."
- self halt.
^super commenceCogCompiledCodeCompaction!
Item was added:
+ ----- Method: CogVMSimulator>>externalAboutToReturn:through: (in category 'return bytecodes') -----
+ externalAboutToReturn: resultOop through: aContext
+ self transcript ensureCr.
+ self print: 'externalAboutToReturn: '; printOopShortInner: resultOop;
+ print: ' through: '; printOopShortInner: aContext;
+ print: ' in '; printActivationNameFor: (self frameMethodObject: framePointer)
+ receiver: (self frameReceiver: framePointer)
+ isBlock: (self frameIsBlockActivation: framePointer)
+ firstTemporary: (self temporary: 0 in: framePointer);
+ cr.
+ ^super externalAboutToReturn: resultOop through: aContext!
Item was added:
+ ----- Method: CogVMSimulator>>externalSetStackPageAndPointersForSuspendedContextOfProcess: (in category 'frame access') -----
+ externalSetStackPageAndPointersForSuspendedContextOfProcess: aProcess
+ "Override to check stack depth (hence in the simulator only)."
+ super externalSetStackPageAndPointersForSuspendedContextOfProcess: aProcess.
+ (self isMachineCodeFrame: framePointer) ifTrue:
+ [self maybeCheckStackDepth: 0
+ sp: stackPointer
+ pc: instructionPointer]!
More information about the Vm-dev
mailing list