Author: leo
Date: Wed Mar 22 07:52:08 2006
New Revision: 11983
Modified:
trunk/compilers/imcc/pbc.c
Log:
enable branches with 0 offset, i.e. L1: branch L1
Modified: trunk/compilers/imcc/pbc.c
==============================================================================
--- trunk/compilers/imcc/pbc.c (original)
+++ trunk/compilers/imcc/pbc.c Wed Mar 22 07:52:08 2006
@@ -1203,7 +1203,7 @@
}
if (ins->op && *ins->op) {
SymReg *addr, *r;
- opcode_t last_label = 0;
+ opcode_t last_label = 1;
#if IMC_TRACE_HIGH
PIO_eprintf(NULL, "emit_pbc: op [%d %s]\n", ins->opnum, ins->op);
#endif
@@ -1215,7 +1215,8 @@
IMCC_fatal(interpreter, 1, "e_pbc_emit: "
"no label offset defined for '%s'\n", addr->name);
last_label = addr->color - npc;
- IMCC_debug(interpreter, DEBUG_PBC_FIXUP, "branch label at pc %d
addr %d %s %d\n",
+ IMCC_debug(interpreter, DEBUG_PBC_FIXUP,
+ "branch label at pc %d addr %d %s %d\n",
npc, addr->color, addr->name, last_label);
}
/* add debug line info */
@@ -1247,11 +1248,12 @@
case PARROT_ARG_IC:
/* branch instruction */
if (op_info->labels[i]) {
- if (last_label == 0) /* we don't have a branch with
offset 0 !? */
+ if (last_label == 1)
+ /* we don't have a branch with offset 1 !? */
IMCC_fatal(interpreter, 1, "e_pbc_emit: "
"no label offset found\n");
*pc++ = last_label;
- last_label = 0;
+ last_label = 1;
break;
/* else fall through */
}