diff --git a/src/interpreter.h b/src/interpreter.h index 6b2cd7db75016bad75f92dfe4174049f9238d5ea..71e784a0aff8d87c219fbb2e099a334e8876cd6e 100644 --- a/src/interpreter.h +++ b/src/interpreter.h @@ -354,6 +354,8 @@ static int eval_instruction(PIKE_OPCODE_T *pc) strap = &&normal_strap; { static void *table[] = { + NULL_LABEL(F_OFFSET), + NULL_LABEL(F_PREFIX_256), NULL_LABEL(F_PREFIX_512), NULL_LABEL(F_PREFIX_768), @@ -385,10 +387,10 @@ static int eval_instruction(PIKE_OPCODE_T *pc) }; #ifdef PIKE_DEBUG - if (sizeof(table) != (F_MAX_OPCODE-(F_OFFSET+1))*sizeof(void *)) + if (sizeof(table) != (F_MAX_OPCODE-F_OFFSET)*sizeof(void *)) fatal("opcode_to_label out of sync: 0x%08lx != 0x%08lx\n", DO_NOT_WARN((long)sizeof(table)), - DO_NOT_WARN((long)((F_MAX_OPCODE-(F_OFFSET+1))*sizeof(void *)))); + DO_NOT_WARN((long)((F_MAX_OPCODE-F_OFFSET)*sizeof(void *)))); #endif /* PIKE_DEBUG */ fcode_to_opcode = table; return 0; diff --git a/src/peep.c b/src/peep.c index ce9f609f115c0c7d4e1560f2bb382f81eb2f74ef..767ea3f7fed9d6abb34ca7c1119c32ccd0a1a32a 100644 --- a/src/peep.c +++ b/src/peep.c @@ -17,7 +17,7 @@ #include "builtin_functions.h" #include "constants.h" -RCSID("$Id: peep.c,v 1.51 2001/07/08 21:02:41 grubba Exp $"); +RCSID("$Id: peep.c,v 1.52 2001/07/09 12:50:18 grubba Exp $"); static void asm_opt(void); @@ -148,7 +148,7 @@ void ins_f_byte(unsigned int b) Pike_error("Instruction too big %d\n",b); #endif #ifdef HAVE_COMPUTED_GOTO - add_to_program(fcode_to_opcode[b-1]); + add_to_program(fcode_to_opcode[b]); #else /* !HAVE_COMPUTED_GOTO */ add_to_program((unsigned char)b); #endif /* HAVE_COMPUTED_GOTO */