From 12a345cd3fcc62cfa5da6035e7583814669d85d0 Mon Sep 17 00:00:00 2001 From: Clinton Popetz Date: Fri, 14 Jul 2000 15:25:10 +0000 Subject: [PATCH] mips.md: (absdi2): Handle sign_extend for second operand. * config/mips/mips.md: (absdi2): Handle sign_extend for second operand. From-SVN: r35034 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.md | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index acb6d6739789..2f532f1b9dea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Jul 14 10:25:53 2000 Clinton Popetz + + * config/mips/mips.md: (absdi2): Handle sign_extend for + second operand. + 2000-07-14 Nathan Sidwell * cpplib.c (do_pragma_dependency): Tidy warning messages. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index f63c790626d0..8a84f338f047 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:%)\";