aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2003-07-25 23:49:30 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2003-07-25 23:49:30 +0000
commit36252949ae12f54f6b3f46fa3a183489a8bb7df0 (patch)
tree12eba1eb10025b5c39839d59e4d5daed3b48f364 /gcc
parentca3c62ecf1b03a9d7a9eae4d2936e972416cd70e (diff)
downloadgcc-36252949ae12f54f6b3f46fa3a183489a8bb7df0.zip
gcc-36252949ae12f54f6b3f46fa3a183489a8bb7df0.tar.gz
gcc-36252949ae12f54f6b3f46fa3a183489a8bb7df0.tar.bz2
rs6000.c (is_ev64_opaque_type): Only check pointer equality.
2003-07-25 Aldy Hernandez <aldyh@redhat.com> * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer equality. (spe_init_builtins): Declare __ev64_opaque__ as a builtin type. * config/rs6000/spe.h: Remove __ev64_opaque__ definition. From-SVN: r69802
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rs6000.c12
-rw-r--r--gcc/config/rs6000/spe.h1
3 files changed, 13 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 892c3b7..292325f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2003-07-25 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer
+ equality.
+ (spe_init_builtins): Declare __ev64_opaque__ as a builtin type.
+
+ * config/rs6000/spe.h: Remove __ev64_opaque__ definition.
+
2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
* doc/passes.texi (Passes): Mention pretty-printing and
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index c5cd0b0..10a6a53 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6231,6 +6231,10 @@ spe_init_builtins ()
SPE_BUILTIN_EVSEL_CMPGTS,
SPE_BUILTIN_EVSEL_FSTSTEQ);
+ (*lang_hooks.decls.pushdecl)
+ (build_decl (TYPE_DECL, get_identifier ("__ev64_opaque__"),
+ opaque_V2SI_type_node));
+
/* Initialize irregular SPE builtins. */
def_builtin (target_flags, "__builtin_spe_mtspefscr", void_ftype_int, SPE_BUILTIN_MTSPEFSCR);
@@ -14770,13 +14774,7 @@ is_ev64_opaque_type (type)
return (TARGET_SPE
&& (type == opaque_V2SI_type_node
|| type == opaque_V2SF_type_node
- || type == opaque_p_V2SI_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)));
+ || type == opaque_p_V2SI_type_node));
}
static rtx
diff --git a/gcc/config/rs6000/spe.h b/gcc/config/rs6000/spe.h
index ca90b80..1676516 100644
--- a/gcc/config/rs6000/spe.h
+++ b/gcc/config/rs6000/spe.h
@@ -45,7 +45,6 @@ typedef unsigned __vector __ev64_u32__;
typedef long long __vector __ev64_s64__;
typedef unsigned long long __vector __ev64_u64__;
typedef float __vector __ev64_fs__;
-typedef int __vector __ev64_opaque__;
#define __v2si __ev64_opaque__
#define __v2sf __ev64_fs__