Added some patterns and fixed error in constant multiplication

This commit is contained in:
ceriel 1993-02-03 10:10:07 +00:00
parent 6f8002f540
commit 256151c7e4
2 changed files with 10 additions and 1 deletions

View file

@ -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

View file

@ -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;
}