#ifdef REGVARS
stl inreg($1)==2
| rmorconst |
+ remove(regvar($1))
move(%[1], regvar($1)) | | |
... | nocoercions : STACK |
"pop %(regvar($1)%)" samecc | | |(1,8)
"call .rmu" erase(%[1]) | | |
*/
slu | | | | sli $1 |
+lol loc slu | | | | lol $1 loc $2 sli $3 |
loc sru $1==1 && $2==2 | X_REG |
"shr %[1],1"
setcc(%[1]) erase(%[1]) | %[1] | | (2,2)
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
#ifdef REGVARS
inl inreg($1)==2| |
+ remove(regvar($1))
"inc %(regvar($1)%)"
setcc(regvar($1)) | | |(1,2)
#endif
setcc(%[1]) erase(%[1]) | %[1] | |(1,2)
#ifdef REGVARS
del inreg($1)==2| |
+ remove(regvar($1))
"dec %(regvar($1)%)"
setcc(regvar($1)) | | |(1,2)
#endif
setcc({EXTERN2,$1}) | | |(4,21)
#ifdef REGVARS
zrl inreg($1)==2| |
+ remove(regvar($1))
move({ANYCON,0},regvar($1)) | | |
#endif
zrl | | remove(indexed)
#ifdef REGVARS
lol adi stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
+ remove(regvar($1))
"add %(regvar($1)%),%[1]"
setcc(regvar($1)) | | |
#endif
"add $1(bp),%[1]"
"adc %($1+2%)(bp),%[2]" | | |
#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 | |
+ remove(regvar($1))
"neg %(regvar($1)%)"
setcc(regvar($1)) | | |
#endif
lol adp stl $1==$3 && $2==0-1 | | | | del $1 |
#ifdef REGVARS
lol adp stl $1==$3 && inreg($1)==2 | |
+ remove(regvar($1))
"add %(regvar($1)%),$2"
setcc(regvar($1)) | | |
#endif
setcc({LOCAL2, $1, 2}) | | |
#ifdef REGVARS
lol and stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
+ remove(regvar($1))
"and %(regvar($1)%),%[1]"
setcc(regvar($1)) | | |
#endif
setcc({LOCAL2, $1, 2}) | | |
#ifdef REGVARS
lol ior stl $1==$3 && $2==2 && inreg($1)==2 | rmorconst |
+ remove(regvar($1))
"or %(regvar($1)%),%[1]"
setcc(regvar($1)) | | |
#endif
setcc({LOCAL2, $1, 2}) | | |
#ifdef REGVARS
lol com stl $1==$3 && $2==2 && inreg($1)==2 | |
+ remove(regvar($1))
"not %(regvar($1)%)"
samecc | | |
#endif