diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2018-04-12 22:01:37 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2018-04-12 22:01:37 +0200 |
commit | ed086e7e0a9f56c0e6f20236fb3cf2c64c4b4b71 (patch) | |
tree | e284c46be5eff16e3d0e3fc610f1b0879aece4e3 /gcc | |
parent | ff111948988e61cd44da618d0a4231b9bb8aa66c (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 7 |
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)] |