[Vm-dev] Continuing after Send Site patch

Lars lars.wassermann at googlemail.com
Sun Feb 3 17:25:28 UTC 2013


Hello,

today, I added compilation of another two RTLOpcodes (MoveX(w|b)rRR) and 
ended up with patching the first send site 
(#rewriteInlineCacheAt:tag:target:). Yay.
Unfortunately, continuing after that patch doesn't work yet. With any of 
the Interpreters, I end up with a broken assert in 
(#assertValidExecutionPointe:r:s:imbar:).

Here the source of that assert. It is the last assert which is called in 
that method with my parameters.
self assert: ((self mframeIsBlockActivation: lifp)
                     or: [(self pushedReceiverOrClosureOfFrame: lifp) = 
(self mframeReceiver: lifp)])

Is the problem that the Smalltalk stack is not well ordered? In the 
virtual or the Smalltalk-Smalltalk abi case?
Is it possible to diagnose from afar whether the first or the second 
alternative should be true? What information would you need to decide that?

All the best,
Lars


More information about the Vm-dev mailing list