diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2003-04-07 20:09:14 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2003-04-07 20:09:14 +0000 |
commit | 2abe3e28f3a30e4c8b26be31f7c1941cc79d4dfa (patch) | |
tree | 489b77bf3926022e08e1dc728283d10bc53d8a75 | |
parent | 9a318d3046dac48e1b3ecc33cfa7ba09193ca3cc (diff) | |
download | gcc-2abe3e28f3a30e4c8b26be31f7c1941cc79d4dfa.zip gcc-2abe3e28f3a30e4c8b26be31f7c1941cc79d4dfa.tar.gz gcc-2abe3e28f3a30e4c8b26be31f7c1941cc79d4dfa.tar.bz2 |
rs6000.c (rs6000_common_init_builtins): Rename all V2SI_type_node to opaque_V2SI_type_node.
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
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 63 |
2 files changed, 50 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c3b10b2..3e6259b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index af179b1..0209240 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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 |