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.127 2003/01/12 16:00:14 mast Exp $ + || $Id: interpret_functions.h,v 1.128 2003/01/16 16:10:12 mast Exp $   */      /*    * Opcode definitions for the interpreter.    */      #include "global.h"      #undef CJUMP   #undef AUTO_BIGNUM_LOOP_TEST
pike.git/src/interpret_functions.h:299:      OPCODE0(F_FLOAT, "push float", 0, {    /* FIXME, this opcode uses 'PROG_COUNTER' which is not allowed.. */    MEMCPY((void *)&Pike_sp->u.float_number, PROG_COUNTER, sizeof(FLOAT_TYPE));    Pike_sp->type=PIKE_T_FLOAT;    Pike_sp++;    DO_JUMP_TO((PIKE_OPCODE_T *)(((FLOAT_TYPE *)PROG_COUNTER) + 1));   });      OPCODE1(F_LFUN, "local function", 0, { -  Pike_sp->u.object=Pike_fp->current_object; -  add_ref(Pike_fp->current_object); -  Pike_sp->subtype=arg1+Pike_fp->context.identifier_level; -  Pike_sp->type=PIKE_T_FUNCTION; -  Pike_sp++; +  ref_push_function (Pike_fp->current_object, +  arg1+Pike_fp->context.identifier_level);    print_return_value();   });      OPCODE2(F_TRAMPOLINE, "trampoline", 0, {    struct object *o=low_clone(pike_trampoline_program);    struct pike_frame *f=Pike_fp;    DO_IF_DEBUG(INT32 arg2_ = arg2);       while(arg2--) {    DO_IF_DEBUG({    if (!f->scope) {    Pike_fatal("F_TRAMPOLINE %d, %d: Missing %d levels of scope!\n",    arg1, arg2_, arg2+1);    }    });    f=f->scope;    }    add_ref( ((struct pike_trampoline *)(o->storage))->frame=f );    ((struct pike_trampoline *)(o->storage))->func=arg1+Pike_fp->context.identifier_level; -  push_object(o); -  /* Make it look like a function. */ -  Pike_sp[-1].subtype = pike_trampoline_program->lfuns[LFUN_CALL]; -  Pike_sp[-1].type = T_FUNCTION; +  push_function(o, pike_trampoline_program->lfuns[LFUN_CALL]);    print_return_value();   });      /* The not so basic 'push value' instructions */      OPCODE1_TAIL(F_MARK_AND_GLOBAL, "mark & global", 0, {    *(Pike_mark_sp++)=Pike_sp;       OPCODE1(F_GLOBAL, "global", 0, {    low_object_index_no_free(Pike_sp,