[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