aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-10-27 04:04:06 +0000
committerDavid S. Miller <davem@gcc.gnu.org>2011-10-26 21:04:06 -0700
commit78968b7620c8c3ee2490a74ca93a0300d18773a2 (patch)
treec9e687cb2220cf157959d4b6286ff9cf88483364
parent56ec62fa1d3d2a8655e4abc129f6e19a49e89d9a (diff)
downloadgcc-78968b7620c8c3ee2490a74ca93a0300d18773a2.zip
gcc-78968b7620c8c3ee2490a74ca93a0300d18773a2.tar.gz
gcc-78968b7620c8c3ee2490a74ca93a0300d18773a2.tar.bz2
Fix thinko in previous sparc setcc changes.
* config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences if we're comparing DImode and comparison is other than EQ or NE. From-SVN: r180558
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/sparc/sparc.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a51510..124b17c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2011-10-26 David S. Miller <davem@davemloft.net>
+ * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
+ if we're comparing DImode and comparison is other than EQ or NE.
+
* config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
LEU/LTU/GEU/GTU is attempted.
* config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 80e05a6..ea9fdef 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -2541,6 +2541,11 @@ emit_scc_insn (rtx operands[])
}
}
+ if (TARGET_V9
+ && GET_MODE (x) == DImode
+ && gen_v9_scc (operands[0], code, x, y))
+ return true;
+
/* We can do LTU and GEU using the addx/subx instructions too. And
for GTU/LEU, if both operands are registers swap them and fall
back to the easy case. */