From c9745c8a8e0a7e1162f8626f8a78dc7c4141d07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Mon, 9 Jul 2001 14:50:18 +0200 Subject: [PATCH] The fcode_to_opcode array is now indexed by (fcode-F_OFFSET). Rev: src/interpreter.h:1.63 Rev: src/peep.c:1.52 --- src/interpreter.h | 6 ++++-- src/peep.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/interpreter.h b/src/interpreter.h index 6b2cd7db75..71e784a0af 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 ce9f609f11..767ea3f7fe 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 */ -- GitLab