From: Jeffrey A Law Date: Fri, 23 Oct 1998 21:41:12 +0000 (+0000) Subject: m68k.md (5200 movqi): Do not allow byte sized memory references using address regs. X-Git-Tag: prereleases/egcs-1.1.1-pre~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c668de3089597b368f7aae385515f6646d41f8c;p=thirdparty%2Fgcc.git m68k.md (5200 movqi): Do not allow byte sized memory references using address regs. * m68k.md (5200 movqi): Do not allow byte sized memory references using address regs. * m68k.c (output_move_qimode): Do not use byte sized operations on address registers. From-SVN: r23265 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d810e0a636f..cbd42d8a12cc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Fri Oct 23 22:38:57 1998 Jeffrey A Law (law@cygnus.com) + + * m68k.md (5200 movqi): Do not allow byte sized memory references + using address regs. + * m68k.c (output_move_qimode): Do not use byte sized operations on + address registers. + Mon Oct 19 13:22:13 1998 Geoff Keating * loop.c (scan_loop): Be more selective about what invariants are diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 64bbe4a12984..971276477065 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -1670,10 +1670,9 @@ output_move_qimode (operands) } if (GET_CODE (operands[1]) != CONST_INT && CONSTANT_P (operands[1])) return "move%.l %1,%0"; - /* 68k family doesn't support byte moves to from address registers. The - 5200 (coldfire) does not have this restriction. */ - if ((ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1])) - && ! TARGET_5200) + /* 68k family (including the 5200 coldfire) does not support byte moves to + from address registers. */ + if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1])) return "move%.w %1,%0"; return "move%.b %1,%0"; } diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index 98672df61b37..dfe0cbc313e8 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -1023,8 +1023,8 @@ "* return output_move_qimode (operands);") (define_insn "" - [(set (match_operand:QI 0 "general_operand" "=d*a,d*am") - (match_operand:QI 1 "general_operand" "d*ami,d*a"))] + [(set (match_operand:QI 0 "general_operand" "=d,dm,d*a") + (match_operand:QI 1 "general_operand" "dmi,d,di*a"))] "TARGET_5200" "* return output_move_qimode (operands);")