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