aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000.md
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2016-06-28 07:56:41 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2016-06-28 07:56:41 +0200
commita826405801ce4e28d534e3f693f236405d886caf (patch)
treeb92fe8cfd230d1136925b46281769fb3bcbfe626 /gcc/config/rs6000/rs6000.md
parent7c788ce223bef845356773178b64de69e753c1b8 (diff)
downloadgcc-a826405801ce4e28d534e3f693f236405d886caf.zip
gcc-a826405801ce4e28d534e3f693f236405d886caf.tar.gz
gcc-a826405801ce4e28d534e3f693f236405d886caf.tar.bz2
rs6000: Fix split of ashdi3_extswsli_dot for memory (PR71670)
The splitter for ashdi3_extswsli_dot for cr0 with memory uses emit_insn gen_ashdi3_extswsli_dot, which does not work because that emits a scratch, while the splitter runs after reload so there should be a real register instead. We can laboriously fix that up, or emit using gen_ashdi3_extswsli_dot2 instead. This patch does the latter. PR target/71670 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot. gcc/testsuite/ PR target/71670 * gcc.target/powerpc/pr71670.c: New testcase. From-SVN: r237813
Diffstat (limited to 'gcc/config/rs6000/rs6000.md')
-rw-r--r--gcc/config/rs6000/rs6000.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index bb31e41..e8a6205 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4094,7 +4094,7 @@
if (REGNO (cr) == CR0_REGNO)
{
- emit_insn (gen_ashdi3_extswsli_dot (dest, src2, shift, cr));
+ emit_insn (gen_ashdi3_extswsli_dot2 (dest, src2, shift, cr));
DONE;
}