aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Dresselhaus <eliot@sonic.net>2006-07-14 17:44:27 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2006-07-14 13:44:27 -0400
commit27714d4372fb987b0680ebf509833b2dea5126fe (patch)
treee7bd2e58c9b50fd655026e21606026b05fe18918
parent8d6bd4a7917e33c6deabe809f98d31410c6848f9 (diff)
downloadgcc-27714d4372fb987b0680ebf509833b2dea5126fe.zip
gcc-27714d4372fb987b0680ebf509833b2dea5126fe.tar.gz
gcc-27714d4372fb987b0680ebf509833b2dea5126fe.tar.bz2
re PR target/27287 (returning constant double)
2006-07-14 Eliot Dresselhaus <eliot@sonic.net> PR target/27287 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative. From-SVN: r115451
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/spe.md10
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4cdb0ac..c2abdff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
+
+ PR target/27287
+ * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
+
2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index 8e636f8..930c48a 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -2211,11 +2211,13 @@
[(set_attr "length" "8")])
(define_insn "*frob_di_df_2"
- [(set (subreg:DF (match_operand:DI 0 "register_operand" "=&r") 0)
- (match_operand:DF 1 "register_operand" "r"))]
+ [(set (subreg:DF (match_operand:DI 0 "register_operand" "=&r,r") 0)
+ (match_operand:DF 1 "input_operand" "r,m"))]
"TARGET_E500_DOUBLE"
- "evmergehi %H0,%1,%1\;evmergelo %L0,%1,%1"
- [(set_attr "length" "8")])
+ "@
+ evmergehi %H0,%1,%1\;evmergelo %L0,%1,%1
+ evldd%X1 %0,%y1"
+ [(set_attr "length" "8,4")])
(define_insn "*mov_sidf_e500_subreg0"
[(set (subreg:SI (match_operand:DF 0 "register_operand" "+r") 0)