diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2004-05-05 07:42:52 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2004-05-05 07:42:52 +0000 |
commit | 7c62e9932f2d31fe01bfcc230a5ee3ad1057471a (patch) | |
tree | ac88fa0fe966e3e707f60b718815fa34858b830c | |
parent | ce7f07bdc1822254a518dd6ec63cdb4c30ab8bb6 (diff) | |
download | gcc-7c62e9932f2d31fe01bfcc230a5ee3ad1057471a.zip gcc-7c62e9932f2d31fe01bfcc230a5ee3ad1057471a.tar.gz gcc-7c62e9932f2d31fe01bfcc230a5ee3ad1057471a.tar.bz2 |
rs6000.c (build_opaque_vector_type): New function.
2004-05-05 Paolo Bonzini <bonzini@gnu.org>
* config/rs6000/rs6000.c (build_opaque_vector_type):
New function.
(rs6000_init_builtins): Use it.
From-SVN: r81509
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 13 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7063898..7dced81 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-05-05 Paolo Bonzini <bonzini@gnu.org> + + * config/rs6000/rs6000.c (build_opaque_vector_type): + New function. + (rs6000_init_builtins): Use it. + 2004-05-04 Bernard Giroud <bgiroud2@free.fr> * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New. @@ -22,9 +28,6 @@ * cp/call.c (standard_conversion): Likewise. * cp/typeck.c (comptypes): Recurse on vector types. (convert_for_assignment): Use vector_types_convertible_p. - * config/rs6000/rs6000.c (build_opaque_vector_type): - New function. - (rs6000_init_builtins): Use it. 2004-05-04 Chris Demetriou <cgd@broadcom.com> diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index b188132..654891c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -381,6 +381,7 @@ static void rs6000_init_libfuncs (void); static void enable_mask_for_builtins (struct builtin_description *, int, enum rs6000_builtins, enum rs6000_builtins); +static tree build_opaque_vector_type (tree, int); static void spe_init_builtins (void); static rtx spe_expand_builtin (tree, rtx, bool *); static rtx spe_expand_predicate_builtin (enum insn_code, tree, rtx); @@ -6659,6 +6660,14 @@ rs6000_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED, return NULL_RTX; } +static tree +build_opaque_vector_type (tree node, int nunits) +{ + node = copy_node (node); + TYPE_MAIN_VARIANT (node) = node; + return build_vector_type (node, nunits); +} + static void rs6000_init_builtins (void) { @@ -6674,8 +6683,8 @@ rs6000_init_builtins (void) unsigned_V8HI_type_node = build_vector_type (unsigned_intHI_type_node, 8); unsigned_V4SI_type_node = build_vector_type (unsigned_intSI_type_node, 4); - opaque_V2SI_type_node = copy_node (V2SI_type_node); - opaque_V2SF_type_node = copy_node (V2SF_type_node); + opaque_V2SF_type_node = build_opaque_vector_type (float_type_node, 2); + opaque_V2SI_type_node = build_opaque_vector_type (intSI_type_node, 2); opaque_p_V2SI_type_node = build_pointer_type (opaque_V2SI_type_node); /* The 'vector bool ...' types must be kept distinct from 'vector unsigned ...' |