pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:2579:    while (Pike_sp > save_sp) {    do_jump(F_CATCH_AT, Pike_sp[-1].u.integer);    emit0(F_ENTRY);    pop_stack();    }       do_pop(1); /* Pop the return value. */    }       /* Call the resumption callback. */ -  emit1(F_MARK_AND_LOCAL, +  emit0(F_MARK); +  emit0(F_UNDEFINED); +  emit1(F_SWAP_STACK_LOCAL,    Pike_compiler->compiler_frame->generator_local + 3);    tmp1 = do_jump(F_BRANCH_AND_POP_WHEN_ZERO, -1);    emit1(F_LOCAL,    Pike_compiler->compiler_frame->generator_local + 2);    emit0(F_CALL_FUNCTION_AND_POP);    tmp2 = do_jump(F_BRANCH, -1);    ins_label(tmp1);    emit0(F_POP_MARK);    ins_label(tmp2);   
pike.git/src/docode.c:3037:       /* Zap the arguments to be able to restore the stack. */    emit1(F_MARK_AT, 0);    emit0(F_POP_TO_MARK);       /* Restore the stack content and zap extra references. */    emit1(F_RESTORE_STACK_FROM_LOCAL,    Pike_compiler->compiler_frame->generator_local + 1);       /* Emit the state-machine switch for the generator. */ -  emit1(F_LOCAL, Pike_compiler->compiler_frame->generator_local); +     emit1(F_NUMBER, -1); -  emit1(F_ASSIGN_LOCAL_AND_POP, -  Pike_compiler->compiler_frame->generator_local); +  emit1(F_SWAP_STACK_LOCAL, Pike_compiler->compiler_frame->generator_local);    generator_switch = emit1(F_SWITCH, 0);    emit1(F_ALIGN, sizeof(INT32));       /* NB: Three implicit states:    * -1: return UNDEFINED; // Termination state.    * 0: code // Code start.    * ...    * *: return UNDEFINED; // Termination state (again).    *    * Jumptable: