aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mips/mips.md')
-rw-r--r--gcc/config/mips/mips.md8
1 files changed, 7 insertions, 1 deletions
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:%)\";