Branch: Tag:

1998-03-31

1998-03-31 21:52:23 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

optimized

Rev: src/docode.c:1.34
Rev: src/interpret.c:1.72
Rev: src/language.yacc:1.67
Rev: src/lex.c:1.46
Rev: src/lex.h:1.11
Rev: src/main.c:1.44
Rev: src/main.h:1.8
Rev: src/peep.c:1.20
Rev: src/peep.in:1.13

1:   # - # $Id: peep.in,v 1.12 1998/03/28 15:47:46 grubba Exp $ + # $Id: peep.in,v 1.13 1998/03/31 21:52:23 hubbe Exp $   #   NOP :   POP_N_ELEMS (0) :
34:   CONST0 ASSIGN_LOCAL_AND_POP : CLEAR_LOCAL($2a)   CLEAR_LOCAL NUMBER(0) ASSIGN_LOCAL_AND_POP ($1a) : CLEAR_LOCAL($1a)   CLEAR_LOCAL NUMBER(0) ASSIGN_LOCAL_AND_POP ($1a+1) : CLEAR_2_LOCAL($1a) + CLEAR_2_LOCAL CLEAR_2_LOCAL($1a+2) : CLEAR_4_LOCAL($1a)      #CONST_1 MULTIPLY : NEGATE   #CONST0 MULTIPLY : POP_VALUE CONST0
60:   BRANCH !LABEL : BRANCH($1a)   RETURN !LABEL : RETURN   RETURN_0 !LABEL : RETURN_0 + RETURN_1 !LABEL : RETURN_1 + RETURN_LOCAL !LABEL : RETURN_LOCAL($1a)   BRANCH LABEL ($1a) : LABEL ($1a)      LOCAL_LVALUE INC : INC_LOCAL ($1a)
74:   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) : ASSIGN_LOCAL ($1a) +    ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN : RETURN - ASSIGN_GLOBAL_AND_POP GLOBAL ($1a) : ASSIGN_GLOBAL ($1a) - DEC_LOCAL_AND_POP LOCAL ($1a) : DEC_LOCAL ($1a) - INC_LOCAL_AND_POP LOCAL ($1a) : INC_LOCAL ($1a) +       GLOBAL_LVALUE INC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) INC   GLOBAL_LVALUE DEC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) DEC
114:      LOCAL LOCAL [$2a<256 && $3o != F_SIZEOF && $3o != F_INDEX ]: 2_LOCALS ($1a) BYTE ($2a)   MARK LOCAL [ $3o != F_SIZEOF && $3o != F_INDEX ]: MARK_AND_LOCAL ($2a) + MARK STRING : MARK_AND_STRING($2a)   LOCAL SIZEOF: SIZEOF_LOCAL ($1a)   STRING INDEX: STRING_INDEX ($1a)   LOCAL INDEX: LOCAL_INDEX ($1a) -  + LOCAL LOCAL INDEX: LOCAL_LOCAL_INDEX($2a) BYTE($1a)   CONST0 INDEX: POS_INT_INDEX (0)   CONST_1 INDEX: NEG_INT_INDEX (1)   CONST1 INDEX: POS_INT_INDEX (1)
154:   LTOSVAL2 ADD ASSIGN_AND_POP : ADD_TO_AND_POP   LTOSVAL ADD ASSIGN_AND_POP : ADD_TO_AND_POP    - APPLY RETURN : APPLY_AND_RETURN($1a) - CALL_FUNCTION RETURN : CALL_FUNCTION_AND_RETURN - CALL_LFUN RETURN : CALL_LFUN_AND_RETURN($1a) + APPLY [ !(debug_options & NO_TAILRECURSION) ] RETURN : APPLY_AND_RETURN($1a) + CALL_FUNCTION [ !(debug_options & NO_TAILRECURSION) ] RETURN : CALL_FUNCTION_AND_RETURN + CALL_LFUN [ !(debug_options & NO_TAILRECURSION) ] RETURN : CALL_LFUN_AND_RETURN($1a) +  + LOCAL RETURN : RETURN_LOCAL($1a) + APPLY ASSIGN_LOCAL_AND_POP : APPLY_ASSIGN_LOCAL_AND_POP($1a) BYTE($2a) + 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: NUMBER($1a+$2a) + NUMBER ADD_NEG_INT: NUMBER($1a-$2a) + NEG_NUMBER ADD_INT: NUMBER($-1a+$2a) + NEG_NUMBER ADD_NEG_INT: NUMBER(-$1a-$2a) +  + LOCAL BRANCH_WHEN_NON_ZERO : BRANCH_IF_LOCAL($1a) POINTER($2a) +  + DEC_LOCAL_AND_POP LOCAL ($1a) : DEC_LOCAL ($1a) + INC_LOCAL_AND_POP LOCAL ($1a) : INC_LOCAL ($1a) + ASSIGN_LOCAL_AND_POP LOCAL($1a) : ASSIGN_LOCAL($1a) + ASSIGN_GLOBAL_AND_POP GLOBAL($1a) : ASSIGN_GLOBAL($1a) + APPLY_ASSIGN_LOCAL_AND_POP BYTE LOCAL ($2a) : APPLY_ASSIGN_LOCAL($1a) BYTE($2a) +  + DEC_LOCAL_AND_POP MARK_AND_LOCAL ($1a) : MARK DEC_LOCAL ($1a) + INC_LOCAL_AND_POP MARK_AND_LOCAL ($1a) : MARK INC_LOCAL ($1a) + ASSIGN_GLOBAL_AND_POP MARK GLOBAL($1a) : MARK_X(1) ASSIGN_GLOBAL($1a) + ASSIGN_LOCAL_AND_POP MARK_AND_LOCAL($1a) : MARK_X(1) ASSIGN_LOCAL($1a) + APPLY_ASSIGN_LOCAL_AND_POP BYTE MARK_AND_LOCAL ($2a) : APPLY_ASSIGN_LOCAL($1a) BYTE($2a) MARK_X(1) +  + ASSIGN_LOCAL ASSIGN_LOCAL($1a) : ASSIGN_LOCAL($1a) +  + # MARK_X rules + MARK_X(0) : MARK + LOCAL MARK_X [$2a>0] : MARK_X($2a-1) LOCAL($1a) + STRING MARK_X [$2a>0] : MARK_X($2a-1) STRING($1a) + NUMBER MARK_X [$2a>0] : MARK_X($2a-1) NUMBER($1a) + CONST0 MARK_X [$2a>0] : MARK_X($2a-1) CONST0 + CONST1 MARK_X [$2a>0] : MARK_X($2a-1) CONST1 + CONST_1 MARK_X [$2a>0] : MARK_X($2a-1) CONST_1 + NEG_NUMBER MARK_X [$2a>0] : MARK_X($2a-1) NEG_NUMBER($1a) + GLOBAL MARK_X [$2a>0] : MARK_X($2a-1) GLOBAL($1a) + MARK_APPLY MARK_X [$2a>0] : MARK_X($2a-1) MARK_APPLY($1a) + CONSTANT MARK_X [$2a>0] : MARK_X($2a-1) CONSTANT($1a) + FLOAT MARK_X [$2a>0] : MARK_X($2a-1) FLOAT($1a) + LFUN MARK_X [$2a>0] : MARK_X($2a-1) LFUN($1a) + LTOSVAL MARK_X [$2a>0] : MARK_X($2a-1) LTOSVAL + LOCAL_LVALUE MARK_X [$2a>1] : MARK_X($2a-2) LOCAL_LVALUE($1a) + 2_LOCALS BYTE MARK_X [$2a>0] : LOCAL($1a) MARK_X($3a-1) LOCAL($2a)