(convert_move): Added handling of PDImode conversions.
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Sep 1994 23:32:44 +0000 (19:32 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Sep 1994 23:32:44 +0000 (19:32 -0400)
From-SVN: r8161

gcc/expr.c

index 220559121e2e6d73f585d453152a67d62dc8447b..743f8095676a5e536d5d50a648cdaee0e36ec51b 100644 (file)
@@ -1025,6 +1025,41 @@ convert_move (to, from, unsignedp)
        }
     }
 
+  if (to_mode == PDImode)
+    {
+      if (from_mode != DImode)
+       from = convert_to_mode (DImode, from, unsignedp);
+
+#ifdef HAVE_truncdipdi2
+      if (HAVE_truncdipdi2)
+       {
+         emit_unop_insn (CODE_FOR_truncdipdi2, to, from, UNKNOWN);
+         return;
+       }
+#endif /* HAVE_truncdipdi2 */
+      abort ();
+    }
+
+  if (from_mode == PDImode)
+    {
+      if (to_mode != DImode)
+       {
+         from = convert_to_mode (DImode, from, unsignedp);
+         from_mode = DImode;
+       }
+      else
+       {
+#ifdef HAVE_extendpdidi2
+         if (HAVE_extendpdidi2)
+           {
+             emit_unop_insn (CODE_FOR_extendpdidi2, to, from, UNKNOWN);
+             return;
+           }
+#endif /* HAVE_extendpdidi2 */
+         abort ();
+       }
+    }
+
   /* Now follow all the conversions between integers
      no more than a word long.  */