aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-09-05 13:50:48 +0000
committerJeff Law <law@gcc.gnu.org>1998-09-05 07:50:48 -0600
commit37834fc834858b246daa77fbdb3d66f458734037 (patch)
treeda34e79dabf47934320e2dfb5517292ddd846bad /gcc
parent2325494c9ba5cdf3a05fc3faec50037572965d98 (diff)
downloadgcc-37834fc834858b246daa77fbdb3d66f458734037.zip
gcc-37834fc834858b246daa77fbdb3d66f458734037.tar.gz
gcc-37834fc834858b246daa77fbdb3d66f458734037.tar.bz2
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: r22268
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m68k/m68k.c7
-rw-r--r--gcc/config/m68k/m68k.md4
3 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b1fee78..912533d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 07f7a01..cc3e3d7 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -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";
}
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 98672df..dfe0cbc 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<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);")