pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.62 2001/06/19 23:59:33 hubbe Exp $ +  * $Id: interpret_functions.h,v 1.63 2001/06/28 10:23:58 hubbe Exp $    *    * Opcode definitions for the interpreter.    */      #include "global.h"      OPCODE0(F_UNDEFINED,"push UNDEFINED")    push_int(0);    Pike_sp[-1].subtype=NUMBER_UNDEFINED;   BREAK;
pike.git/src/interpret_functions.h:413:    Pike_fp->locals[arg1].u.integer--;    } else {    push_svalue(Pike_fp->locals + arg1);    push_int(1);    o_subtract();    stack_pop_to(Pike_fp->locals + arg1);    }   BREAK;      OPCODE0(F_LTOSVAL, "lvalue to svalue") +  dmalloc_touch_svalue(Pike_sp-2); +  dmalloc_touch_svalue(Pike_sp-1);    lvalue_to_svalue_no_free(Pike_sp, Pike_sp-2);    Pike_sp++;   BREAK;      OPCODE0(F_LTOSVAL2, "ltosval2") -  +  dmalloc_touch_svalue(Pike_sp-3); +  dmalloc_touch_svalue(Pike_sp-2); +  dmalloc_touch_svalue(Pike_sp-1);    Pike_sp[0] = Pike_sp[-1];    Pike_sp[-1].type = PIKE_T_INT;    Pike_sp++;    lvalue_to_svalue_no_free(Pike_sp-2, Pike_sp-4);       /* this is so that foo+=bar (and similar things) will be faster, this    * is done by freeing the old reference to foo after it has been pushed    * on the stack. That way foo can have only 1 reference if we are lucky,    * and then the low array/multiset/mapping manipulation routines can be    * destructive if they like
pike.git/src/interpret_functions.h:480:    if( Pike_sp[-1].type == PIKE_T_INT &&    Pike_sp[-2].type == PIKE_T_INT )    {   #ifdef AUTO_BIGNUM    if(!INT_TYPE_ADD_OVERFLOW(Pike_sp[-1].u.integer, Pike_sp[-2].u.integer))   #endif    {    /* Optimization for a rather common case. Makes it 30% faster. */    Pike_sp[-1].u.integer += Pike_sp[-2].u.integer;    assign_lvalue(Pike_sp-4,Pike_sp-1); -  Pike_sp-=4; /* known integers and a lvalue */ +  Pike_sp-=2; +  pop_n_elems(2);    goto add_and_pop_done;    }    }    /* this is so that foo+=bar (and similar things) will be faster, this    * is done by freeing the old reference to foo after it has been pushed    * on the stack. That way foo can have only 1 reference if we are lucky,    * and then the low array/multiset/mapping manipulation routines can be    * destructive if they like    */    if( (1 << Pike_sp[-2].type) &