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.122 2003/02/26 18:19:08 mast Exp $ + || $Id: interpret_functions.h,v 1.123 2003/03/25 15:40:40 marcus Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:1152:    DONT_BRANCH();    pop_stack();    }else{    DO_BRANCH();    }   });      OPCODE0_BRANCH(F_EQ_OR, "==||", 0, {    if(!is_eq(Pike_sp-2,Pike_sp-1))    { -  pop_2_elems(); +     DONT_BRANCH(); -  +  pop_2_elems();    }else{ -  +  DO_BRANCH();    pop_2_elems();    push_int(1); -  DO_BRANCH(); +     }   });      OPCODE0_BRANCH(F_EQ_AND, "==&&", 0, {    if(is_eq(Pike_sp-2,Pike_sp-1))    { -  pop_2_elems(); +     DONT_BRANCH(); -  +  pop_2_elems();    }else{ -  +  DO_BRANCH();    pop_2_elems();    push_int(0); -  DO_BRANCH(); +     }   });      /* This instruction can't currently be a branch, since    * it has more than two continuation paths.    */   OPCODE0_JUMP(F_CATCH, "catch", 0, {    check_c_stack(8192);    switch (o_catch((PIKE_OPCODE_T *)(((INT32 *)PROG_COUNTER)+1)))    {
pike.git/src/interpret_functions.h:1306:    * l2:    * loop(l1)    */   OPCODE0_BRANCH(F_LOOP, "loop", 0, { /* loopcnt */    /* Use >= and 1 to be able to reuse the 1 for the subtraction. */    push_int(1);    if (!is_lt(Pike_sp-2, Pike_sp-1)) {    o_subtract();    DO_BRANCH();    } else { -  pop_2_elems(); +     DONT_BRANCH(); -  +  pop_2_elems();    }   });      OPCODE0_BRANCH(F_FOREACH, "foreach", 0, { /* array, lvalue, X, i */    if(Pike_sp[-4].type != PIKE_T_ARRAY)    PIKE_ERROR("foreach", "Bad argument 1.\n", Pike_sp-3, 1);    if(Pike_sp[-1].u.integer < Pike_sp[-4].u.array->size)    {    if(Pike_sp[-1].u.integer < 0)    Pike_error("Foreach loop variable is negative!\n");