pike.git / src / peep.in

version» Context lines:

pike.git/src/peep.in:377:   CONST0 GLOBAL NEGATE ADD_INTS : GLOBAL($2a) NEGATE      LOCAL ADD_INT LOCAL($1a) : LOCAL($1a) DUP ADD_INT($2a) SWAP   GLOBAL ADD_INT GLOBAL($1a) : GLOBAL($1a) DUP ADD_INT($2a) SWAP   LOCAL ADD_NEG_INT LOCAL($1a) : LOCAL($1a) DUP ADD_NEG_INT($2a) SWAP   GLOBAL ADD_NEG_INT GLOBAL($1a) : GLOBAL($1a) DUP ADD_NEG_INT($2a) SWAP      LOCAL BRANCH_WHEN_NON_ZERO : BRANCH_IF_LOCAL($1a) POINTER($2a)   LOCAL BRANCH_WHEN_ZERO : BRANCH_IF_NOT_LOCAL($1a) POINTER($2a)    + // quick_branch_when[_non]_zero _knows_ that the + // value on the stack is an integer. + GT BRANCH_WHEN_ZERO : GT QUICK_BRANCH_WHEN_ZERO($2a) + GE BRANCH_WHEN_ZERO : GE QUICK_BRANCH_WHEN_ZERO($2a) + LT BRANCH_WHEN_ZERO : LT QUICK_BRANCH_WHEN_ZERO($2a) + LE BRANCH_WHEN_ZERO : LE QUICK_BRANCH_WHEN_ZERO($2a) +  + GT BRANCH_WHEN_NON_ZERO : GT QUICK_BRANCH_WHEN_NON_ZERO($2a) + GE BRANCH_WHEN_NON_ZERO : GE QUICK_BRANCH_WHEN_NON_ZERO($2a) + LT BRANCH_WHEN_NON_ZERO : LT QUICK_BRANCH_WHEN_NON_ZERO($2a) + LE BRANCH_WHEN_NON_ZERO : LE QUICK_BRANCH_WHEN_NON_ZERO($2a) +  + // It is not really neccessary to set up a frame for these cases. + // Deluxe version: Also avoid the argument/local clearing, asm-level + // register pushing etc. + // + // These are functions returning a constant, and doing nothing else. + MARK_AT(0) POP_TO_MARK INIT_FRAME RETURN_0 : RETURN_0 + MARK_AT(0) POP_TO_MARK INIT_FRAME RETURN_1 : RETURN_1 + MARK_AT(0) POP_TO_MARK INIT_FRAME NUMBER RETURN : NUMBER RETURN + MARK_AT(0) POP_TO_MARK INIT_FRAME STRING RETURN : STRING RETURN + MARK_AT(0) POP_TO_MARK INIT_FRAME CONSTANT RETURN : CONSTANT RETURN + MARK_AT(0) POP_TO_MARK INIT_FRAME NUMBER RETURN : NUMBER RETURN + MARK_AT(0) POP_TO_MARK INIT_FRAME STRING RETURN : STRING RETURN + MARK_AT(0) POP_TO_MARK INIT_FRAME CONSTANT RETURN : CONSTANT RETURN +    // Branches that jump to the next instruction   // Basic branches   BRANCH LABEL($1a) : LABEL($1a)   BRANCH_WHEN_ZERO LABEL($1a) : POP_VALUE LABEL($1a)   BRANCH_WHEN_NON_ZERO LABEL($1a) : POP_VALUE LABEL($1a)   BRANCH_WHEN_EQ LABEL($1a) : POP_VALUE POP_VALUE LABEL($1a)   BRANCH_WHEN_NE LABEL($1a) : POP_VALUE POP_VALUE LABEL($1a)   BRANCH_WHEN_LT LABEL($1a) : POP_VALUE POP_VALUE LABEL($1a)   BRANCH_WHEN_LE LABEL($1a) : POP_VALUE POP_VALUE LABEL($1a)   BRANCH_WHEN_GT LABEL($1a) : POP_VALUE POP_VALUE LABEL($1a)