pike.git / src / peep.in

version» Context lines:

pike.git/src/peep.in:283:   CONST1 ADD: ADD_INT (1)   CONST_1 ADD: ADD_NEG_INT (1)   NUMBER [$1a >= 0] ADD : ADD_INT ($1a)   NEG_NUMBER [$1a > 0] ADD : ADD_NEG_INT ($1a)      CONST1 SUBTRACT: ADD_NEG_INT (1)   CONST_1 SUBTRACT: ADD_INT (1)   NUMBER [$1a >= 0] SUBTRACT : ADD_NEG_INT ($1a)   NEG_NUMBER [$1a > 0] SUBTRACT : ADD_INT ($1a)    + NUMBER MOD : MOD_INT($1a) + NUMBER LSH : LSH_INT($1a) + NUMBER RSH : RSH_INT($1a) + NUMBER SUBTRACT : SUBTRACT_INT($1a) + NUMBER AND : DIVIDE_INT($1a) + NUMBER OR : OR_INT($1a) + NUMBER XOR : XOR_INT($1a) + NUMBER MULTIPLY : MULTIPLY_INT($1a) + NUMBER DIVIDE : DIVIDE_INT($1a) +  + NEG_NUMBER MOD : MOD_INT(-$1a) + NEG_NUMBER LSH : LSH_INT(-$1a) + NEG_NUMBER RSH : RSH_INT(-$1a) + NEG_NUMBER SUBTRACT : SUBTRACT_INT(-$1a) + NEG_NUMBER AND : DIVIDE_INT(-$1a) + NEG_NUMBER OR : OR_INT(-$1a) + NEG_NUMBER XOR : XOR_INT(-$1a) + NEG_NUMBER MULTIPLY : MULTIPLY_INT(-$1a) + NEG_NUMBER DIVIDE : DIVIDE_INT(-$1a) +    // This set of optimizations is broken. Consider the case:   // STRING ADD_INT ADD_INT   //   // ADD_INT ADD_INT: ADD_INT ($1a+$2a)   // ADD_NEG_INT ADD_NEG_INT: ADD_NEG_INT ($1a+$2a)   // ADD_NEG_INT ADD_INT [$1a <= $2a]: ADD_INT ($2a-$1a)   // ADD_NEG_INT ADD_INT [$1a > $2a]: ADD_NEG_INT ($1a-$2a)   // ADD_INT ADD_NEG_INT [$2a <= $1a]: ADD_INT ($1a-$2a)   // ADD_INT ADD_NEG_INT [$2a > $1a]: ADD_NEG_INT ($2a-$1a)