Added some patterns and fixed error in constant multiplication
This commit is contained in:
parent
6f8002f540
commit
256151c7e4
|
@ -374,6 +374,10 @@ loe loe $1==$2: loe $1 dup w
|
|||
#endif
|
||||
loe ste $1==$2:
|
||||
LLP blm $2==w: loi w sil $1
|
||||
lol loc sbi stl $1==$4 && $2==1: del $1
|
||||
lol loc sbi stl $1==$4 && $2==-1: inl $1
|
||||
lol loc adi stl $1==$4 && $2==1: inl $1
|
||||
lol loc adi stl $1==$4 && $2==-1: del $1
|
||||
lol dec stl $1==$3: del $1
|
||||
lol inc stl $1==$3: inl $1
|
||||
lol loc mli $2==0 && $3==w: loc 0
|
||||
|
|
|
@ -777,7 +777,12 @@ repl_mul(lp, b, e)
|
|||
} else {
|
||||
if (virgin) {
|
||||
newinstr(b, op_dup, sz); b = &((*b)->l_next);
|
||||
newinstr(b, op_loc, 0); b = &((*b)->l_next);
|
||||
if (sz == wordsize) {
|
||||
newinstr(b, op_loc, 0); b = &((*b)->l_next);
|
||||
}
|
||||
else {
|
||||
newinstr(b, op_ldc, 0); b = &((*b)->l_next);
|
||||
}
|
||||
newinstr(b, op_exg, sz); b = &((*b)->l_next);
|
||||
virgin = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue