596e361998-03-31Fredrik Hübinette (Hubbe) //
873ceb2000-04-30Fredrik Hübinette (Hubbe) // $Id: peep.in,v 1.35 2000/05/01 02:11:25 hubbe Exp $
596e361998-03-31Fredrik Hübinette (Hubbe) //
66d51c1997-03-04Fredrik Hübinette (Hubbe) NOP :
2199ed1996-04-13Fredrik Hübinette (Hubbe) 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
c67d341996-08-03Fredrik Hübinette (Hubbe) MARK MARK: MARK2
2199ed1996-04-13Fredrik Hübinette (Hubbe) ASSIGN_GLOBAL POP_VALUE : ASSIGN_GLOBAL_AND_POP($1a) ASSIGN_LOCAL POP_VALUE : ASSIGN_LOCAL_AND_POP($1a)
c67d341996-08-03Fredrik Hübinette (Hubbe) CALL_LFUN POP_VALUE : CALL_LFUN_AND_POP($1a)
e82b301997-01-29Fredrik Hübinette (Hubbe) APPLY POP_VALUE : APPLY_AND_POP($1a)
3c04e81997-03-13Fredrik Hübinette (Hubbe) MARK APPLY : MARK_APPLY($2a) MARK_APPLY POP_VALUE : MARK_APPLY_POP($1a)
2199ed1996-04-13Fredrik Hübinette (Hubbe) NUMBER(0) : CONST0 NUMBER(1) : CONST1 NUMBER(-1) : CONST_1 NUMBER (0x7fffffff) : BIGNUM CONST0 NEGATE : CONST0 CONST1 NEGATE : CONST_1 CONST_1 NEGATE : CONST1 NUMBER NEGATE : NEG_NUMBER($1a)
48073b1998-09-01Fredrik Hübinette (Hubbe) NUMBER [$1a < 0 && (-$1a)>0] : NEG_NUMBER (-$1a)
2199ed1996-04-13Fredrik Hübinette (Hubbe) NEG_NUMBER NEGATE : NUMBER ($1a)
3c04e81997-03-13Fredrik Hübinette (Hubbe) NEGATE NEGATE : COMPL COMPL :
2199ed1996-04-13Fredrik Hübinette (Hubbe) NEGATE CONST_1 ADD : COMPL NEGATE CONST1 SUBTRACT : COMPL CONST0 ASSIGN_LOCAL_AND_POP : CLEAR_LOCAL($2a)
a7538d1998-05-12Fredrik Hübinette (Hubbe)  // Remove clearing of locals from the beginning of functions
873ceb2000-04-30Fredrik Hübinette (Hubbe) START_FUNCTION LABEL(0) CLEAR_LOCAL : LABEL(0) START_FUNCTION LABEL(0) CLEAR_2_LOCAL : LABEL(0) START_FUNCTION LABEL(0) CLEAR_4_LOCAL : LABEL(0) START_FUNCTION CLEAR_LOCAL : START_FUNCTION CLEAR_2_LOCAL : START_FUNCTION CLEAR_4_LOCAL :
a7538d1998-05-12Fredrik Hübinette (Hubbe) 
e82b301997-01-29Fredrik Hübinette (Hubbe) 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)
9b08a21998-03-31Fredrik Hübinette (Hubbe) CLEAR_2_LOCAL CLEAR_2_LOCAL($1a+2) : CLEAR_4_LOCAL($1a)
2199ed1996-04-13Fredrik Hübinette (Hubbe) 
596e361998-03-31Fredrik Hübinette (Hubbe) // CONST_1 MULTIPLY : NEGATE // CONST0 MULTIPLY : POP_VALUE CONST0 // CONST1 MULTIPLY : // NUMBER MULTIPLY [count_bits($1a)==1]: NUMBER(my_log2($1a)) LSH
2199ed1996-04-13Fredrik Hübinette (Hubbe) 
596e361998-03-31Fredrik Hübinette (Hubbe) // CONST_1 DIVIDE : NEGATE // CONST1 DIVIDE : // NUMBER DIVIDE [count_bits($1a)==1]: NUMBER(my_log2($1a)) RSH
2199ed1996-04-13Fredrik Hübinette (Hubbe)  CONST0 SUBTRACT: CONST0 XOR: CONST_1 XOR: COMPL CONST0 RETURN: RETURN_0
3c04e81997-03-13Fredrik Hübinette (Hubbe) CONST1 RETURN: RETURN_1
2199ed1996-04-13Fredrik Hübinette (Hubbe) 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)
dbd32e2000-04-26Fredrik Hübinette (Hubbe) 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
2199ed1996-04-13Fredrik Hübinette (Hubbe) BRANCH !LABEL : BRANCH($1a) RETURN !LABEL : RETURN RETURN_0 !LABEL : RETURN_0
9b08a21998-03-31Fredrik Hübinette (Hubbe) RETURN_1 !LABEL : RETURN_1 RETURN_LOCAL !LABEL : RETURN_LOCAL($1a)
dd76201998-05-13Fredrik Hübinette (Hubbe) APPLY_AND_RETURN !LABEL : APPLY_AND_RETURN($1a) CALL_FUNCTION_AND_RETURN !LABEL : CALL_FUNCTION_AND_RETURN($1a) CALL_LFUN_AND_RETURN !LABEL : CALL_LFUN_AND_RETURN($1a)
f16bd31996-05-01Fredrik Hübinette (Hubbe) BRANCH LABEL ($1a) : LABEL ($1a)
2199ed1996-04-13Fredrik Hübinette (Hubbe)  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)
0f19431999-11-29Fredrik Hübinette (Hubbe) ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN: ASSIGN_LOCAL($1a) RETURN ASSIGN_LOCAL_AND_POP LOCAL ($1a) RETURN [compiler_frame->lexical_scope< 2]: 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) RETURN LABEL($2a) [compiler_frame->lexical_scope<2] : 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)
c67d341996-08-03Fredrik Hübinette (Hubbe)  GLOBAL_LVALUE INC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) INC GLOBAL_LVALUE DEC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) DEC
2199ed1996-04-13Fredrik Hübinette (Hubbe) CONST1 BRANCH_WHEN_ZERO: CONST0 BRANCH_WHEN_ZERO: BRANCH($2a) CONST1 BRANCH_WHEN_NON_ZERO: BRANCH($2a) CONST0 BRANCH_WHEN_NON_ZERO:
dfb2141998-06-05Fredrik Hübinette (Hubbe) // These optimizations are now handled in optimize_eq // CONST0 BRANCH_WHEN_EQ: BRANCH_WHEN_ZERO($2a) // CONST0 BRANCH_WHEN_NE: BRANCH_WHEN_NON_ZERO($2a) // CONST0 EQ: NOT
a991b91998-06-05Fredrik Hübinette (Hubbe) 
2199ed1996-04-13Fredrik Hübinette (Hubbe) EQ BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_EQ ($2a) NE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_NE ($2a) LT BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_LT ($2a) GT BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_GT ($2a) LE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_LE ($2a) GE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_GE ($2a) EQ BRANCH_WHEN_ZERO: BRANCH_WHEN_NE ($2a) NE BRANCH_WHEN_ZERO: BRANCH_WHEN_EQ ($2a) LT BRANCH_WHEN_ZERO: BRANCH_WHEN_GE ($2a) GT BRANCH_WHEN_ZERO: BRANCH_WHEN_LE ($2a) LE BRANCH_WHEN_ZERO: BRANCH_WHEN_GT ($2a) GE BRANCH_WHEN_ZERO: BRANCH_WHEN_LT ($2a)
419fab1997-03-09Fredrik Hübinette (Hubbe) EQ LOR: EQ_OR ($2a)
2d12341997-03-10Fredrik Hübinette (Hubbe) EQ LAND: EQ_AND ($2a)
419fab1997-03-09Fredrik Hübinette (Hubbe) 
2199ed1996-04-13Fredrik Hübinette (Hubbe) EQ NOT: NE NE NOT: EQ LT NOT: GE GT NOT: LE LE NOT: GT GE NOT: LT
c67d341996-08-03Fredrik Hübinette (Hubbe) 
a96ce92000-04-19Fredrik Hübinette (Hubbe) LOCAL LOCAL [$3o != F_SIZEOF && $3o != F_INDEX ]: 2_LOCALS ($1a,$2a)
e82b301997-01-29Fredrik Hübinette (Hubbe) MARK LOCAL [ $3o != F_SIZEOF && $3o != F_INDEX ]: MARK_AND_LOCAL ($2a)
9b08a21998-03-31Fredrik Hübinette (Hubbe) MARK STRING : MARK_AND_STRING($2a)
c67d341996-08-03Fredrik Hübinette (Hubbe) LOCAL SIZEOF: SIZEOF_LOCAL ($1a)
06983f1996-09-22Fredrik Hübinette (Hubbe) STRING INDEX: STRING_INDEX ($1a)
99761f1998-10-09Fredrik Hübinette (Hubbe)  STRING CLEAR_STRING_SUBTYPE: STRING ($1a) CONST0 CLEAR_STRING_SUBTYPE: CONST0 CONST1 CLEAR_STRING_SUBTYPE: CONST1 CONST_1 CLEAR_STRING_SUBTYPE: CONST_1 NUMBER CLEAR_STRING_SUBTYPE: NUMBER($1a) NEG_NUMBER CLEAR_STRING_SUBTYPE: NEG_NUMBER($1a)
06983f1996-09-22Fredrik Hübinette (Hubbe) LOCAL INDEX: LOCAL_INDEX ($1a)
99761f1998-10-09Fredrik Hübinette (Hubbe) LOCAL CLEAR_STRING_SUBTYPE INDEX: LOCAL_INDEX ($1a)
a96ce92000-04-19Fredrik Hübinette (Hubbe) LOCAL LOCAL INDEX: LOCAL_LOCAL_INDEX($2a,$1a) LOCAL LOCAL CLEAR_STRING_SUBTYPE INDEX: LOCAL_LOCAL_INDEX($2a,$1a)
99761f1998-10-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) CONST0 INDEX: POS_INT_INDEX (0) CONST_1 INDEX: NEG_INT_INDEX (1) CONST1 INDEX: POS_INT_INDEX (1)
dffa011997-01-15Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) NUMBER [$1a < 0] INDEX: NEG_INT_INDEX (-$1a) NUMBER [$1a >= 0] INDEX: POS_INT_INDEX ($1a) NEG_NUMBER [$1a >= 0] INDEX: NEG_INT_INDEX ($1a) NEG_NUMBER [$1a < 0] INDEX: POS_INT_INDEX (-$1a)
3c04e81997-03-13Fredrik Hübinette (Hubbe)  BRANCH_WHEN_ZERO BRANCH LABEL ($1a): BRANCH_WHEN_NON_ZERO($2a) LABEL($1a) BRANCH_WHEN_NON_ZERO BRANCH LABEL ($1a): BRANCH_WHEN_ZERO($2a) LABEL($1a) BRANCH_WHEN_EQ BRANCH LABEL ($1a) : BRANCH_WHEN_NE($2a) LABEL($1a) BRANCH_WHEN_NE BRANCH LABEL ($1a) : BRANCH_WHEN_EQ($2a) LABEL($1a) BRANCH_WHEN_LT BRANCH LABEL ($1a) : BRANCH_WHEN_GE($2a) LABEL($1a) BRANCH_WHEN_GE BRANCH LABEL ($1a) : BRANCH_WHEN_LT($2a) LABEL($1a) BRANCH_WHEN_LE BRANCH LABEL ($1a) : BRANCH_WHEN_GT($2a) LABEL($1a) BRANCH_WHEN_GT BRANCH LABEL ($1a) : BRANCH_WHEN_LE($2a) LABEL($1a) CONST0 ADD: ADD_INT (0) CONST1 ADD: ADD_INT (1) CONST_1 ADD: ADD_NEG_INT (1) NUMBER [$1a >= 0] ADD : ADD_INT ($1a) NUMBER [$1a < 0] ADD : ADD_NEG_INT (-$1a) CONST0 SUBTRACT: ADD_INT (0) CONST1 SUBTRACT: ADD_NEG_INT (-1) CONST_1 SUBTRACT: ADD_INT (1) NUMBER [$1a >= 0] SUBTRACT : ADD_NEG_INT ($1a) NUMBER [$1a < 0] SUBTRACT : ADD_INT (-$1a)
156fd51997-10-27Fredrik Hübinette (Hubbe)  LTOSVAL2 ADD ASSIGN_AND_POP : ADD_TO_AND_POP LTOSVAL ADD ASSIGN_AND_POP : ADD_TO_AND_POP
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) 
9b08a21998-03-31Fredrik Hübinette (Hubbe) 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)
a96ce92000-04-19Fredrik Hübinette (Hubbe) APPLY ASSIGN_LOCAL_AND_POP : APPLY_ASSIGN_LOCAL_AND_POP($1a,$2a)
9b08a21998-03-31Fredrik Hübinette (Hubbe) 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)
327b991999-10-25Fredrik Hübinette (Hubbe) 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)
9b08a21998-03-31Fredrik Hübinette (Hubbe)  LOCAL BRANCH_WHEN_NON_ZERO : BRANCH_IF_LOCAL($1a) POINTER($2a)
a7538d1998-05-12Fredrik Hübinette (Hubbe) LOCAL BRANCH_WHEN_ZERO : BRANCH_IF_NOT_LOCAL($1a) POINTER($2a)
9b08a21998-03-31Fredrik Hübinette (Hubbe)  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)
a96ce92000-04-19Fredrik Hübinette (Hubbe) APPLY_ASSIGN_LOCAL_AND_POP LOCAL ($1b) : APPLY_ASSIGN_LOCAL($1a,$1b)
9b08a21998-03-31Fredrik Hübinette (Hubbe)  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)
a96ce92000-04-19Fredrik Hübinette (Hubbe) APPLY_ASSIGN_LOCAL_AND_POP MARK_AND_LOCAL ($1b) : APPLY_ASSIGN_LOCAL($1a,$1b) MARK_X(1)
9b08a21998-03-31Fredrik Hübinette (Hubbe)  ASSIGN_LOCAL ASSIGN_LOCAL($1a) : ASSIGN_LOCAL($1a)
596e361998-03-31Fredrik Hübinette (Hubbe) // MARK_X rules
9b08a21998-03-31Fredrik Hübinette (Hubbe) 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)
a96ce92000-04-19Fredrik Hübinette (Hubbe) 2_LOCALS MARK_X [$2a>0] : LOCAL($1a) MARK_X($2a-1) LOCAL($1b)
596e361998-03-31Fredrik Hübinette (Hubbe)  #define BasicBranch2(Branch,Oper,Pre,Post,Variable) \ Variable Branch Pre Variable ($1a) : Variable ($1a) Oper ($2a) Post ; \ ASSIGN_##Variable Branch Pre Variable ($1a) : ASSIGN_##Variable($1a) Oper ($2a) Post ; #define BasicBranch1(Branch,Oper,Pre,Post) \ BasicBranch2(Branch,Oper,Pre,Post,LOCAL) \ BasicBranch2(Branch,Oper,Pre,Post,GLOBAL) #define BasicBranch0(Branch,Oper) \ BasicBranch1(Branch,Oper,MARK,MARK_X(1)) \ BasicBranch1(Branch,Oper, , ) BasicBranch0(BRANCH_WHEN_NON_ZERO, BRANCH_AND_POP_WHEN_NON_ZERO) BasicBranch0(BRANCH_WHEN_ZERO, BRANCH_AND_POP_WHEN_ZERO)
a7538d1998-05-12Fredrik Hübinette (Hubbe) 
dbd32e2000-04-26Fredrik Hübinette (Hubbe) #define SimpleBranch(Sequence,X) \ Sequence BRANCH_WHEN_ZERO Sequence : Sequence BRANCH_AND_POP_WHEN_ZERO ( X ) ; \ Sequence BRANCH_WHEN_ZERO MARK Sequence : Sequence BRANCH_AND_POP_WHEN_ZERO ( X ) MARK_X(1) ; SimpleBranch( LOCAL_ARROW($1a, $1b), $2a ) SimpleBranch( LOCAL_ARROW($1a, $1b) ARROW($2a), $3a ) SimpleBranch( LOCAL_ARROW($1a, $1b) ARROW($2a) ARROW($3a), $4a ) SimpleBranch( LOCAL_ARROW($1a, $1b) ARROW($2a) ARROW($3a) ARROW($4a), $5a )
50d1d62000-04-30Fredrik Hübinette (Hubbe) SimpleBranch( GLOBAL_LOCAL_INDEX($1a, $1b) , $2a ) SimpleBranch( LOCAL_LOCAL_INDEX($1a, $1b) , $2a )
dbd32e2000-04-26Fredrik Hübinette (Hubbe)  SimpleBranch( GLOBAL($1a) ARROW ($2a), $3a )
a96ce92000-04-19Fredrik Hübinette (Hubbe) LOCAL ASSIGN_LOCAL_AND_POP : LOCAL_2_LOCAL($2a,$1a) GLOBAL ASSIGN_LOCAL_AND_POP : GLOBAL_2_LOCAL($1a,$2a) LOCAL ASSIGN_GLOBAL_AND_POP : LOCAL_2_GLOBAL($2a,$1a)
a7538d1998-05-12Fredrik Hübinette (Hubbe) 
a96ce92000-04-19Fredrik Hübinette (Hubbe) LOCAL ARROW : LOCAL_ARROW($2a,$1a) LOCAL_ARROW BRANCH_WHEN_ZERO: BRANCH_IF_NOT_LOCAL_ARROW($1a,$1b) POINTER($2a)
a7538d1998-05-12Fredrik Hübinette (Hubbe) 
a96ce92000-04-19Fredrik Hübinette (Hubbe) GLOBAL LOCAL_INDEX : GLOBAL_LOCAL_INDEX($1a,$2a)
a7538d1998-05-12Fredrik Hübinette (Hubbe)  SIZEOF CONST1 BRANCH_WHEN_LT : SIZEOF BRANCH_WHEN_ZERO ($3a)
82f8ee1998-05-22Fredrik Hübinette (Hubbe) SIZEOF_LOCAL CONST1 BRANCH_WHEN_LT : SIZEOF_LOCAL($1a) BRANCH_WHEN_ZERO ($3a)
a7538d1998-05-12Fredrik Hübinette (Hubbe) SIZEOF CONST0 BRANCH_WHEN_LE : SIZEOF BRANCH_WHEN_ZERO ($3a)
82f8ee1998-05-22Fredrik Hübinette (Hubbe) SIZEOF_LOCAL CONST0 BRANCH_WHEN_LE : SIZEOF_LOCAL($1a) BRANCH_WHEN_ZERO ($3a)
dd76201998-05-13Fredrik Hübinette (Hubbe)  CLEAR_LOCAL DEC_LOCAL_AND_POP($1a) : CONST_1 ASSIGN_LOCAL_AND_POP($1a) CLEAR_LOCAL INC_LOCAL_AND_POP($1a) : CONST1 ASSIGN_LOCAL_AND_POP($1a)
48073b1998-09-01Fredrik Hübinette (Hubbe)  NUMBER POP_VALUE : STRING POP_VALUE : FLOAT POP_VALUE : CONSTANT POP_VALUE : LOCAL POP_VALUE :
4218011999-01-31Fredrik Hübinette (Hubbe) IDENTIFIER POP_VALUE : TRAMPOLINE POP_VALUE :
6fd5172000-04-25Fredrik Hübinette (Hubbe)  RECUR RETURN: TAIL_RECUR ($1a)
873ceb2000-04-30Fredrik Hübinette (Hubbe)  // This doesn't really work // MARK TAIL_RECUR : BRANCH ($1a)
dbd32e2000-04-26Fredrik Hübinette (Hubbe) 
bf7e092000-04-30Martin Nilsson ASSIGN_LOCAL BRANCH_WHEN_ZERO 2_LOCALS(,$1a) BRANCH_WHEN_EQ : ASSIGN_LOCAL($1a) BRANCH_AND_POP_WHEN_ZERO($2a) LOCAL($3a) BRANCH_WHEN_EQ($4a) ASSIGN_LOCAL BRANCH_WHEN_ZERO 2_LOCALS(,$1a) BRANCH_WHEN_NE : ASSIGN_LOCAL($1a) BRANCH_AND_POP_WHEN_ZERO($2a) LOCAL($3a) BRANCH_WHEN_NE($4a)
dbd32e2000-04-26Fredrik Hübinette (Hubbe)  /* 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