some more additions
This commit is contained in:
parent
46589d5798
commit
b3a30acb30
1 changed files with 45 additions and 0 deletions
|
@ -375,6 +375,7 @@ lol lal sti $1==$2 && $3<=2 | | | | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
stl inreg($1)==2
|
stl inreg($1)==2
|
||||||
| rmorconst |
|
| rmorconst |
|
||||||
|
remove(regvar($1))
|
||||||
move(%[1], regvar($1)) | | |
|
move(%[1], regvar($1)) | | |
|
||||||
... | nocoercions : STACK |
|
... | nocoercions : STACK |
|
||||||
"pop %(regvar($1)%)" samecc | | |(1,8)
|
"pop %(regvar($1)%)" samecc | | |(1,8)
|
||||||
|
@ -786,6 +787,7 @@ rmu !defined($1)| X_ACC |
|
||||||
"call .rmu" erase(%[1]) | | |
|
"call .rmu" erase(%[1]) | | |
|
||||||
*/
|
*/
|
||||||
slu | | | | sli $1 |
|
slu | | | | sli $1 |
|
||||||
|
lol loc slu | | | | lol $1 loc $2 sli $3 |
|
||||||
loc sru $1==1 && $2==2 | X_REG |
|
loc sru $1==1 && $2==2 | X_REG |
|
||||||
"shr %[1],1"
|
"shr %[1],1"
|
||||||
setcc(%[1]) erase(%[1]) | %[1] | | (2,2)
|
setcc(%[1]) erase(%[1]) | %[1] | | (2,2)
|
||||||
|
@ -1045,6 +1047,7 @@ inc | X_REG |
|
||||||
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
|
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
inl inreg($1)==2| |
|
inl inreg($1)==2| |
|
||||||
|
remove(regvar($1))
|
||||||
"inc %(regvar($1)%)"
|
"inc %(regvar($1)%)"
|
||||||
setcc(regvar($1)) | | |(1,2)
|
setcc(regvar($1)) | | |(1,2)
|
||||||
#endif
|
#endif
|
||||||
|
@ -1060,6 +1063,7 @@ dec | X_REG |
|
||||||
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
|
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
del inreg($1)==2| |
|
del inreg($1)==2| |
|
||||||
|
remove(regvar($1))
|
||||||
"dec %(regvar($1)%)"
|
"dec %(regvar($1)%)"
|
||||||
setcc(regvar($1)) | | |(1,2)
|
setcc(regvar($1)) | | |(1,2)
|
||||||
#endif
|
#endif
|
||||||
|
@ -1072,6 +1076,7 @@ dee | | remove(indirects)
|
||||||
setcc({EXTERN2,$1}) | | |(4,21)
|
setcc({EXTERN2,$1}) | | |(4,21)
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
zrl inreg($1)==2| |
|
zrl inreg($1)==2| |
|
||||||
|
remove(regvar($1))
|
||||||
move({ANYCON,0},regvar($1)) | | |
|
move({ANYCON,0},regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
zrl | | remove(indexed)
|
zrl | | remove(indexed)
|
||||||
|
@ -1111,6 +1116,7 @@ zer !defined($1)| X_CXREG |
|
||||||
|
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol adi stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
lol adi stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
||||||
|
remove(regvar($1))
|
||||||
"add %(regvar($1)%),%[1]"
|
"add %(regvar($1)%),%[1]"
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
|
@ -1125,7 +1131,42 @@ ldl adi sdl $1==$3 && $2==4 | regorconst regorconst |
|
||||||
"add $1(bp),%[1]"
|
"add $1(bp),%[1]"
|
||||||
"adc %($1+2%)(bp),%[2]" | | |
|
"adc %($1+2%)(bp),%[2]" | | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
|
lol loc sbi stl $1==$4 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
"sub %(regvar($1)%),$2"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sli stl $1==$4 && $2==1 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
"sal %(regvar($1)%),1"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sli stl $1==$4 && $2==2 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
"sal %(regvar($1)%),1"
|
||||||
|
"sal %(regvar($1)%),1"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sli stl $1==$4 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
allocate(CXREG = {ANYCON, $2})
|
||||||
|
"sar %(regvar($1)%),cl"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sri stl $1==$4 && $2==1 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
"sar %(regvar($1)%),1"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sri stl $1==$4 && $2==2 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
"sar %(regvar($1)%),1"
|
||||||
|
"sar %(regvar($1)%),1"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
lol loc sri stl $1==$4 && $3==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
|
allocate(CXREG = {ANYCON, $2})
|
||||||
|
"sar %(regvar($1)%),cl"
|
||||||
|
setcc(regvar($1)) | | |
|
||||||
|
#endif
|
||||||
|
#ifdef REGVARS
|
||||||
lol ngi stl $1==$3 && $2==2 && inreg($1)==2 | |
|
lol ngi stl $1==$3 && $2==2 && inreg($1)==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
"neg %(regvar($1)%)"
|
"neg %(regvar($1)%)"
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
|
@ -1157,6 +1198,7 @@ lol adp stl $1==$3 && $2==1 | | | | inl $1 |
|
||||||
lol adp stl $1==$3 && $2==0-1 | | | | del $1 |
|
lol adp stl $1==$3 && $2==0-1 | | | | del $1 |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol adp stl $1==$3 && inreg($1)==2 | |
|
lol adp stl $1==$3 && inreg($1)==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
"add %(regvar($1)%),$2"
|
"add %(regvar($1)%),$2"
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
|
@ -1167,6 +1209,7 @@ lol adp stl $1==$3 | |
|
||||||
setcc({LOCAL2, $1, 2}) | | |
|
setcc({LOCAL2, $1, 2}) | | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol and stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
lol and stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
||||||
|
remove(regvar($1))
|
||||||
"and %(regvar($1)%),%[1]"
|
"and %(regvar($1)%),%[1]"
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
|
@ -1177,6 +1220,7 @@ lol and stl $1==$3 && $2==2 | regorconst |
|
||||||
setcc({LOCAL2, $1, 2}) | | |
|
setcc({LOCAL2, $1, 2}) | | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol ior stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
lol ior stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
|
||||||
|
remove(regvar($1))
|
||||||
"or %(regvar($1)%),%[1]"
|
"or %(regvar($1)%),%[1]"
|
||||||
setcc(regvar($1)) | | |
|
setcc(regvar($1)) | | |
|
||||||
#endif
|
#endif
|
||||||
|
@ -1187,6 +1231,7 @@ lol ior stl $1==$3 && $2==2 | regorconst |
|
||||||
setcc({LOCAL2, $1, 2}) | | |
|
setcc({LOCAL2, $1, 2}) | | |
|
||||||
#ifdef REGVARS
|
#ifdef REGVARS
|
||||||
lol com stl $1==$3 && $2==2 && inreg($1)==2 | |
|
lol com stl $1==$3 && $2==2 && inreg($1)==2 | |
|
||||||
|
remove(regvar($1))
|
||||||
"not %(regvar($1)%)"
|
"not %(regvar($1)%)"
|
||||||
samecc | | |
|
samecc | | |
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue