On 7/24/2012 6:58 AM, Dmitry Olshansky wrote:
void op_1()
{
     ...//some code for instruction 1
     opcode = cast(function void ())code[pc++];
     goto opcode(); //opcode is pointer to function op_xx
}
//can do without goto fn() iff tail call is GUARANTEED

I believe you can do this with:

     switch (pc++)

and there are the same number of indirections.

And how is pc is supposed to be an opcode? It's a counter after all...

    switch (pc++)

and
    goto code[pc++]

are the same (same as in same number of indirections).

    switch (code[pc++])

and

    goto code[pc++]()

are the same, too.

Reply via email to