# $Header$
/movab/ {
s/movab	1(\(.*\)),\1$/incl	\1/
s/movab	-1(\(.*\)),\1$/decl	\1/
s/movab	\([0-9]*\)(\(.*\)),\2$/addl2	$\1,\2/
s/movab	-\([0-9]*\)(\(.*\)),\2$/subl2	$\1,\2/
s/movab	0(\(.*\)) \[\(.*\)\],\1$/addl2	\2,\1/
s/movab	0(\(.*\)) \[\(.*\)\],\2$/addl2	\1,\2/
}
/$0/ {
s/movz[bw]\([wl]\)	$0,/clr\1	/
s/mov\([bwl]\)	$0,/clr\1	/
s/cvt[bw]\([wl]\)	$0,/clr\1	/
}
/add/ {
s/\(add[fdlw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
s/\(add[fdlw]\)3	\(.*\),\(.*\),\2$/\12	\3,\2/
s/add\([wl]\)2	\$-\([0-9]*\),/sub\12	$\2,/
s/add\([wl]\)3	\$-\([0-9]*\),/sub\13	$\2,/
s/add\([wl]\)3	\(.*\),\$-\([0-9]*\),/sub\13	$\3,\2,/
}
/mul/ {
s/\(mul[fdlw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
s/\(mul[fdlw]\)3	\(.*\),\(.*\),\2$/\12	\3,\2/
}
/sub/ {
s/\(sub[fdlw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
s/sub\([wl]\)2	\$-\([0-9]*\),/add\12	$\2,/
s/sub\([wl]\)3	\$-\([0-9]*\),/add\13	$\2,/
}
/div/s/\(div[fdlw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
/bi/s/\(bi[cs][lw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
/bis/s/\(bis[lw]\)3	\(.*\),\(.*\),\2$/\12	\3,\2/
/xor/ {
s/\(xor[lw]\)3	\(.*\),\(.*\),\3$/\12	\2,\3/
s/\(xor[lw]\)3	\(.*\),\(.*\),\2$/\12	\3,\2/
}
/$1/ {
s/add\([wl]\)2	\$1,/inc\1	/
s/sub\([wl]\)2	\$1,/dec\1	/
}
/$-1/ {
s/add\([wl]\)2	\$-1,/dec\1	/
s/sub\([wl]\)2	\$-1,/inc\1	/
}
/cmp[bwl].*$0/ {
N
s/cmp\([bwl]\)	\(.*\),$0$/tst\1	\2/
s/cmp\([bwl]\)	$0,\(.*\)\njneq/tst\1	\2\
jneq/
s/cmp\([bwl]\)	$0,\(.*\)\njeql/tst\1	\2\
jeql/
s/cmp\([bwl]\)	$0,\(.*\)\njgtr/tst\1	\2\
jlss/
s/cmp\([bwl]\)	$0,\(.*\)\njlss/tst\1	\2\
jgtr/
s/cmp\([bwl]\)	$0,\(.*\)\njgeq/tst\1	\2\
jleq/
s/cmp\([bwl]\)	$0,\(.*\)\njleq/tst\1	\2\
jgeq/
P
D
}
/(sp)+/ {
N
s/movl	(sp)+,\(.*\)\npushl	\1$/movl	(sp),\1/
s/tst[wl]	(sp)+\nmovl	fp,sp$/movl	fp,sp/
s/tst\([wl]\)	(sp)+\nmov\1	\(.*\),-(sp)/mov\1	\2,(sp)/
s/tst\([wl]\)	(sp)+\nclr\1	-(sp)/clr\1	(sp)/
s/tst\([wl]\)	(sp)+\nmovzb\1	\(.*\),-(sp)/movzb\1	\2,(sp)/
s/tst\([wl]\)	(sp)+\ncvtb\1	\(.*\),-(sp)/cvtb\1	\2,(sp)/
s/tst\([wl]\)	(sp)+\ntst\1	\(.*\)$/mov\1	\2,(sp)+/
s/tstl	(sp)+\npushl	\(.*\)$/movl	\1,(sp)/
s/tstl	(sp)+\npusha\([bwlq]\)	\(.*\)$/mova\1	\2,(sp)/
P
D
}
/^addl2	.*,sp/ {
N
s/addl2	.*,sp\nmovl	fp,sp$/movl	fp,sp/
s/^addl2	$6,sp\nmovw	\(.*\),-(sp)/tstl	(sp)+\
movw	\1,(sp)/
s/^addl2	$6,sp\nclrw	-(sp)/tstl	(sp)+\
clrw	(sp)/
s/^addl2	$8,sp\nmovq	\(.*\),-(sp)/movq	\1,(sp)/
P
D
}
/clrw	-(sp)/ {
N
s/clrw	-(sp)\nmovw	\($[0-9]*\),-(sp)/pushl	\1/
s/clrw	-(sp)\nmnegw	$\([0-9]*\),-(sp)/movzwl	$-\1,-(sp)/
s/clrw	-(sp)\nmovw	\(.*\),-(sp)/movzwl	\1,-(sp)/
s/clrw	-(sp)\ncvtbw	\(\$[0-9]*\),-(sp)/pushl	\1/
s/clrw	-(sp)\ncvtbw	\(\$.*\),-(sp)/movzwl	\1,-(sp)/
P
D
}
/mov/ {
N
s/mov\([wl]\)	\(.*\),\(.*\)\ntst\1	\3$/mov\1	\2,\3/
P
D
}