Branch: Tag:

2001-06-19

2001-06-19 23:59:33 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

more *CALL* functions, should speed things up a percent or two... :)

Rev: src/Makefile.in:1.260
Rev: src/docode.c:1.120
Rev: src/interpret.c:1.207
Rev: src/interpret_functions.h:1.62
Rev: src/peep.in:1.52
Rev: src/strip_opcodes:1.1

1:   // - // $Id: peep.in,v 1.51 2001/06/07 21:46:50 hubbe Exp $ + // $Id: peep.in,v 1.52 2001/06/19 23:59:33 hubbe Exp $   //      NOP :
19:      ASSIGN_GLOBAL POP_VALUE : ASSIGN_GLOBAL_AND_POP($1a)   ASSIGN_LOCAL POP_VALUE : ASSIGN_LOCAL_AND_POP($1a) - CALL_LFUN POP_VALUE : CALL_LFUN_AND_POP($1a) - APPLY POP_VALUE : APPLY_AND_POP($1a) - CALL_FUNCTION POP_VALUE : CALL_FUNCTION_AND_POP +    RECUR POP_VALUE : RECUR_AND_POP($1a) - MARK APPLY : MARK_APPLY($2a) - MARK_APPLY POP_VALUE : MARK_APPLY_POP($1a) +    NUMBER(0) : CONST0   NUMBER(1) : CONST1   NUMBER(-1) : CONST_1
91:   RETURN_0 ? DeadCodeEndCond($2o) : RETURN_0   RETURN_1 ? DeadCodeEndCond($2o) : RETURN_1   RETURN_LOCAL ? DeadCodeEndCond($2o) : RETURN_LOCAL($1a) - APPLY_AND_RETURN ? DeadCodeEndCond($2o) : APPLY_AND_RETURN($1a) - CALL_FUNCTION_AND_RETURN ? DeadCodeEndCond($2o) : CALL_FUNCTION_AND_RETURN($1a) - CALL_LFUN_AND_RETURN ? DeadCodeEndCond($2o) : CALL_LFUN_AND_RETURN($1a) +       LOCAL_LVALUE INC : INC_LOCAL ($1a)   LOCAL_LVALUE POST_INC : POST_INC_LOCAL ($1a)
228:   LOCAL CONST1 ADD_TO_AND_POP : INC_LOCAL_AND_POP($1a)   LOCAL CONST_1 ADD_TO_AND_POP : DEC_LOCAL_AND_POP($1a)    - APPLY [ check_tailrecursion() ] RETURN : APPLY_AND_RETURN($1a) - CALL_FUNCTION [ check_tailrecursion() ] RETURN : CALL_FUNCTION_AND_RETURN - CALL_LFUN [ check_tailrecursion() ] RETURN : CALL_LFUN_AND_RETURN($1a) -  +    LOCAL RETURN : RETURN_LOCAL($1a)   #ifdef EAT_STACK   APPLY ASSIGN_LOCAL_AND_POP : APPLY_ASSIGN_LOCAL_AND_POP($1a,$2a)
371:      /* 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) +  + #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) +