m68k.md (beq0_di): Generate correct (and more efficient) code when...

* m68k.md (beq0_di): Generate correct (and more efficient) code when
        the clobbered operand overlaps with an input.
        (bne0_di): Similarly.

From-SVN: r22082
This commit is contained in:
Jeffrey A Law 1998-08-29 13:54:24 +00:00 committed by Jeff Law
parent b4ea9a9d44
commit 30b237515d
2 changed files with 42 additions and 0 deletions

View File

@ -1,5 +1,9 @@
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.

View File

@ -5958,6 +5958,25 @@
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
@ -6019,6 +6038,25 @@
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