pike.git / src / peep.in

version» Context lines:

pike.git/src/peep.in:1:   // - // $Id: peep.in,v 1.52 2001/06/19 23:59:33 hubbe Exp $ + // $Id: peep.in,v 1.53 2001/06/23 10:33:11 hubbe Exp $   //      NOP :   POP_N_ELEMS (0) :   POP_N_ELEMS POP_VALUE : POP_N_ELEMS ($1a + 1)   POP_VALUE POP_VALUE : POP_N_ELEMS (2)   POP_VALUE POP_N_ELEMS : POP_N_ELEMS ($2a + 1)   POP_N_ELEMS POP_N_ELEMS : POP_N_ELEMS ($1a + $2a)   POP_N_ELEMS(1) : POP_VALUE   POP_VALUE POP_TO_MARK : POP_TO_MARK
pike.git/src/peep.in:59:      // CONST_1 DIVIDE : NEGATE   // CONST1 DIVIDE :   // NUMBER DIVIDE [!($1a & ($1a - 1))]: NUMBER(my_log2($1a)) RSH      CONST0 SUBTRACT:   CONST0 XOR:   CONST_1 XOR: COMPL   CONST0 RETURN: RETURN_0   CONST1 RETURN: RETURN_1 + CONST0 VOLATILE_RETURN: RETURN_0 + CONST1 VOLATILE_RETURN: RETURN_1   INC POP_VALUE: INC_AND_POP   POST_INC POP_VALUE: INC_AND_POP   DEC POP_VALUE: DEC_AND_POP   POST_DEC POP_VALUE: DEC_AND_POP   NOT BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_ZERO($2a)   NOT BRANCH_WHEN_ZERO: BRANCH_WHEN_NON_ZERO($2a)      POP_VALUE RETURN_0: RETURN_0   POP_N_ELEMS RETURN_0: RETURN_0   POP_VALUE RETURN_1: RETURN_1   POP_N_ELEMS RETURN_1: RETURN_1      // F_SYNCH_MARK and F_POP_SYNCH_MARK is output only with -d3 and   // higher. We keep them solely for balancing the asm debug output.   #define DeadCodeEndCond(op) \    [op != F_LABEL && op != F_SYNCH_MARK && op != F_POP_SYNCH_MARK]   BRANCH ? DeadCodeEndCond($2o) : BRANCH($1a)   RETURN ? DeadCodeEndCond($2o) : RETURN -  + VOLATILE_RETURN ? DeadCodeEndCond($2o) : VOLATILE_RETURN   RETURN_0 ? DeadCodeEndCond($2o) : RETURN_0   RETURN_1 ? DeadCodeEndCond($2o) : RETURN_1   RETURN_LOCAL ? DeadCodeEndCond($2o) : RETURN_LOCAL($1a)      LOCAL_LVALUE INC : INC_LOCAL ($1a)   LOCAL_LVALUE POST_INC : POST_INC_LOCAL ($1a)   LOCAL_LVALUE INC_AND_POP : INC_LOCAL_AND_POP ($1a)   INC_LOCAL POP_VALUE : INC_LOCAL_AND_POP ($1a)   POST_INC_LOCAL POP_VALUE : INC_LOCAL_AND_POP ($1a)      LOCAL_LVALUE DEC : DEC_LOCAL ($1a)   LOCAL_LVALUE POST_DEC : POST_DEC_LOCAL ($1a)   LOCAL_LVALUE DEC_AND_POP : DEC_LOCAL_AND_POP ($1a)   DEC_LOCAL POP_VALUE : DEC_LOCAL_AND_POP ($1a)   POST_DEC_LOCAL POP_VALUE : DEC_LOCAL_AND_POP ($1a)    - ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN: ASSIGN_LOCAL($1a) RETURN + ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN: ASSIGN_LOCAL($1a) + ASSIGN_LOCAL_AND_POP LOCAL ($1a) VOLATILE_RETURN: ASSIGN_LOCAL($1a)   ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN [!(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPED)]: RETURN -  + ASSIGN_LOCAL_AND_POP LOCAL ($1a) VOLATILE_RETURN [!(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPED)]: VOLATILE_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) VOLATILE_RETURN LABEL($2a): ASSIGN_LOCAL($1a) RETURN_IF_TRUE LABEL($2a)      ASSIGN_LOCAL BRANCH_WHEN_ZERO LOCAL($1a) RETURN LABEL($2a) [!(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPED)] : RETURN_IF_TRUE ASSIGN_LOCAL($1a) LABEL($2a) -  + ASSIGN_LOCAL BRANCH_WHEN_ZERO LOCAL($1a) VOLATILE_RETURN LABEL($2a) [!(Pike_compiler->compiler_frame->lexical_scope & SCOPE_SCOPED)] : 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) -  + ASSIGN_GLOBAL BRANCH_WHEN_ZERO GLOBAL($1a) VOLATILE_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      CONST1 BRANCH_WHEN_ZERO:   CONST0 BRANCH_WHEN_ZERO: BRANCH($2a)   CONST1 BRANCH_WHEN_NON_ZERO: BRANCH($2a)   CONST0 BRANCH_WHEN_NON_ZERO:   
pike.git/src/peep.in:215:   LTOSVAL2 ADD_INTS ASSIGN_AND_POP : ADD_TO_AND_POP   LTOSVAL ADD_INTS ASSIGN_AND_POP : ADD_TO_AND_POP      LTOSVAL2 ADD_FLOATS ASSIGN_AND_POP : ADD_TO_AND_POP   LTOSVAL ADD_FLOATS ASSIGN_AND_POP : ADD_TO_AND_POP      LOCAL CONST1 ADD_TO_AND_POP : INC_LOCAL_AND_POP($1a)   LOCAL CONST_1 ADD_TO_AND_POP : DEC_LOCAL_AND_POP($1a)      LOCAL RETURN : RETURN_LOCAL($1a) + LOCAL VOLATILE_RETURN : RETURN_LOCAL($1a)   #ifdef EAT_STACK   APPLY ASSIGN_LOCAL_AND_POP : APPLY_ASSIGN_LOCAL_AND_POP($1a,$2a)   #endif   ASSIGN_LOCAL_AND_POP INC_LOCAL_AND_POP($1a) : ADD_INT(1) ASSIGN_LOCAL_AND_POP($1a)   ASSIGN_LOCAL_AND_POP DEC_LOCAL_AND_POP($1a) : ADD_NEG_INT(1) ASSIGN_LOCAL_AND_POP($1a)   NUMBER ADD_INT [ !INT_TYPE_ADD_OVERFLOW($1a, $2a) ] : NUMBER($1a+$2a)   NUMBER ADD_NEG_INT [ !INT_TYPE_SUB_OVERFLOW($1a, $2a) ]: NUMBER($1a-$2a)   NEG_NUMBER ADD_INT [ !INT_TYPE_ADD_OVERFLOW(-$1a, $2a) ]: NUMBER(-$1a+$2a)   NEG_NUMBER ADD_NEG_INT [ !INT_TYPE_SUB_OVERFLOW(-$1a, $2a) ]: NUMBER(-$1a-$2a)   
pike.git/src/peep.in:358:   /* This will facilitate other optimizations I hope */   CLEAR_LOCAL MARK LOCAL [ $1a != $3a ] : MARK LOCAL($3a) CLEAR_LOCAL($1a)      /* The result of this optimization could be reordered... */   CLEAR_LOCAL MARK LOCAL($1a) : MARK CLEAR_LOCAL($1a) CONST0            #define LOW_MKCALLOPTS(A) \   A POP_VALUE: A##_AND_POP($1a); \ - A [ check_tailrecursion() ] RETURN : A##_AND_RETURN($1a); \ - A##_AND_RETURN ? DeadCodeEndCond($2o) : A##_AND_RETURN($1a) + A [ check_tailrecursion() ] RETURN : A##_AND_RETURN($1a) ; \ + A##_AND_RETURN ? DeadCodeEndCond($2o) : A##_AND_RETURN($1a) ;      #define MKCALLOPTS(A) \   MARK A: MARK_##A($2a) ; \   LOW_MKCALLOPTS(A); \   LOW_MKCALLOPTS(MARK_##A);         MKCALLOPTS(APPLY)   MKCALLOPTS(CALL_FUNCTION)   MKCALLOPTS(CALL_LFUN)   MKCALLOPTS(CALL_BUILTIN)