]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.c (rs6000_common_init_builtins): Rename all V2SI_type_node to opaque_V2SI_type...
authorAldy Hernandez <aldyh@redhat.com>
Mon, 7 Apr 2003 20:09:14 +0000 (20:09 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Mon, 7 Apr 2003 20:09:14 +0000 (20:09 +0000)
2003-04-07  Aldy Hernandez  <aldyh@redhat.com>

        * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
        V2SI_type_node to opaque_V2SI_type_node.  Rename all
        V2SF_type_node to opaque_V2SF_type_node.
        (rs6000_init_builtins): Define opaque_V2SI_type_node and
        opaque_V2SF_type_node.
        (is_ev64_opaque_type): The types opaque_V2SI_type_node and
        opaque_V2SF_type_node are opaque types.

From-SVN: r65340

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index c3b10b27a78d3c8680e5a07a19be44a52c9574c6..3e6259be6fcb8d8a9400c77e25d939e758b21cb4 100644 (file)
@@ -1,3 +1,13 @@
+2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
+        V2SI_type_node to opaque_V2SI_type_node.  Rename all
+        V2SF_type_node to opaque_V2SF_type_node.
+        (rs6000_init_builtins): Define opaque_V2SI_type_node and
+        opaque_V2SF_type_node.
+        (is_ev64_opaque_type): The types opaque_V2SI_type_node and
+        opaque_V2SF_type_node are opaque types.
+
 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
 
        * gcse.c (replace_store_insn): Use single_set.
index af179b1a93b89876e61908ef882107d8c3550d44..02092400ce6a72b23c249cbe7fa47240a2e8fdaf 100644 (file)
@@ -147,6 +147,12 @@ const char *rs6000_debug_name;
 int rs6000_debug_stack;                /* debug stack applications */
 int rs6000_debug_arg;          /* debug argument handling */
 
+/* A copy of V2SI_type_node to be used as an opaque type.  */
+static GTY(()) tree opaque_V2SI_type_node;
+
+/* Same, but for V2SF.  */
+static GTY(()) tree opaque_V2SF_type_node;
+
 const char *rs6000_traceback_name;
 static enum {
   traceback_default = 0,
@@ -5431,7 +5437,11 @@ static void
 rs6000_init_builtins ()
 {
   if (TARGET_SPE)
-    spe_init_builtins ();
+    {
+      opaque_V2SI_type_node = copy_node (V2SI_type_node);
+      opaque_V2SF_type_node = copy_node (V2SF_type_node);
+      spe_init_builtins ();
+    }
   if (TARGET_ALTIVEC)
     altivec_init_builtins ();
   if (TARGET_ALTIVEC || TARGET_SPE)
@@ -5910,43 +5920,48 @@ rs6000_common_init_builtins ()
     = build_function_type_list (V4SF_type_node, V4SF_type_node, NULL_TREE);
 
   tree v2si_ftype_v2si_v2si
-    = build_function_type_list (V2SI_type_node,
-                               V2SI_type_node, V2SI_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SI_type_node,
+                               opaque_V2SI_type_node,
+                               opaque_V2SI_type_node, NULL_TREE);
 
   tree v2sf_ftype_v2sf_v2sf
-    = build_function_type_list (V2SF_type_node,
-                               V2SF_type_node, V2SF_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SF_type_node,
+                               opaque_V2SF_type_node,
+                               opaque_V2SF_type_node, NULL_TREE);
 
   tree v2si_ftype_int_int
-    = build_function_type_list (V2SI_type_node,
+    = build_function_type_list (opaque_V2SI_type_node,
                                integer_type_node, integer_type_node,
                                NULL_TREE);
 
   tree v2si_ftype_v2si
-    = build_function_type_list (V2SI_type_node, V2SI_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SI_type_node,
+                               opaque_V2SI_type_node, NULL_TREE);
 
   tree v2sf_ftype_v2sf
-    = build_function_type_list (V2SF_type_node,
-                               V2SF_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SF_type_node,
+                               opaque_V2SF_type_node, NULL_TREE);
   
   tree v2sf_ftype_v2si
-    = build_function_type_list (V2SF_type_node,
-                               V2SI_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SF_type_node,
+                               opaque_V2SI_type_node, NULL_TREE);
 
   tree v2si_ftype_v2sf
-    = build_function_type_list (V2SI_type_node,
-                               V2SF_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SI_type_node,
+                               opaque_V2SF_type_node, NULL_TREE);
 
   tree v2si_ftype_v2si_char
-    = build_function_type_list (V2SI_type_node,
-                               V2SI_type_node, char_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SI_type_node,
+                               opaque_V2SI_type_node,
+                               char_type_node, NULL_TREE);
 
   tree v2si_ftype_int_char
-    = build_function_type_list (V2SI_type_node,
+    = build_function_type_list (opaque_V2SI_type_node,
                                integer_type_node, char_type_node, NULL_TREE);
 
   tree v2si_ftype_char
-    = build_function_type_list (V2SI_type_node, char_type_node, NULL_TREE);
+    = build_function_type_list (opaque_V2SI_type_node,
+                               char_type_node, NULL_TREE);
 
   tree int_ftype_int_int
     = build_function_type_list (integer_type_node,
@@ -13933,12 +13948,14 @@ is_ev64_opaque_type (type)
      tree type;
 {
   return (TARGET_SPE
-         && TREE_CODE (type) == VECTOR_TYPE
-         && TYPE_NAME (type)
-         && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
-         && DECL_NAME (TYPE_NAME (type))
-         && strcmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))),
-                    "__ev64_opaque__") == 0);
+         && (type == opaque_V2SI_type_node
+             || type == opaque_V2SF_type_node
+             || (TREE_CODE (type) == VECTOR_TYPE
+                 && TYPE_NAME (type)
+                 && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
+                 && DECL_NAME (TYPE_NAME (type))
+                 && strcmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))),
+                            "__ev64_opaque__") == 0)));
 }
 
 static rtx