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.
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";
}
"* 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);")