pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.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: interpret.c,v 1.183 2001/01/24 08:17:27 hubbe Exp $"); + RCSID("$Id: interpret.c,v 1.184 2001/01/31 21:51:58 mast Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "pike_error.h"   #include "language.h"   #include "stralloc.h"   #include "constants.h"
pike.git/src/interpret.c:596: Inside #if defined(PIKE_DEBUG)
   free(s);    }   }   #else   #define print_return_value()   #endif      struct callback_list evaluator_callbacks;   #define CASE(X) case (X)-F_OFFSET:    - #define DOJUMP() \ -  do { int tmp; tmp=EXTRACT_INT(pc); pc+=tmp; if(tmp < 0) fast_check_threads_etc(6); }while(0) -  - #define SKIPJUMP() pc+=sizeof(INT32) -  +    #define COMPARISMENT(ID,EXPR) \   CASE(ID); \   instr=EXPR; \   pop_n_elems(2); \   push_int(instr); \   break      #ifdef AUTO_BIGNUM   #define AUTO_BIGNUM_LOOP_TEST(X,Y) INT_TYPE_ADD_OVERFLOW(X,Y)   #else   #define AUTO_BIGNUM_LOOP_TEST(X,Y) 0   #endif      #define LOOP(ID, INC, OP2, OP4) \   CASE(ID) \   { \    union anything *i=get_pointer_if_this_type(Pike_sp-2, T_INT); \    if(i && !AUTO_BIGNUM_LOOP_TEST(i->integer,INC)) \    { \    i->integer += INC; \ -  if(i->integer OP2 Pike_sp[-3].u.integer) \ +  if(i->integer OP2 Pike_sp[-3].u.integer) \    { \ -  pc+=EXTRACT_INT(pc); \ -  fast_check_threads_etc(8); \ +  DOJUMP(); \    }else{ \ -  pc+=sizeof(INT32); \ -  } \ +  SKIPJUMP(); \ +  } \    }else{ \ -  lvalue_to_svalue_no_free(Pike_sp,Pike_sp-2); Pike_sp++; \ +  lvalue_to_svalue_no_free(Pike_sp,Pike_sp-2); Pike_sp++; \    push_int(INC); \    f_add(2); \ -  assign_lvalue(Pike_sp-3,Pike_sp-1); \ -  if(OP4 ( Pike_sp-1, Pike_sp-4 )) \ +  assign_lvalue(Pike_sp-3,Pike_sp-1); \ +  if(OP4 ( Pike_sp-1, Pike_sp-4 )) \    { \ -  pc+=EXTRACT_INT(pc); \ -  fast_check_threads_etc(8); \ +  DOJUMP(); \    }else{ \ -  pc+=sizeof(INT32); \ +  SKIPJUMP(); \    } \    pop_stack(); \    } \    break; \   }      #define CJUMP(X,Y) \   CASE(X); \   if(Y(Pike_sp-2,Pike_sp-1)) { \    DOJUMP(); \
pike.git/src/interpret.c:733:    fprintf(stderr,"%s:%ld: %s",    file,    (long)line,    low_get_f_name(backlog[e].instruction + F_OFFSET, backlog[e].program));    if(instrs[backlog[e].instruction].flags & I_HASARG2)    {    fprintf(stderr,"(%ld,%ld)",    (long)backlog[e].arg,    (long)backlog[e].arg2);    } +  else if(instrs[backlog[e].instruction].flags & I_JUMP) +  { +  fprintf(stderr,"(%+ld)", (long)backlog[e].arg); +  }    else if(instrs[backlog[e].instruction].flags & I_HASARG)    {    fprintf(stderr,"(%ld)", (long)backlog[e].arg);    }    fprintf(stderr," %ld, %ld\n",    DO_NOT_WARN((long)backlog[e].stack),    DO_NOT_WARN((long)backlog[e].mark_stack));    }    }while(e!=backlogp);   }