re PR target/27287 (returning constant double)
authorEliot Dresselhaus <eliot@sonic.net>
Fri, 14 Jul 2006 17:44:27 +0000 (17:44 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Fri, 14 Jul 2006 17:44:27 +0000 (13:44 -0400)
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

gcc/ChangeLog
gcc/config/rs6000/spe.md

index 4cdb0acd12b381284068e05fe3a6012539444cee..c2abdff2238075c1bf1216a564323dbaf660abc3 100644 (file)
@@ -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
index 8e636f8927a0311b1c5ccefcc9b203821abbe9c0..930c48a090c27081fde6c349e9f26d86e1c77b5b 100644 (file)
   [(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)