From 78968b7620c8c3ee2490a74ca93a0300d18773a2 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 27 Oct 2011 04:04:06 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 3 +++ gcc/config/sparc/sparc.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a51510df93..124b17cdbe8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2011-10-26 David S. Miller + * 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 80e05a61e47..ea9fdeff628 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. */