diff --git a/mach/i80/ncg/table b/mach/i80/ncg/table index e06d21ac9..39a794659 100644 --- a/mach/i80/ncg/table +++ b/mach/i80/ncg/table @@ -356,7 +356,7 @@ with dereg 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 @@ -813,13 +813,11 @@ gen Call {label,".sri4"} /********************************************/ -/* 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"} @@ -827,13 +825,6 @@ pat dvf 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 */ @@ -926,6 +917,8 @@ pat zre 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} @@ -970,7 +963,7 @@ with hl_or_de hl_or_de yields %1 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 @@ -1040,6 +1033,12 @@ with STACK 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 */ /*****************************************/ @@ -1325,6 +1324,8 @@ with STACK 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 @@ -1559,6 +1560,22 @@ with yields {const2,$1} /* 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}