aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2018-04-12 22:01:37 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2018-04-12 22:01:37 +0200
commited086e7e0a9f56c0e6f20236fb3cf2c64c4b4b71 (patch)
treee284c46be5eff16e3d0e3fc610f1b0879aece4e3 /gcc
parentff111948988e61cd44da618d0a4231b9bb8aa66c (diff)
downloadgcc-ed086e7e0a9f56c0e6f20236fb3cf2c64c4b4b71.zip
gcc-ed086e7e0a9f56c0e6f20236fb3cf2c64c4b4b71.tar.gz
gcc-ed086e7e0a9f56c0e6f20236fb3cf2c64c4b4b71.tar.bz2
rs6000: Fix an ICE with -mno-direct-move (PR85291)
PR target/85291 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if asked to not generate direct moves. (fix_trunc<mode>si2_stfiwx): Similar. (fix_trunc<mode>si2_internal): Similar. From-SVN: r259354
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rs6000.md7
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 08c2540..b934cc1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-04-12 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/85291
+ * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
+ asked to not generate direct moves.
+ (fix_trunc<mode>si2_stfiwx): Similar.
+ (fix_trunc<mode>si2_internal): Similar.
+
2018-04-12 Jakub Jelinek <jakub@redhat.com>
PR debug/83157
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index b07e5bd2..931c808 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -5579,7 +5579,7 @@
(fix:SI (match_operand:SFDF 1 "gpc_reg_operand")))]
"TARGET_HARD_FLOAT && <TARGET_FLOAT>"
{
- if (!TARGET_P8_VECTOR)
+ if (!(TARGET_P8_VECTOR && TARGET_DIRECT_MOVE))
{
rtx src = force_reg (<MODE>mode, operands[1]);
@@ -5606,7 +5606,7 @@
"TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT
&& (<MODE>mode != SFmode || TARGET_SINGLE_FLOAT)
&& TARGET_STFIWX && can_create_pseudo_p ()
- && !TARGET_P8_VECTOR"
+ && !(TARGET_P8_VECTOR && TARGET_DIRECT_MOVE)"
"#"
""
[(pc)]
@@ -5647,7 +5647,8 @@
(fix:SI (match_operand:SFDF 1 "gpc_reg_operand" "d,<rreg>")))
(clobber (match_operand:DI 2 "gpc_reg_operand" "=1,d"))
(clobber (match_operand:DI 3 "offsettable_mem_operand" "=o,o"))]
- "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && !TARGET_P8_VECTOR"
+ "TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT
+ && !(TARGET_P8_VECTOR && TARGET_DIRECT_MOVE)"
"#"
""
[(pc)]