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.149 2003/04/18 15:49:46 mast Exp $ + || $Id: interpret_functions.h,v 1.150 2003/04/27 17:52:42 mast Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:718:    } else if (Pike_sp[-2].type == T_OBJECT) {    /* One ref in the lvalue, and one on the stack. */    if(Pike_sp[-2].u.object->refs <= 2 &&    FIND_LFUN(Pike_sp[-2].u.object->prog, LFUN_ADD_EQ) != -1)    {    apply_lfun(Pike_sp[-2].u.object, LFUN_ADD_EQ, 1);    /* NB: The lvalue already contains the object, so    * no need to reassign it.    */    pop_stack(); -  stack_pop_n_elems_keep_top(2); +  stack_pop_2_elems_keep_top();    goto add_to_done;    }    }    f_add(2);    assign_lvalue(Pike_sp-3,Pike_sp-1); -  stack_pop_n_elems_keep_top(2); +  stack_pop_2_elems_keep_top();    add_to_done:    ; /* make gcc happy */   });      OPCODE0(F_ADD_TO_AND_POP, "+= and pop", 0, {    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);   
pike.git/src/interpret_functions.h:806:    )    {    INT_TYPE val = ++u->integer;    pop_2_elems();    push_int(val);    } else {    lvalue_to_svalue_no_free(Pike_sp, Pike_sp-2); Pike_sp++;    push_int(1);    f_add(2);    assign_lvalue(Pike_sp-3, Pike_sp-1); -  stack_unlink(2); +  stack_pop_2_elems_keep_top();    }   });      OPCODE0(F_DEC, "--x", 0, {    union anything *u=get_pointer_if_this_type(Pike_sp-2, PIKE_T_INT);    if(u    DO_IF_BIGNUM(    && !INT_TYPE_SUB_OVERFLOW(u->integer, 1)    )    )    {    INT_TYPE val = --u->integer;    pop_2_elems();    push_int(val);    } else {    lvalue_to_svalue_no_free(Pike_sp, Pike_sp-2); Pike_sp++;    push_int(1);    o_subtract();    assign_lvalue(Pike_sp-3, Pike_sp-1); -  stack_unlink(2); +  stack_pop_2_elems_keep_top();    }   });      OPCODE0(F_DEC_AND_POP, "x-- and pop", 0, {    union anything *u=get_pointer_if_this_type(Pike_sp-2, PIKE_T_INT);    if(u    DO_IF_BIGNUM(    && !INT_TYPE_SUB_OVERFLOW(u->integer, 1)    )   )
pike.git/src/interpret_functions.h:886:    INT_TYPE val = u->integer++;    pop_2_elems();    push_int(val);    } else {    lvalue_to_svalue_no_free(Pike_sp, Pike_sp-2); Pike_sp++;    stack_dup();    push_int(1);    f_add(2);    assign_lvalue(Pike_sp-4, Pike_sp-1);    pop_stack(); -  stack_unlink(2); +  stack_pop_2_elems_keep_top();    print_return_value();    }   });      OPCODE0(F_POST_DEC, "x--", 0, {    union anything *u=get_pointer_if_this_type(Pike_sp-2, PIKE_T_INT);    if(u    DO_IF_BIGNUM(    && !INT_TYPE_SUB_OVERFLOW(u->integer, 1)    )
pike.git/src/interpret_functions.h:909:    INT_TYPE val = u->integer--;    pop_2_elems();    push_int(val);    } else {    lvalue_to_svalue_no_free(Pike_sp, Pike_sp-2); Pike_sp++;    stack_dup();    push_int(1);    o_subtract();    assign_lvalue(Pike_sp-4, Pike_sp-1);    pop_stack(); -  stack_unlink(2); +  stack_pop_2_elems_keep_top();    print_return_value();    }   });      OPCODE1(F_ASSIGN_LOCAL, "assign local", 0, {    assign_svalue(Pike_fp->locals+arg1,Pike_sp-1);   });      OPCODE0(F_ASSIGN, "assign", 0, {    assign_lvalue(Pike_sp-3,Pike_sp-1);
pike.git/src/interpret_functions.h:1890:    fun=find_shared_string_identifier(Pike_fp->context.prog->strings[arg1],    p);    if(fun >= 0)    {    if(low_mega_apply(APPLY_LOW, args-1, o, (void *)(ptrdiff_t)fun))    {    Pike_fp->save_sp--;    Pike_fp->flags |= PIKE_FRAME_RETURN_INTERNAL;    DO_JUMP_TO(Pike_fp->pc);    } -  stack_unlink(1); +  stack_pop_keep_top();    DONE;    }    }    }    }       {    struct svalue tmp;    struct svalue tmp2;   
pike.git/src/interpret_functions.h:1997:    if(fun >= 0)    {    if(low_mega_apply(APPLY_LOW, args-1, o, (void *)(ptrdiff_t)fun))    {    PIKE_OPCODE_T *addr = Pike_fp->pc;    Pike_fp->save_sp--;    DO_IF_DEBUG(Pike_fp->next->pc=0);    unlink_previous_frame();    DO_JUMP_TO(addr);    } -  stack_unlink(1); +  stack_pop_keep_top();    DO_DUMB_RETURN;    }    }    }    }       {    struct svalue tmp;    struct svalue tmp2;