Added optimised rules for int<<8 and uint>>8 (which can be done with simple register shuffling rather than calling .sli).

This commit is contained in:
dtrg 2007-04-29 23:00:31 +00:00
parent 868b8c5075
commit df088c184b

View file

@ -728,12 +728,17 @@ gen xra a
mov %1.2,a mov %1.2,a
mvi a,{const1,0} mvi a,{const1,0}
sbb %1.1 sbb %1.1
mov %1.1,a yields %1 mov %1.1,a yields %1
pat ngi $1==4 pat ngi $1==4
kills ALL kills ALL
gen Call {label,".ngi4"} gen Call {label,".ngi4"}
pat loc sli ($1 == 8) && ($2 == 2)
with hl_or_de
gen move %1.2, %1.1
mvi %1.2, {const1,0} yields %1
pat sli $1==2 pat sli $1==2
kills ALL kills ALL
gen Call {label,".sli2"} yields de gen Call {label,".sli2"} yields de
@ -790,6 +795,11 @@ gen Call {label,".dvi4"}
pat slu leaving sli $1 pat slu leaving sli $1
pat loc sru ($1 == 8) && ($2 == 2)
with hl_or_de
gen move %1.1, %1.2
mvi %1.1, {const1,0} yields %1
pat sru $1==2 pat sru $1==2
kills ALL kills ALL
uses areg={const1,0} uses areg={const1,0}