]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sse.md (movdi_to_sse): Rewrite body.
authorEric Christopher <echristo@apple.com>
Thu, 14 Jun 2007 21:43:45 +0000 (21:43 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Thu, 14 Jun 2007 21:43:45 +0000 (21:43 +0000)
2007-06-14  Eric Christopher  <echristo@apple.com>

        * config/i386/sse.md (movdi_to_sse): Rewrite body.
        (movv4sf): Use gcc_unreachable instead of abort.

From-SVN: r125723

gcc/ChangeLog
gcc/config/i386/sse.md

index 037e51c67c8dc0954e2ceaf7f33d990aa8b6111a..5ac574e7aa27e915ac552d4b794917a12cd0879b 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-14  Eric Christopher  <echristo@apple.com>
+
+       * config/i386/sse.md (movdi_to_sse): Rewrite body.
+       (movv4sf): Use gcc_unreachable instead of abort.
+
 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/32268
index 2a4606fffe0c4dc69547e2364cb596775c73dfa6..c74c0f7fe699046c3bf754fe7be36d4cb1095883 100644 (file)
   "&& reload_completed"
   [(const_int 0)]
 {
-  switch (which_alternative)
-    {
-    case 0:
+ if (register_operand (operands[1], DImode))
+   {
       /* The DImode arrived in a pair of integral registers (e.g. %edx:%eax).
         Assemble the 64-bit DImode value in an xmm register.  */
       emit_insn (gen_sse2_loadld (operands[0], CONST0_RTX (V4SImode),
       emit_insn (gen_sse2_loadld (operands[2], CONST0_RTX (V4SImode),
                                  gen_rtx_SUBREG (SImode, operands[1], 4)));
       emit_insn (gen_sse2_punpckldq (operands[0], operands[0], operands[2]));
-      break;
-
-    case 1:
-      emit_insn (gen_vec_concatv2di (operands[0], operands[1], const0_rtx));
-      break;
-
-    default:
-      gcc_unreachable ();
     }
-  DONE;
+ else if (memory_operand (operands[1], DImode))
+      emit_insn (gen_vec_concatv2di (gen_lowpart (V2DImode, operands[0]), operands[1], const0_rtx));
+ else
+      gcc_unreachable ();
 })
 
 (define_expand "movv4sf"
     case 2:
       return "movaps\t{%1, %0|%0, %1}";
     default:
-      abort();
+      gcc_unreachable ();
     }
 }
   [(set_attr "type" "sselog1,ssemov,ssemov")