diff --git a/src/peep.c b/src/peep.c index 9f0d259b6cbc7e800516458ae14630985d9041d5..66c1faf5f615567df9cc671a8500fe00dd4f4274 100644 --- a/src/peep.c +++ b/src/peep.c @@ -326,17 +326,15 @@ INT32 assemble(int store_linenumbers) labels=xalloc(sizeof(INT32) * 4 * (max_label+2)); jumps = labels + max_label + 2; - uses = jumps + max_label + 2; - aliases = uses + max_label + 2; + aliases = jumps + max_label + 2; + uses = aliases + max_label + 2; while(relabel) { /* First do the relabel pass. */ - for(e=0;e<=max_label;e++) - { - labels[e]=jumps[e]= aliases[e] = -1; - uses[e]=0; - } - + /* Set labels, jumps and aliases to all -1. */ + memset(labels, 0xff, ((max_label + 2) * 3) * sizeof(INT32)); + memset(uses, 0x00, (max_label + 2) * sizeof(INT32)); + c=(p_instr *)instrbuf.s.str; length=instrbuf.s.len / sizeof(p_instr); for(e=0;e<length;e++)