]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
m68k.md (5200 movqi): Do not allow byte sized memory references using address regs.
authorJeffrey A Law <law@cygnus.com>
Sat, 5 Sep 1998 13:50:48 +0000 (13:50 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 5 Sep 1998 13:50:48 +0000 (07:50 -0600)
        * 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: r22268

gcc/ChangeLog
gcc/config/m68k/m68k.c
gcc/config/m68k/m68k.md

index 1b1fee78e94d1f31791623ee624b1b5febe0a7e3..912533d08fc42bc6082c93c8f18068cde9fe2c0a 100644 (file)
@@ -26,6 +26,11 @@ Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
 
 Sat Sep  5 03:23:05 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.
+
         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
        explicit rules for building.  Similarly for alloca, vfprintf,
        choose-temp and mkstemp, getopt, getopt1, and obstack.
index 07f7a01563dbedc4cef403f0b288279200a278e3..cc3e3d72919cba307621651ce176f5a7d9869cd8 100644 (file)
@@ -1679,10 +1679,9 @@ output_move_qimode (operands)
     return "sub%.l %0,%0";
   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";
 }
index 98672df61b371a6f7e1fcca7d82975ab8e99024d..dfe0cbc313e8929394fa88c7b8690535956d0202 100644 (file)
   "* return output_move_qimode (operands);")
 
 (define_insn ""
-  [(set (match_operand:QI 0 "general_operand" "=d*a<Q>,d*am")
-       (match_operand:QI 1 "general_operand" "d*ami,d*a<Q>"))]
+  [(set (match_operand:QI 0 "general_operand" "=d<Q>,dm,d*a")
+       (match_operand:QI 1 "general_operand" "dmi,d<Q>,di*a"))]
   "TARGET_5200"
   "* return output_move_qimode (operands);")