uses areg
gen ldax de yields a
with hlreg
- uses reg
+ uses reusing %1, reg
gen mov %a,{m} yields %a
pat loi $1==2
/********************************************/
-/* Group 5: Floating point artihmetic */
+/* Group 5: Floating point arithmetic */
/********************************************/
-pat lof gen Call {label,"eunimpl"}
-pat ldf gen Call {label,"eunimpl"}
-pat stf gen Call {label,"eunimpl"}
-pat sdf gen Call {label,"eunimpl"}
+/* Floating points are not supported */
+
pat adf gen Call {label,"eunimpl"}
pat sbf gen Call {label,"eunimpl"}
pat mlf gen Call {label,"eunimpl"}
pat ngf gen Call {label,"eunimpl"}
pat fif gen Call {label,"eunimpl"}
pat fef gen Call {label,"eunimpl"}
-pat zrf gen Call {label,"eunimpl"}
-pat cfi gen Call {label,"eunimpl"}
-pat cif gen Call {label,"eunimpl"}
-pat cuf gen Call {label,"eunimpl"}
-pat cff gen Call {label,"eunimpl"}
-pat cfu gen Call {label,"eunimpl"}
-pat cmf gen Call {label,"eunimpl"}
/********************************************/
/* Group 6: Pointer arithmetic */
uses hlreg={const2,0}
gen shld {label,$1}
+pat zrf gen Call {label,"eunimpl"}
+
pat zer $1==2 yields {const2,0}
pat zer $1==4 yields {const2,0} {const2,0}
pat loc loc cii $1==1 && $2==2
with reg
-uses areg=%1, hl_or_de
+uses reusing %1, areg=%1, hl_or_de
gen move {const1,0},%b.1
move a,%b.2
ora a
uses areg={const1,0}
gen Call {label,".cii"}
+pat cfi gen Call {label,"eunimpl"}
+pat cif gen Call {label,"eunimpl"}
+pat cuf gen Call {label,"eunimpl"}
+pat cff gen Call {label,"eunimpl"}
+pat cfu gen Call {label,"eunimpl"}
+
/*****************************************/
/* Group 9: Logical instructions */
/*****************************************/
uses areg={const1,1}
gen Call {label,".cmi4"} yields de
+pat cmf gen Call {label,"eunimpl"}
+
pat cmu $1==2
with hl_or_de hl_or_de
uses areg
/* Group 13: Branch instructions */
/*******************************************/
+pat loc beq $1>=0 && $1<=255
+with exact reg
+uses reusing %1, areg=%1
+gen cpi {const1,$1}
+ jz {label,$2}
+with yields {const2,$1}
+ leaving beq $2
+
+pat loc bne $1>=0 && $1<=255
+with exact reg
+uses reusing %1, areg=%1
+gen cpi {const1,$1}
+ jnz {label,$2}
+with yields {const2,$1}
+ leaving bne $2
+
pat bra
with STACK
gen jmp {label,$1}