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 ASSIGN_GLOBAL POP_VALUE : ASSIGN_GLOBAL_AND_POP($1a) ASSIGN_LOCAL POP_VALUE : ASSIGN_LOCAL_AND_POP($1a) 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) NUMBER [$1a < 0] : NEG_NUMBER (-$1a) NEG_NUMBER NEGATE : NUMBER ($1a) NEGATE CONST_1 ADD : COMPL NEGATE CONST1 SUBTRACT : COMPL CONST0 ASSIGN_LOCAL_AND_POP : CLEAR_LOCAL($2a) CONST_1 MULTIPLY : NEGATE #CONST0 MULTIPLY : POP_VALUE CONST0 CONST1 MULTIPLY : #NUMBER MULTIPLY [count_bits($1a)==1]: NUMBER(my_log2($1a)) LSH CONST_1 DIVIDE : NEGATE CONST1 DIVIDE : #NUMBER DIVIDE [count_bits($1a)==1]: NUMBER(my_log2($1a)) RSH CONST0 SUBTRACT: CONST0 XOR: CONST_1 XOR: COMPL EQ CONST0: NOT CONST0 RETURN: RETURN_0 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) BRANCH !LABEL : BRANCH($1a) RETURN !LABEL : RETURN RETURN_0 !LABEL : RETURN_0 BRANCH LABEL ($1a) : 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) CONST1 BRANCH_WHEN_ZERO: CONST0 BRANCH_WHEN_ZERO: BRANCH($2a) CONST1 BRANCH_WHEN_NON_ZERO: BRANCH($2a) CONST0 BRANCH_WHEN_NON_ZERO: 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) EQ NOT: NE NE NOT: EQ LT NOT: GE GT NOT: LE LE NOT: GT GE NOT: LT