Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com)
+ * m68k.md (beq0_di): Generate correct (and more efficient) code when
+ the clobbered operand overlaps with an input.
+ (bne0_di): Similarly.
+
* Makefile.in (INSTALL): Remove "--no-header" argument.
* NEWS: Various updates.
operands[3] = adj_offsettable_operand (operands[0], 4);
if (! ADDRESS_REG_P (operands[0]))
{
+ if (reg_overlap_mentioned_p (operands[2], operands[0]))
+ {
+ if (reg_overlap_mentioned_p (operands[2], operands[3]))
+ {
+#ifdef MOTOROLA
+ return \"or%.l %0,%2\;jbeq %l1\";
+#else
+ return \"or%.l %0,%2\;jeq %l1\";
+#endif
+ }
+ else
+ {
+#ifdef MOTOROLA
+ return \"or%.l %3,%2\;jbeq %l1\";
+#else
+ return \"or%.l %3,%2\;jeq %l1\";
+#endif
+ }
+ }
#ifdef MOTOROLA
return \"move%.l %0,%2\;or%.l %3,%2\;jbeq %l1\";
#else
operands[3] = adj_offsettable_operand (operands[0], 4);
if (!ADDRESS_REG_P (operands[0]))
{
+ if (reg_overlap_mentioned_p (operands[2], operands[0]))
+ {
+ if (reg_overlap_mentioned_p (operands[2], operands[3]))
+ {
+#ifdef MOTOROLA
+ return \"or%.l %0,%2\;jbne %l1\";
+#else
+ return \"or%.l %0,%2\;jne %l1\";
+#endif
+ }
+ else
+ {
+#ifdef MOTOROLA
+ return \"or%.l %3,%2\;jbne %l1\";
+#else
+ return \"or%.l %3,%2\;jne %l1\";
+#endif
+ }
+ }
#ifdef MOTOROLA
return \"move%.l %0,%2\;or%.l %3,%2\;jbne %l1\";
#else