aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClinton Popetz <cpopetz@cygnus.com>2000-07-14 15:25:10 +0000
committerClinton Popetz <cpopetz@gcc.gnu.org>2000-07-14 11:25:10 -0400
commit12a345cd3fcc62cfa5da6035e7583814669d85d0 (patch)
tree8e242187150ff258cb39476be1c6aa06d111a906
parentecd365573753d0df0b08a07fe3f014ca76904072 (diff)
downloadgcc-12a345cd3fcc62cfa5da6035e7583814669d85d0.zip
gcc-12a345cd3fcc62cfa5da6035e7583814669d85d0.tar.gz
gcc-12a345cd3fcc62cfa5da6035e7583814669d85d0.tar.bz2
mips.md: (absdi2): Handle sign_extend for second operand.
* config/mips/mips.md: (absdi2): Handle sign_extend for second operand. From-SVN: r35034
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.md8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index acb6d67..2f532f1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
+
+ * config/mips/mips.md: (absdi2): Handle sign_extend for
+ second operand.
+
2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
* cpplib.c (do_pragma_dependency): Tidy warning messages.
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
index f63c790..8a84f33 100644
--- a/gcc/config/mips/mips.md
+++ b/gcc/config/mips/mips.md
@@ -2838,11 +2838,17 @@
"TARGET_64BIT && !TARGET_MIPS16"
"*
{
+ int regno1;
dslots_jump_total++;
dslots_jump_filled++;
operands[2] = const0_rtx;
+
+ if (GET_CODE (operands[1]) == REG)
+ regno1 = REGNO (operands[1]);
+ else
+ regno1 = REGNO (XEXP (operands[1], 0));
- if (REGNO (operands[0]) == REGNO (operands[1]))
+ if (REGNO (operands[0]) == regno1)
return \"%(bltzl\\t%1,1f\\n\\tdsubu\\t%0,%z2,%0\\n%~1:%)\";
else
return \"%(bgez\\t%1,1f\\n\\tmove\\t%0,%1\\n\\tdsubu\\t%0,%z2,%0\\n%~1:%)\";