pike.git / src / peep.c

version» Context lines:

pike.git/src/peep.c:150:    c=(p_instr *)instrbuf.s.str;    length=instrbuf.s.len / sizeof(p_instr);       max_label=-1;    for(e=0;e<length;e++,c++)    if(c->opcode == F_LABEL)    if(c->arg > max_label)    max_label = c->arg;       -  +     labels=(INT32 *)xalloc(sizeof(INT32) * (max_label+1));    jumps=(INT32 *)xalloc(sizeof(INT32) * (max_label+1));    uses=(INT32 *)xalloc(sizeof(INT32) * (max_label+1));       for(e=0;e<=max_label;e++)    {    labels[e]=jumps[e]=-1;    uses[e]=0;    }   
pike.git/src/peep.c:175:       for(e=0;e<length;e++)    {    if(instrs[c[e].opcode-F_OFFSET].flags & I_POINTER)    {    while(1)    {    int tmp,tmp2;    tmp=labels[c[e].arg];    -  while(c[tmp].opcode == F_LABEL || -  c[tmp].opcode == F_NOP) tmp++; +  while(tmp<length && +  (c[tmp].opcode == F_LABEL || +  c[tmp].opcode == F_NOP)) tmp++;    -  +  if(tmp>=length) break; +     if(c[tmp].opcode==F_BRANCH)    {    c[e].arg=c[tmp].arg;    continue;    }      #define TWOO(X,Y) (((X)<<8)+(Y))       switch(TWOO(c[e].opcode,c[tmp].opcode))    {