pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.16 2000/04/25 09:32:46 hubbe Exp $ +  * $Id: interpret_functions.h,v 1.17 2000/04/27 02:12:49 hubbe Exp $    *    * Opcode definitions for the interpreter.    */      OPCODE0(F_UNDEFINED,"push UNDEFINED")    push_int(0);    Pike_sp[-1].subtype=NUMBER_UNDEFINED;   BREAK;      OPCODE0(F_CONST0, "push 0")
pike.git/src/interpret_functions.h:1485:    }         /* Assume that the number of arguments is correct */   OPCODE0_JUMP(F_RECUR,"recur")   {    int x,num_locals,args;    char *addr;    struct svalue *expendible=fp->expendible;    struct svalue *locals=fp->locals; -  struct svalue *save_sp; +  struct svalue *save_sp, **save_mark_sp;       fast_check_threads_etc(6);    check_c_stack(8192);    check_stack(256);       save_sp=fp->expendible=fp->locals=*--Pike_mark_sp;    args=sp-fp->locals; -  +  save_mark_sp=mark_sp;       addr=pc+EXTRACT_INT(pc);    num_locals=EXTRACT_UCHAR(addr-1);      #ifdef PIKE_DEBUG    if(args != EXTRACT_UCHAR(addr-2))    fatal("Wrong number of arguments in F_RECUR %d!=%d\n",args,EXTRACT_UCHAR(addr-2));   #endif       clear_svalues(sp, num_locals - args);    sp += num_locals - args;       x=eval_instruction(addr); -  +  mark_sp=save_mark_sp;    if(x!=-1) mega_apply(APPLY_STACK, x, 0,0);    pc+=sizeof(INT32);    if(save_sp+1 < sp)    {    assign_svalue(save_sp,sp-1);    pop_n_elems(sp-save_sp-1);    }    fp->expendible=expendible;    fp->locals=locals;    print_return_value();