pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: docode.c,v 1.40 1998/10/09 23:30:21 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.41 1998/11/16 22:14:49 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "language.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "error.h"
pike.git/src/docode.c:527:    INT32 *prev_switch_jumptable = current_switch_jumptable;    INT32 break_save = current_break;    INT32 continue_save = current_continue;       current_switch_jumptable=0;    current_break=alloc_label();    current_continue=alloc_label();       tmp2=do_docode(CAR(n),DO_NOT_COPY);    emit2(F_CONST0); + #ifdef DEBUG +  /* This is really ugly because there is always a chance that the bug +  * will disappear when new instructions are added to the code, but +  * think it is worth it. +  */ +  if(d_flag) +  emit2(F_MARK); + #endif    tmp3=do_jump(F_BRANCH,-1);    tmp1=ins_label(-1);    DO_CODE_BLOCK(CDR(n));    ins_label(current_continue);    emit(F_LABEL,tmp3);    do_jump(n->token,tmp1);    ins_label(current_break);    -  + #ifdef DEBUG +  if(d_flag) +  emit2(F_POP_MARK); + #endif +     current_switch_jumptable = prev_switch_jumptable;    current_break=break_save;    current_continue=continue_save;    do_pop(4);    return 0;    }       case F_INC_NEQ_LOOP:    case F_DEC_NEQ_LOOP:    case F_INC_LOOP:
pike.git/src/docode.c:556:    {    INT32 *prev_switch_jumptable = current_switch_jumptable;    INT32 break_save = current_break;    INT32 continue_save = current_continue;       current_switch_jumptable=0;    current_break=alloc_label();    current_continue=alloc_label();       tmp2=do_docode(CAR(n),0); + #ifdef DEBUG +  /* This is really ugly because there is always a chance that the bug +  * will disappear when new instructions are added to the code, but +  * think it is worth it. +  */ +  if(d_flag) +  emit2(F_MARK); + #endif    tmp3=do_jump(F_BRANCH,-1);    tmp1=ins_label(-1);       DO_CODE_BLOCK(CDR(n));    ins_label(current_continue);    emit(F_LABEL,tmp3);    do_jump(n->token,tmp1);    ins_label(current_break); -  + #ifdef DEBUG +  if(d_flag) +  emit2(F_POP_MARK); + #endif       current_switch_jumptable = prev_switch_jumptable;    current_break=break_save;    current_continue=continue_save;    do_pop(3);    return 0;    }       case F_DO:    {