added setcc calls to some incrementing ops
added patterns for indirect local and external increments added patterns for loe ine and such
This commit is contained in:
parent
59fa458a20
commit
6f8e6faa1f
1 changed files with 53 additions and 4 deletions
|
@ -1052,9 +1052,11 @@ lil ngi sil $1==$3 && $2==2 && inreg($1)==2 | |
|
||||||
INDSTORE
|
INDSTORE
|
||||||
"neg *%(regvar($1)%)" | | |
|
"neg *%(regvar($1)%)" | | |
|
||||||
lil inc sil $1==$3 && inreg($1)==2 | | INDSTORE
|
lil inc sil $1==$3 && inreg($1)==2 | | INDSTORE
|
||||||
"inc *%(regvar($1)%)" | | |
|
"inc *%(regvar($1)%)"
|
||||||
|
setcc({regdef2, regvar($1)}) | | |
|
||||||
lil dec sil $1==$3 && inreg($1)==2 | | INDSTORE
|
lil dec sil $1==$3 && inreg($1)==2 | | INDSTORE
|
||||||
"dec *%(regvar($1)%)" | | |
|
"dec *%(regvar($1)%)"
|
||||||
|
setcc({regdef2, regvar($1)}) | | |
|
||||||
lol adi stl $2==2 && $1==$3 && inreg($1)==2 | source2 |
|
lol adi stl $2==2 && $1==$3 && inreg($1)==2 | source2 |
|
||||||
remove(regvar($1))
|
remove(regvar($1))
|
||||||
"add %[1],%(regvar($1)%)"
|
"add %[1],%(regvar($1)%)"
|
||||||
|
@ -1105,6 +1107,18 @@ lol adp stl $1==$3 && inreg($1)==2 | |
|
||||||
remove(regvar($1))
|
remove(regvar($1))
|
||||||
"add $$$2,%(regvar($1)%)"
|
"add $$$2,%(regvar($1)%)"
|
||||||
erase(regvar($1)) | | |
|
erase(regvar($1)) | | |
|
||||||
|
lil adp sil $1==$3 && $2==1 && inreg($1)==2 | |
|
||||||
|
INDSTORE
|
||||||
|
"inc *%(regvar($1)%)"
|
||||||
|
erase(regvar($1)) | | |
|
||||||
|
lil adp sil $1==$3 && $2==0-1 && inreg($1)==2 | |
|
||||||
|
INDSTORE
|
||||||
|
"dec *%(regvar($1)%)"
|
||||||
|
erase(regvar($1)) | | |
|
||||||
|
lil adp sil $1==$3 && inreg($1)==2 | |
|
||||||
|
INDSTORE
|
||||||
|
"add $$$2,*%(regvar($1)%)"
|
||||||
|
erase(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
lol loc sbi stl $1==$4 && $3==2 | |
|
lol loc sbi stl $1==$4 && $3==2 | |
|
||||||
remove(indordef)
|
remove(indordef)
|
||||||
|
@ -1119,9 +1133,11 @@ lol ngi stl $1==$3 && $2==2 | |
|
||||||
lil ngi sil $1==$3 && $2==2 | | INDSTORE
|
lil ngi sil $1==$3 && $2==2 | | INDSTORE
|
||||||
"neg *$1(r5)" | | |
|
"neg *$1(r5)" | | |
|
||||||
lil inc sil $1==$3 | | INDSTORE
|
lil inc sil $1==$3 | | INDSTORE
|
||||||
"inc *$1(r5)" | | |
|
"inc *$1(r5)"
|
||||||
|
setcc({reginddef2, lb, tostring($1)}) | | |
|
||||||
lil dec sil $1==$3 | | INDSTORE
|
lil dec sil $1==$3 | | INDSTORE
|
||||||
"dec *$1(r5)" | | |
|
"dec *$1(r5)"
|
||||||
|
setcc({reginddef2, lb, tostring($1)}) | | |
|
||||||
lol adi stl $2==2 && $1==$3 | source2 |
|
lol adi stl $2==2 && $1==$3 | source2 |
|
||||||
remove(indordef)
|
remove(indordef)
|
||||||
remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1)
|
remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1)
|
||||||
|
@ -1142,6 +1158,18 @@ lol adp stl $1==$3 | |
|
||||||
remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1)
|
remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1)
|
||||||
"add $$$2,$1(r5)"
|
"add $$$2,$1(r5)"
|
||||||
setcc({LOCAL2,$1,2}) | | |
|
setcc({LOCAL2,$1,2}) | | |
|
||||||
|
lil adp sil $1==$3 && $2==1 | |
|
||||||
|
INDSTORE
|
||||||
|
"inc *$1(r5)"
|
||||||
|
setcc({LOCAL2,$1,2}) | | |
|
||||||
|
lil adp sil $1==$3 && $2==0-1 | |
|
||||||
|
INDSTORE
|
||||||
|
"dec *$1(r5)"
|
||||||
|
setcc({LOCAL2,$1,2}) | | |
|
||||||
|
lil adp sil $1==$3 | |
|
||||||
|
INDSTORE
|
||||||
|
"add $$$2,*$1(r5)"
|
||||||
|
setcc({LOCAL2,$1,2}) | | |
|
||||||
loe adi ste $2==2 && $1==$3 | source2 |
|
loe adi ste $2==2 && $1==$3 | source2 |
|
||||||
remove(posextern)
|
remove(posextern)
|
||||||
"add %[1],$1"
|
"add %[1],$1"
|
||||||
|
@ -1158,6 +1186,27 @@ loe adp ste $1==$3 | |
|
||||||
remove(posextern)
|
remove(posextern)
|
||||||
"add $$$2,$1"
|
"add $$$2,$1"
|
||||||
setcc({relative2,$1}) | | |
|
setcc({relative2,$1}) | | |
|
||||||
|
loe loi adp loe sti $1==$4 && $2==2 && $5==2 && $3==1 | |
|
||||||
|
INDSTORE
|
||||||
|
"inc *$1"
|
||||||
|
setcc({reldef2,$1}) | | |
|
||||||
|
loe loi adp loe sti $1==$4 && $2==2 && $5==2 && $3==0-1 | |
|
||||||
|
INDSTORE
|
||||||
|
"dec *$1"
|
||||||
|
setcc({reldef2,$1}) | | |
|
||||||
|
loe loi adp loe sti $1==$4 && $2==2 && $5==2 | |
|
||||||
|
INDSTORE
|
||||||
|
"add $$$3,*$1"
|
||||||
|
setcc({reldef2,$1}) | | |
|
||||||
|
loe ine $1==$2 | |
|
||||||
|
allocate(REG={relative2, $1}) | %[a]
|
||||||
|
| ine $2 |
|
||||||
|
loe dee $1==$2 | |
|
||||||
|
allocate(REG={relative2, $1}) | %[a]
|
||||||
|
| dee $2 |
|
||||||
|
loe loe adp ste $1==$2 && $2==$4 | |
|
||||||
|
allocate(REG={relative2, $1}) | %[a]
|
||||||
|
| loe $2 adp $3 ste $2 |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol ior stl $2==2 && $1==$3 && inreg($1)==2 | source2 |
|
lol ior stl $2==2 && $1==$3 && inreg($1)==2 | source2 |
|
||||||
remove(regvar($1))
|
remove(regvar($1))
|
||||||
|
|
Loading…
Reference in a new issue