Branch: Tag:

1999-11-30

1999-11-30 07:50:20 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

new opcode: RETURN_IF_TRUE

Rev: src/interpreter.h:1.20
Rev: src/language.yacc:1.138
Rev: src/lex.c:1.67
Rev: src/peep.in:1.27
Rev: src/program.c:1.176

1:   // - // $Id: peep.in,v 1.26 1999/10/25 10:19:36 hubbe Exp $ + // $Id: peep.in,v 1.27 1999/11/30 07:50:18 hubbe Exp $   //      NOP :
86:   DEC_LOCAL POP_VALUE : DEC_LOCAL_AND_POP ($1a)   POST_DEC_LOCAL POP_VALUE : DEC_LOCAL_AND_POP ($1a)    - // The ASSIGN_LOCAL can be removed if this frame is not - // a candidate for surviving after return. (due to lambda functions) - ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN : ASSIGN_LOCAL($1a) RETURN + ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN: ASSIGN_LOCAL($1a) RETURN + ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN [compiler_frame->lexical_scope< 2]: RETURN    -  + ASSIGN_LOCAL BRANCH_WHEN_ZERO LOCAL($1a) RETURN LABEL($2a): ASSIGN_LOCAL($1a) RETURN_IF_TRUE LABEL($2a) +  + ASSIGN_LOCAL BRANCH_WHEN_ZERO LOCAL($1a) RETURN LABEL($2a) [compiler_frame->lexical_scope<2] : RETURN_IF_TRUE ASSIGN_LOCAL($1a) LABEL($2a) +  + ASSIGN_GLOBAL BRANCH_WHEN_ZERO GLOBAL($1a) RETURN LABEL($2a): ASSIGN_GLOBAL($1a) RETURN_IF_TRUE LABEL($2a) +  +    GLOBAL_LVALUE INC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) INC   GLOBAL_LVALUE DEC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) DEC