[Vm-dev] [VM-dev] Does doesNotUnderstand:/cannotInterprer: jitted?

tim Rowledge tim at rowledge.org
Wed Nov 23 18:32:12 UTC 2016


> On 23-11-2016, at 1:11 AM, Denis Kudriashov <dionisiydk at gmail.com> wrote:
> 
> 
> 2016-11-23 0:47 GMT+01:00 Eliot Miranda <eliot.miranda at gmail.com>:
> 
> A PIC is just a table of up to 6 register load, class (index) comparison pairs.  The entry code gets the class of the receiver into a temp reg and then jumps to the sequence of load, class (index) comparisons.  Whenever there's a match the comparison jumps to the entry point of the method.  For an MNU case, instead of jumping to a method entry point, it jumps to an abort call at the start of the PIC, before the PIC's entry code.  The abort call creates the method and tests the value loaded into the register.  If the value loaded is that of a method it jumps to the entry point of that method.  The method loaded is the MNU method for the class.
> 
> Thank's Eliot. Logic is clear for me now.

More explanation of the PIC structure at http://wiki.squeak.org/squeak/6205


tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
Useful random insult:- IQ = dx / (1 + dx), where x = age.




More information about the Vm-dev mailing list