joehoe "call" label+rm cost(1,8).
jxx "syntax error" label.
lea anyreg:wo, halfindir:ro cost(1,2).
-loop label cost(1,5).
+loop label kills cx cost(1,5).
#ifdef REGVARS
mov LOCAL:wo, memory2:ro cost(1,2). /* only for register variables, UNSAFE!!! */
#endif
mul rmorconst:ro kills :cc ax dx cost(1,124).
neg rmorconst:rw:cc.
nop .
-not rmorconst:rw:cc.
+not rmorconst:rw.
ORB "orb" REG1:ro, REG1:ro:cc. /* use ORB for tests */
OR "or" anyreg:ro, anyreg:ro:cc. /* Use OR for tests */
#ifdef REGVARS
pat dvi $1==4
kills ALL
- gen joehoe {label,".dvi4"} yields cx ax
+ gen joehoe {label,".dvi4"} yields dx ax
/*
pat dvi !defined($1)
pat rmi $1==4
kills ALL
- gen joehoe {label,".rmi4"} yields bx dx
+ gen joehoe {label,".rmi4"} yields dx ax
/*
pat rmi !defined($1)
/*
pat dvu !defined($1)
with ACC STACK
+kills ALL
gen joehoe {label,".dvu"}
*/
/*
pat rmu !defined($1)
with ACC STACK
+kills ALL
gen joehoe {label,".rmu"}
*/
/*
pat sru !defined($1)
with ACC STACK
+kills ALL
gen joehoe {label,".sru"}
*/
sal {LOCAL,$1,2},{ANYCON,1}
pat lol loc sli stl $1==$4 && $3==2 && inreg($1)==reg_any
kills regvar($1)
- uses CXREG={ANYCON,2}
+ uses CXREG={ANYCON,$2}
gen sal {LOCAL,$1,2},cl
pat lol loc sri stl $1==$4 && $2==1 && $3==2 && inreg($1)==reg_any
kills regvar($1)
sar {LOCAL,$1,2},{ANYCON,1}
pat lol loc sri stl $1==$4 && $3==2 && inreg($1)==reg_any
kills regvar($1)
- uses CXREG={ANYCON,2}
+ uses CXREG={ANYCON,$2}
gen sar {LOCAL,$1,2},cl
#endif
#ifdef REGVARS
leaving ads 2
pat lae aar $2==2 && rom($1,3)==1 && rom($1,1)!=0
- leaving loc rom($1,1) sbi 2 ads 2
+ leaving adp 0-rom($1,1) ads 2
pat lae aar $2==2 && rom($1,3)==2 && rom($1,1)==0
- with REG
+ with ADDREG
gen sal %1,{ANYCON,1} yields %1 leaving ads 2
pat lae aar $2==2 && rom($1,3)==2 && rom($1,1)!=0
- with REG
- gen sal %1,{ANYCON,1} yields %1 leaving loc 2*rom($1,1) sbi 2 ads 2
+ with ADDREG
+ gen sal %1,{ANYCON,1} yields %1 leaving adp 0-2*rom($1,1) ads 2
pat lae aar $2==2 && rom($1,3)==4 && rom($1,1)==0
- with REG
+ with ADDREG
gen sal %1,{ANYCON,1}
sal %1,{ANYCON,1} yields %1 leaving ads 2
pat lae aar $2==2 && rom($1,3)==4 && rom($1,1)!=0
- with REG
+ with ADDREG
gen sal %1,{ANYCON,1}
- sal %1,{ANYCON,1} yields %1 leaving loc 4*rom($1,1) sbi 2 ads 2
+ sal %1,{ANYCON,1} yields %1 leaving adp 0-4*rom($1,1) ads 2
pat lae aar $2==2 && rom($1,1)==0
with ACC
with ACC
uses DXREG,REG={ANYCON,rom($1,3)}
gen mul %b yields %1
- leaving loc rom($1,1)*rom($1,3) sbi 2 ads 2
+ leaving adp 0-rom($1,1)*rom($1,3) ads 2
pat loc sli ads $1==1 && $2==2 && $3==2
-with REG
+with ADDREG
gen sal %1,{ANYCON,1} yields %1 leaving ads 2
pat loc sli ads $1==2 && $2==2 && $3==2
-with REG
+with ADDREG
gen sal %1,{ANYCON,1}
sal %1,{ANYCON,1} yields %1 leaving ads 2
pat loc sli ads $2==2 && $3==2
-with REG
+with ADDREG
uses CXREG={ANYCON,$1}
gen sal %1,cl yields %1 leaving ads 2
gen sub %2,{EXTERN2,%1.off}
mul {EXTERN2,4+%1.off} yields %2 leaving ads 2
-pat lae lar defined(rom($1,3)) leaving lae $1 aar $2 sti rom($1,3)
+pat lae lar defined(rom($1,3)) leaving lae $1 aar $2 loi rom($1,3)
-pat lae sar defined(rom($1,3)) leaving lae $1 aar $2 loi rom($1,3)
+pat lae sar defined(rom($1,3)) leaving lae $1 aar $2 sti rom($1,3)
pat aar !defined($1)
kills ALL
cmp %2, {ANYCON, highw($1)}
jne {label,$3}
-pat cms zne
+pat cms zne $1==4
with regorconst regorconst rm rm STACK
gen cmp %3,%1
jne {label,$2}
cmp %2,%4
jne {label,$2}
-pat cms zeq
+pat cms zeq $1==4
with regorconst regorconst rm rm STACK
gen cmp %3,%1
jne {label, 1f}
pat rck $1==2
with BXREG ACC
+kills ALL
gen joehoe {label, ".rck"} yields ax
pat rck !defined($1)
with rm-BXREG-ACC BXREG ACC
+kills ALL
gen cmp %1,{ANYCON,2}
jne {label, ".unknown"}
joehoe {label, ".rck"} yields ax