[Vm-dev] dispatchOn:in: and inlining bytecode routines

Mathieu Suen mathk.sue at gmail.com
Sat Apr 12 21:57:39 UTC 2008


Hi,

Can you show use the smalltalk code?
I think is because your aren't using the internalPush..


On Apr 12, 2008, at 12:40 PM, André Wendt wrote:
>
> Hi,
>
> as far as I can see, there's nothing special about BytecodeTable in  
> the
> Interpreter that instructs VMMaker to generate a switch statement that
> includes:
>
> case 112:
>    /* pushReceiverBytecode */
>    {
>        /* begin fetchNextBytecode */
>        currentBytecode = byteAtPointer(++localIP);
>        /* begin internalPush: */
>        longAtPointerput(localSP += BytesPerWord, foo->receiver);
>    }
>    break;
>
> However, when I want to dispatch on a code in a subset of bytecodes
> using my own table (for integrating multiple bytecodes into one), I  
> get
>
> case 0:
>    pushReceiverBytecode();
>    break;
>
> instead of an inlined pushReceiverBytecode routine. Needless to say my
> code doesn't compile because of the pushReceiverBytecode() call.
>
> Why does pushReceiverBytecode get inlined when used with  
> BytecodeTable,
> but not in my own?
>
> Thanks,
> André

	Mth






More information about the Vm-dev mailing list