Yes, that's what the patch already does, see: opcode_t * cg_core(opcode_t *cur_opcode, struct Parrot_Interp *interpreter) { static void *ops_addr[] = { &&PC_0, &&PC_1, &&PC_2, &&PC_3, &&PC_4, ....
PC_3: /* Parrot_close_ic */ { close(cur_opcode[1]); goto *ops_addr[*(cur_opcode += 2)]; } PC_4: /* Parrot_err_i */ { interpreter->int_reg->registers[cur_opcode[1]] = errno; goto *ops_addr[*(cur_opcode += 2)]; } .... } Thanks, Daniel Grunblatt. On Thu, 15 Nov 2001, Simon Cozens wrote: > I haven't forgotten about this patch, but I've had other things going > on. I'd like to see the computed goto done as a complete state machine, > with > > goto *pc_l[(int)dest]; > > after *every single op definition* so it just jumps between labels, without > any looping at all. (Apologies if that's what your patch already does, I > still haven't had time to get a very good look at it.) > > -- > "MSDOS didn't get as bad as it is overnight -- it took over ten years > of careful development." > (By [EMAIL PROTECTED]) >