joehoe "call" label+rm cost(1,8).
jxx "syntax error" label.
lea anyreg:wo, halfindir:ro cost(1,2).
+lea LOCAL:wo, halfindir:ro cost(1,2). /* only for register variables, UNSAFE!!! */
loop label kills cx cost(1,5).
#ifdef REGVARS
mov LOCAL:wo, memory2:ro cost(1,2). /* only for register variables, UNSAFE!!! */
#ifdef REGVARS
from memory2 to LOCAL /* unsafe !!! */
gen mov %2,%1
+
+from halfindir to LOCAL /* unsafe !!! */
+gen lea %2,%1
#endif
from rm to register
with rmorconst
kills regvar($1)
gen move %1, {LOCAL,$1,2}
+ with halfindir
+ kills regvar($1)
+ gen move %1, {LOCAL,$1,2}
with exact STACK
kills regvar($1)
gen pop {LOCAL, $1, 2}
pat loc loc cii $1==1 && $2==2
with ACC
gen cbw. yields ax
+with exact rmorconst1 ACC
+uses REG
+gen move %2,%a
+ move %1,%2.1
+ cbw. yields %a ax
with exact rmorconst1
uses reusing %1, ACC1=%1
gen cbw. yields ax
gen or %1,%2
jne {label,$3}
+pat ldc cms zeq $2==4 && loww($1)==65535 && highw($1)==(0-1)
+with rmorconst REG STACK
+ gen and %2,%1
+ cmp %2,{ANYCON,0-1}
+ je {label,$3}
+with REG rmorconst STACK
+ gen and %1,%2
+ cmp %1,{ANYCON,0-1}
+ je {label,$3}
+
+pat ldc cms zne $2==4 && loww($1)==65535 && highw($1)==(0-1)
+with rmorconst REG STACK
+ gen and %2,%1
+ cmp %2,{ANYCON,0-1}
+ jne {label,$3}
+with REG rmorconst STACK
+ gen and %1,%2
+ cmp %1,{ANYCON,0-1}
+ jne {label,$3}
+
pat ldc cms zeq $2==4
with rm rm STACK
gen cmp %1, {ANYCON, loww($1)}