Although the coldfire's that I know of are able to use addq/subq to memory operands, gcc refuses to generate those instructions.
Below is a small patch fixing that. With it, my coldfire-compiled linux kernel shrinks by 3k IIRC. Feel free to apply. Best Regards Philippe 2005-08-26 Philippe De Muyter <[EMAIL PROTECTED]> * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory operands. --- config/m68k/m68k.md 2005-08-25 10:59:51.000000000 +0200 +++ config/m68k/m68k.md 2005-08-26 11:24:33.000000000 +0200 @@ -1861,7 +1887,7 @@ (define_insn "*addsi3_5200" [(set (match_operand:SI 0 "nonimmediate_operand" "=m,?a,?a,r") (plus:SI (match_operand:SI 1 "general_operand" "%0,a,rJK,0") - (match_operand:SI 2 "general_src_operand" "d,rJK,a,mrIKLi")))] + (match_operand:SI 2 "general_src_operand" "dIL,rJK,a,mrIKLi")))] "TARGET_COLDFIRE" "* return output_addsi3 (operands);")