pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: interpret_functions.h,v 1.111 2002/10/28 13:01:31 nilsson Exp $ + || $Id: interpret_functions.h,v 1.112 2002/11/02 15:43:45 grubba Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:45:   #define OPCODE2_JUMP(A, B, F, C) OPCODE2_JUMP(A, B, F) --- C   #define OPCODE0_TAILJUMP(A, B, F, C) OPCODE0_TAILJUMP(A, B, F) --- C   #define OPCODE1_TAILJUMP(A, B, F, C) OPCODE1_TAILJUMP(A, B, F) --- C   #define OPCODE2_TAILJUMP(A, B, F, C) OPCODE2_TAILJUMP(A, B, F) --- C   #define OPCODE0_RETURN(A, B, F, C) OPCODE0_RETURN(A, B, F) --- C   #define OPCODE1_RETURN(A, B, F, C) OPCODE1_RETURN(A, B, F) --- C   #define OPCODE2_RETURN(A, B, F, C) OPCODE2_RETURN(A, B, F) --- C   #define OPCODE0_TAILRETURN(A, B, F, C) OPCODE0_TAILRETURN(A, B, F) --- C   #define OPCODE1_TAILRETURN(A, B, F, C) OPCODE1_TAILRETURN(A, B, F) --- C   #define OPCODE2_TAILRETURN(A, B, F, C) OPCODE2_TAILRETURN(A, B, F) --- C + #define OPCODE0_BRANCH(A, B, F, C) OPCODE0_BRANCH(A, B, F) --- C + #define OPCODE1_BRANCH(A, B, F, C) OPCODE1_BRANCH(A, B, F) --- C + #define OPCODE2_BRANCH(A, B, F, C) OPCODE2_BRANCH(A, B, F) --- C + #define OPCODE0_TAILBRANCH(A, B, F, C) OPCODE0_TAILBRANCH(A, B, F) --- C + #define OPCODE1_TAILBRANCH(A, B, F, C) OPCODE1_TAILBRANCH(A, B, F) --- C + #define OPCODE2_TAILBRANCH(A, B, F, C) OPCODE2_TAILBRANCH(A, B, F) --- C   #endif /* GEN_PROTOS */         /*   #ifndef PROG_COUNTER   #define PROG_COUNTER pc   #endif   */      #ifndef INTER_ESCAPE_CATCH   #define INTER_ESCAPE_CATCH return -2   #endif      #ifndef INTER_RETURN   #define INTER_RETURN return -1   #endif    -  + /* BRANCH opcodes use these two to indicate whether the +  * branch should be taken or not. +  */ + #ifndef DO_BRANCH + #define DO_BRANCH DOJUMP + #endif + #ifndef DONT_BRANCH + #define DONT_BRANCH SKIPJUMP + #endif +    #ifndef OVERRIDE_JUMPS      #undef GET_JUMP   #undef SKIPJUMP   #undef DOJUMP      #ifdef PIKE_DEBUG      #define GET_JUMP() (backlog[backlogp].arg=(\    (t_flag>3 ? sprintf(trace_buffer, "- Target = %+ld\n", \
pike.git/src/interpret_functions.h:1152:   });      OPCODE0_JUMP(F_CATCH, "catch", 0, {    check_c_stack(8192);    switch (o_catch((PIKE_OPCODE_T *)(((INT32 *)PROG_COUNTER)+1)))    {    case 1:    /* There was a return inside the evaluated code */    DO_DUMB_RETURN;    case 2: +  /* Escape catch, continue after the escape instruction. */    DO_JUMP_TO(Pike_fp->pc);    break;    default: -  DO_JUMP_TO(PROG_COUNTER + GET_JUMP()); +  DOJUMP();    }    /* NOT_REACHED */   });      OPCODE0_RETURN(F_ESCAPE_CATCH, "escape catch", 0, {    Pike_fp->pc = PROG_COUNTER;    INTER_ESCAPE_CATCH;   });      OPCODE0_RETURN(F_EXIT_CATCH, "exit catch", 0, {