i386.c (ix86_init_mmx_sse_builtins): Use build_function_type_list instead of build_function_type.

2002-06-29  Aldy Hernandez  <aldyh@redhat.com>

        * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
        build_function_type_list instead of build_function_type.

        * config/ia64/ia64.c (ia64_init_builtins): Same.

        * config/alpha/alpha.c (alpha_init_builtins): Same.

        * config/rs6000/rs6000.c (altivec_init_builtins): Same.

        * config/arm/arm.c (arm_init_builtins): Same.

        * tree.h: Add build_function_type_list prototype.

        * tree.c (build_function_type_list): New.

From-SVN: r55109
This commit is contained in:
Aldy Hernandez 2002-06-30 01:19:58 +00:00 committed by Aldy Hernandez
parent 1691051fc9
commit b4de2f7db7
8 changed files with 356 additions and 699 deletions

View File

@ -1,3 +1,20 @@
2002-06-29 Aldy Hernandez <aldyh@redhat.com>
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
build_function_type_list instead of build_function_type.
* config/ia64/ia64.c (ia64_init_builtins): Same.
* config/alpha/alpha.c (alpha_init_builtins): Same.
* config/rs6000/rs6000.c (altivec_init_builtins): Same.
* config/arm/arm.c (arm_init_builtins): Same.
* tree.h: Add build_function_type_list prototype.
* tree.c (build_function_type_list): New.
2002-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2002-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* collect2.c (scan_prog_file): Fix typo in message. * collect2.c (scan_prog_file): Fix typo in message.

View File

@ -6498,22 +6498,17 @@ alpha_init_builtins ()
if ((target_flags & p->target_mask) == p->target_mask) if ((target_flags & p->target_mask) == p->target_mask)
builtin_function (p->name, ftype, p->code, BUILT_IN_MD, NULL); builtin_function (p->name, ftype, p->code, BUILT_IN_MD, NULL);
ftype = build_function_type (long_integer_type_node, ftype = build_function_type_list (long_integer_type_node,
tree_cons (NULL_TREE, long_integer_type_node, NULL_TREE);
long_integer_type_node,
void_list_node));
p = one_arg_builtins; p = one_arg_builtins;
for (i = 0; i < ARRAY_SIZE (one_arg_builtins); ++i, ++p) for (i = 0; i < ARRAY_SIZE (one_arg_builtins); ++i, ++p)
if ((target_flags & p->target_mask) == p->target_mask) if ((target_flags & p->target_mask) == p->target_mask)
builtin_function (p->name, ftype, p->code, BUILT_IN_MD, NULL); builtin_function (p->name, ftype, p->code, BUILT_IN_MD, NULL);
ftype = build_function_type (long_integer_type_node, ftype = build_function_type_list (long_integer_type_node,
tree_cons (NULL_TREE, long_integer_type_node,
long_integer_type_node, long_integer_type_node, NULL_TREE);
tree_cons (NULL_TREE,
long_integer_type_node,
void_list_node)));
p = two_arg_builtins; p = two_arg_builtins;
for (i = 0; i < ARRAY_SIZE (two_arg_builtins); ++i, ++p) for (i = 0; i < ARRAY_SIZE (two_arg_builtins); ++i, ++p)
@ -6524,9 +6519,7 @@ alpha_init_builtins ()
builtin_function ("__builtin_thread_pointer", ftype, builtin_function ("__builtin_thread_pointer", ftype,
ALPHA_BUILTIN_THREAD_POINTER, BUILT_IN_MD, NULL); ALPHA_BUILTIN_THREAD_POINTER, BUILT_IN_MD, NULL);
ftype = build_function_type (void_type_node, tree_cons (NULL_TREE, ftype = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
ptr_type_node,
void_list_node));
builtin_function ("__builtin_set_thread_pointer", ftype, builtin_function ("__builtin_set_thread_pointer", ftype,
ALPHA_BUILTIN_SET_THREAD_POINTER, BUILT_IN_MD, NULL); ALPHA_BUILTIN_SET_THREAD_POINTER, BUILT_IN_MD, NULL);
} }

View File

@ -9314,10 +9314,9 @@ arm_init_builtins ()
tree int_ftype_int, void_ftype_pchar; tree int_ftype_int, void_ftype_pchar;
/* void func (void *) */ /* void func (char *) */
void_ftype_pchar void_ftype_pchar
= build_function_type (void_type_node, = build_function_type_list (void_type_node, pchar_type_node, NULL_TREE);
tree_cons (NULL_TREE, pchar_type_node, endlink));
/* int func (int) */ /* int func (int) */
int_ftype_int int_ftype_int

View File

@ -11823,7 +11823,6 @@ ix86_init_mmx_sse_builtins ()
{ {
const struct builtin_description * d; const struct builtin_description * d;
size_t i; size_t i;
tree endlink = void_list_node;
tree pchar_type_node = build_pointer_type (char_type_node); tree pchar_type_node = build_pointer_type (char_type_node);
tree pfloat_type_node = build_pointer_type (float_type_node); tree pfloat_type_node = build_pointer_type (float_type_node);
@ -11833,405 +11832,252 @@ ix86_init_mmx_sse_builtins ()
/* Comparisons. */ /* Comparisons. */
tree int_ftype_v4sf_v4sf tree int_ftype_v4sf_v4sf
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SF_type_node,
endlink)));
tree v4si_ftype_v4sf_v4sf tree v4si_ftype_v4sf_v4sf
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SF_type_node,
endlink)));
/* MMX/SSE/integer conversions. */ /* MMX/SSE/integer conversions. */
tree int_ftype_v4sf tree int_ftype_v4sf
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, NULL_TREE);
endlink));
tree int_ftype_v8qi tree int_ftype_v8qi
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node, V8QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8QI_type_node,
endlink));
tree v4sf_ftype_v4sf_int tree v4sf_ftype_v4sf_int
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v4sf_ftype_v4sf_v2si tree v4sf_ftype_v4sf_v2si
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node,
endlink)));
tree int_ftype_v4hi_int tree int_ftype_v4hi_int
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v4hi_ftype_v4hi_int_int tree v4hi_ftype_v4hi_int_int
= build_function_type (V4HI_type_node, = build_function_type_list (V4HI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, integer_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE,
integer_type_node,
endlink))));
/* Miscellaneous. */ /* Miscellaneous. */
tree v8qi_ftype_v4hi_v4hi tree v8qi_ftype_v4hi_v4hi
= build_function_type (V8QI_type_node, = build_function_type_list (V8QI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, V4HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4HI_type_node,
endlink)));
tree v4hi_ftype_v2si_v2si tree v4hi_ftype_v2si_v2si
= build_function_type (V4HI_type_node, = build_function_type_list (V4HI_type_node,
tree_cons (NULL_TREE, V2SI_type_node, V2SI_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node,
endlink)));
tree v4sf_ftype_v4sf_v4sf_int tree v4sf_ftype_v4sf_v4sf_int
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE,
integer_type_node,
endlink))));
tree v2si_ftype_v4hi_v4hi tree v2si_ftype_v4hi_v4hi
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, V4HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4HI_type_node,
endlink)));
tree v4hi_ftype_v4hi_int tree v4hi_ftype_v4hi_int
= build_function_type (V4HI_type_node, = build_function_type_list (V4HI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, V4HI_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, NULL_TREE);
endlink)));
tree v4hi_ftype_v4hi_di tree v4hi_ftype_v4hi_di
= build_function_type (V4HI_type_node, = build_function_type_list (V4HI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, long_long_unsigned_type_node,
tree_cons (NULL_TREE, NULL_TREE);
long_long_integer_type_node,
endlink)));
tree v2si_ftype_v2si_di tree v2si_ftype_v2si_di
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node,
tree_cons (NULL_TREE, V2SI_type_node, V2SI_type_node, long_long_unsigned_type_node,
tree_cons (NULL_TREE, NULL_TREE);
long_long_integer_type_node,
endlink)));
tree void_ftype_void tree void_ftype_void
= build_function_type (void_type_node, endlink); = build_function_type (void_type_node, void_list_node);
tree void_ftype_unsigned tree void_ftype_unsigned
= build_function_type (void_type_node, = build_function_type_list (void_type_node, unsigned_type_node, NULL_TREE);
tree_cons (NULL_TREE, unsigned_type_node,
endlink));
tree unsigned_ftype_void tree unsigned_ftype_void
= build_function_type (unsigned_type_node, endlink); = build_function_type (unsigned_type_node, void_list_node);
tree di_ftype_void tree di_ftype_void
= build_function_type (long_long_unsigned_type_node, endlink); = build_function_type (long_long_unsigned_type_node, void_list_node);
tree v4sf_ftype_void tree v4sf_ftype_void
= build_function_type (V4SF_type_node, endlink); = build_function_type (V4SF_type_node, void_list_node);
tree v2si_ftype_v4sf tree v2si_ftype_v4sf
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink));
/* Loads/stores. */ /* Loads/stores. */
tree maskmovq_args = tree_cons (NULL_TREE, V8QI_type_node,
tree_cons (NULL_TREE, V8QI_type_node,
tree_cons (NULL_TREE,
pchar_type_node,
endlink)));
tree void_ftype_v8qi_v8qi_pchar tree void_ftype_v8qi_v8qi_pchar
= build_function_type (void_type_node, maskmovq_args); = build_function_type_list (void_type_node,
V8QI_type_node, V8QI_type_node,
pchar_type_node, NULL_TREE);
tree v4sf_ftype_pfloat tree v4sf_ftype_pfloat
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, pfloat_type_node, NULL_TREE);
tree_cons (NULL_TREE, pfloat_type_node,
endlink));
/* @@@ the type is bogus */ /* @@@ the type is bogus */
tree v4sf_ftype_v4sf_pv2si tree v4sf_ftype_v4sf_pv2si
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, pv2di_type_node, NULL_TREE);
tree_cons (NULL_TREE, pv2si_type_node,
endlink)));
tree void_ftype_pv2si_v4sf tree void_ftype_pv2si_v4sf
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pv2si_type_node, pv2di_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree void_ftype_pfloat_v4sf tree void_ftype_pfloat_v4sf
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pfloat_type_node, pfloat_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree void_ftype_pdi_di tree void_ftype_pdi_di
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pdi_type_node, pdi_type_node, long_long_unsigned_type_node,
tree_cons (NULL_TREE, NULL_TREE);
long_long_unsigned_type_node,
endlink)));
tree void_ftype_pv2di_v2di tree void_ftype_pv2di_v2di
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pv2di_type_node, pv2di_type_node, V2DI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V2DI_type_node,
endlink)));
/* Normal vector unops. */ /* Normal vector unops. */
tree v4sf_ftype_v4sf tree v4sf_ftype_v4sf
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink));
/* Normal vector binops. */ /* Normal vector binops. */
tree v4sf_ftype_v4sf_v4sf tree v4sf_ftype_v4sf_v4sf
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree v8qi_ftype_v8qi_v8qi tree v8qi_ftype_v8qi_v8qi
= build_function_type (V8QI_type_node, = build_function_type_list (V8QI_type_node,
tree_cons (NULL_TREE, V8QI_type_node, V8QI_type_node, V8QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8QI_type_node,
endlink)));
tree v4hi_ftype_v4hi_v4hi tree v4hi_ftype_v4hi_v4hi
= build_function_type (V4HI_type_node, = build_function_type_list (V4HI_type_node,
tree_cons (NULL_TREE, V4HI_type_node, V4HI_type_node, V4HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4HI_type_node,
endlink)));
tree v2si_ftype_v2si_v2si tree v2si_ftype_v2si_v2si
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node,
tree_cons (NULL_TREE, V2SI_type_node, V2SI_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node,
endlink)));
tree di_ftype_di_di tree di_ftype_di_di
= build_function_type (long_long_unsigned_type_node, = build_function_type_list (long_long_unsigned_type_node,
tree_cons (NULL_TREE, long_long_unsigned_type_node, long_long_unsigned_type_node,
tree_cons (NULL_TREE, long_long_unsigned_type_node, NULL_TREE);
long_long_unsigned_type_node,
endlink)));
tree v2si_ftype_v2sf tree v2si_ftype_v2sf
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node, V2SFmode, NULL_TREE);
tree_cons (NULL_TREE, V2SF_type_node,
endlink));
tree v2sf_ftype_v2si tree v2sf_ftype_v2si
= build_function_type (V2SF_type_node, = build_function_type_list (V2SF_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node,
endlink));
tree v2si_ftype_v2si tree v2si_ftype_v2si
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node,
endlink));
tree v2sf_ftype_v2sf tree v2sf_ftype_v2sf
= build_function_type (V2SF_type_node, = build_function_type_list (V2SF_type_node, V2SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SF_type_node,
endlink));
tree v2sf_ftype_v2sf_v2sf tree v2sf_ftype_v2sf_v2sf
= build_function_type (V2SF_type_node, = build_function_type_list (V2SF_type_node,
tree_cons (NULL_TREE, V2SF_type_node, V2SF_type_node, V2SF_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V2SF_type_node,
endlink)));
tree v2si_ftype_v2sf_v2sf tree v2si_ftype_v2sf_v2sf
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node,
tree_cons (NULL_TREE, V2SF_type_node, V2SF_type_node, V2SF_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V2SF_type_node,
endlink)));
tree pint_type_node = build_pointer_type (integer_type_node); tree pint_type_node = build_pointer_type (integer_type_node);
tree pdouble_type_node = build_pointer_type (double_type_node); tree pdouble_type_node = build_pointer_type (double_type_node);
tree int_ftype_v2df_v2df tree int_ftype_v2df_v2df
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node, endlink)));
tree ti_ftype_void tree ti_ftype_void
= build_function_type (intTI_type_node, endlink); = build_function_type (intTI_type_node, void_list_node);
tree ti_ftype_ti_ti tree ti_ftype_ti_ti
= build_function_type (intTI_type_node, = build_function_type_list (intTI_type_node,
tree_cons (NULL_TREE, intTI_type_node, intTI_type_node, intTI_type_node, NULL_TREE);
tree_cons (NULL_TREE, intTI_type_node,
endlink)));
tree void_ftype_pvoid tree void_ftype_pvoid
= build_function_type (void_type_node, = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
tree_cons (NULL_TREE, ptr_type_node, endlink));
tree v2di_ftype_di tree v2di_ftype_di
= build_function_type (V2DI_type_node, = build_function_type_list (V2DI_type_node,
tree_cons (NULL_TREE, long_long_unsigned_type_node, long_long_unsigned_type_node, NULL_TREE);
endlink));
tree v4sf_ftype_v4si tree v4sf_ftype_v4si
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node, endlink));
tree v4si_ftype_v4sf tree v4si_ftype_v4sf
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node, endlink));
tree v2df_ftype_v4si tree v2df_ftype_v4si
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node, endlink));
tree v4si_ftype_v2df tree v4si_ftype_v2df
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node, endlink));
tree v2si_ftype_v2df tree v2si_ftype_v2df
= build_function_type (V2SI_type_node, = build_function_type_list (V2SI_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node, endlink));
tree v4sf_ftype_v2df tree v4sf_ftype_v2df
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node, endlink));
tree v2df_ftype_v2si tree v2df_ftype_v2si
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, V2SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2SI_type_node, endlink));
tree v2df_ftype_v4sf tree v2df_ftype_v4sf
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node, endlink));
tree int_ftype_v2df tree int_ftype_v2df
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node, endlink));
tree v2df_ftype_v2df_int tree v2df_ftype_v2df_int
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v4sf_ftype_v4sf_v2df tree v4sf_ftype_v4sf_v2df
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink)));
tree v2df_ftype_v2df_v4sf tree v2df_ftype_v2df_v4sf
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree v2df_ftype_v2df_v2df_int tree v2df_ftype_v2df_v2df_int
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, integer_type_node,
tree_cons (NULL_TREE, NULL_TREE);
integer_type_node,
endlink))));
tree v2df_ftype_v2df_pv2si tree v2df_ftype_v2df_pv2si
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, pv2si_type_node, NULL_TREE);
tree_cons (NULL_TREE, pv2si_type_node,
endlink)));
tree void_ftype_pv2si_v2df tree void_ftype_pv2si_v2df
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pv2si_type_node, pv2si_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink)));
tree void_ftype_pdouble_v2df tree void_ftype_pdouble_v2df
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pdouble_type_node, pdouble_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink)));
tree void_ftype_pint_int tree void_ftype_pint_int
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pint_type_node, pint_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree maskmovdqu_args = tree_cons (NULL_TREE, V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node,
tree_cons (NULL_TREE,
pchar_type_node,
endlink)));
tree void_ftype_v16qi_v16qi_pchar tree void_ftype_v16qi_v16qi_pchar
= build_function_type (void_type_node, maskmovdqu_args); = build_function_type_list (void_type_node,
V16QI_type_node, V16QI_type_node,
pchar_type_node, NULL_TREE);
tree v2df_ftype_pdouble tree v2df_ftype_pdouble
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, pdouble_type_node, NULL_TREE);
tree_cons (NULL_TREE, pdouble_type_node,
endlink));
tree v2df_ftype_v2df_v2df tree v2df_ftype_v2df_v2df
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink)));
tree v16qi_ftype_v16qi_v16qi tree v16qi_ftype_v16qi_v16qi
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree v8hi_ftype_v8hi_v8hi tree v8hi_ftype_v8hi_v8hi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
tree v4si_ftype_v4si_v4si tree v4si_ftype_v4si_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
tree v2di_ftype_v2di_v2di tree v2di_ftype_v2di_v2di
= build_function_type (V2DI_type_node, = build_function_type_list (V2DI_type_node,
tree_cons (NULL_TREE, V2DI_type_node, V2DI_type_node, V2DI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DI_type_node,
endlink)));
tree v2di_ftype_v2df_v2df tree v2di_ftype_v2df_v2df
= build_function_type (V2DI_type_node, = build_function_type_list (V2DI_type_node,
tree_cons (NULL_TREE, V2DF_type_node, V2DF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink)));
tree v2df_ftype_v2df tree v2df_ftype_v2df
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, V2DF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DF_type_node,
endlink));
tree v2df_ftype_double tree v2df_ftype_double
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node, double_type_node, NULL_TREE);
tree_cons (NULL_TREE, double_type_node,
endlink));
tree v2df_ftype_double_double tree v2df_ftype_double_double
= build_function_type (V2DF_type_node, = build_function_type_list (V2DF_type_node,
tree_cons (NULL_TREE, double_type_node, double_type_node, double_type_node, NULL_TREE);
tree_cons (NULL_TREE, double_type_node,
endlink)));
tree int_ftype_v8hi_int tree int_ftype_v8hi_int
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v8hi_ftype_v8hi_int_int tree v8hi_ftype_v8hi_int_int
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE,
integer_type_node,
endlink))));
tree v2di_ftype_v2di_int tree v2di_ftype_v2di_int
= build_function_type (V2DI_type_node, = build_function_type_list (V2DI_type_node,
tree_cons (NULL_TREE, V2DI_type_node, V2DI_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v4si_ftype_v4si_int tree v4si_ftype_v4si_int
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v8hi_ftype_v8hi_int tree v8hi_ftype_v8hi_int
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node,
endlink)));
tree v8hi_ftype_v8hi_v2di tree v8hi_ftype_v8hi_v2di
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V2DI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DI_type_node,
endlink)));
tree v4si_ftype_v4si_v2di tree v4si_ftype_v4si_v2di
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V2DI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V2DI_type_node,
endlink)));
tree v4si_ftype_v8hi_v8hi tree v4si_ftype_v8hi_v8hi
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
tree di_ftype_v8qi_v8qi tree di_ftype_v8qi_v8qi
= build_function_type (long_long_unsigned_type_node, = build_function_type_list (long_long_unsigned_type_node,
tree_cons (NULL_TREE, V8QI_type_node, V8QI_type_node, V8QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8QI_type_node,
endlink)));
tree v2di_ftype_v16qi_v16qi tree v2di_ftype_v16qi_v16qi
= build_function_type (V2DI_type_node, = build_function_type_list (V2DI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree int_ftype_v16qi tree int_ftype_v16qi
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node, endlink));
/* Add all builtins that are more or less simple operations on two /* Add all builtins that are more or less simple operations on two
operands. */ operands. */

View File

@ -7506,52 +7506,40 @@ ia64_init_builtins ()
{ {
tree psi_type_node = build_pointer_type (integer_type_node); tree psi_type_node = build_pointer_type (integer_type_node);
tree pdi_type_node = build_pointer_type (long_integer_type_node); tree pdi_type_node = build_pointer_type (long_integer_type_node);
tree endlink = void_list_node;
/* __sync_val_compare_and_swap_si, __sync_bool_compare_and_swap_si */ /* __sync_val_compare_and_swap_si, __sync_bool_compare_and_swap_si */
tree si_ftype_psi_si_si tree si_ftype_psi_si_si
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, psi_type_node, psi_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE,
integer_type_node,
endlink))));
/* __sync_val_compare_and_swap_di, __sync_bool_compare_and_swap_di */ /* __sync_val_compare_and_swap_di, __sync_bool_compare_and_swap_di */
tree di_ftype_pdi_di_di tree di_ftype_pdi_di_di
= build_function_type (long_integer_type_node, = build_function_type_list (long_integer_type_node,
tree_cons (NULL_TREE, pdi_type_node, pdi_type_node, long_integer_type_node,
tree_cons (NULL_TREE, long_integer_type_node, NULL_TREE);
long_integer_type_node,
tree_cons (NULL_TREE,
long_integer_type_node,
endlink))));
/* __sync_synchronize */ /* __sync_synchronize */
tree void_ftype_void tree void_ftype_void
= build_function_type (void_type_node, endlink); = build_function_type (void_type_node, void_list_node);
/* __sync_lock_test_and_set_si */ /* __sync_lock_test_and_set_si */
tree si_ftype_psi_si tree si_ftype_psi_si
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, psi_type_node, psi_type_node, integer_type_node, NULL_TREE);
tree_cons (NULL_TREE, integer_type_node, endlink)));
/* __sync_lock_test_and_set_di */ /* __sync_lock_test_and_set_di */
tree di_ftype_pdi_di tree di_ftype_pdi_di
= build_function_type (long_integer_type_node, = build_function_type_list (long_integer_type_node,
tree_cons (NULL_TREE, pdi_type_node, pdi_type_node, long_integer_type_node,
tree_cons (NULL_TREE, long_integer_type_node, NULL_TREE);
endlink)));
/* __sync_lock_release_si */ /* __sync_lock_release_si */
tree void_ftype_psi tree void_ftype_psi
= build_function_type (void_type_node, tree_cons (NULL_TREE, psi_type_node, = build_function_type_list (void_type_node, psi_type_node, NULL_TREE);
endlink));
/* __sync_lock_release_di */ /* __sync_lock_release_di */
tree void_ftype_pdi tree void_ftype_pdi
= build_function_type (void_type_node, tree_cons (NULL_TREE, pdi_type_node, = build_function_type_list (void_type_node, pdi_type_node, NULL_TREE);
endlink));
#define def_builtin(name, type, code) \ #define def_builtin(name, type, code) \
builtin_function ((name), (type), (code), BUILT_IN_MD, NULL) builtin_function ((name), (type), (code), BUILT_IN_MD, NULL)
@ -7578,11 +7566,11 @@ ia64_init_builtins ()
IA64_BUILTIN_LOCK_RELEASE_DI); IA64_BUILTIN_LOCK_RELEASE_DI);
def_builtin ("__builtin_ia64_bsp", def_builtin ("__builtin_ia64_bsp",
build_function_type (ptr_type_node, endlink), build_function_type (ptr_type_node, void_list_node),
IA64_BUILTIN_BSP); IA64_BUILTIN_BSP);
def_builtin ("__builtin_ia64_flushrs", def_builtin ("__builtin_ia64_flushrs",
build_function_type (void_type_node, endlink), build_function_type (void_type_node, void_list_node),
IA64_BUILTIN_FLUSHRS); IA64_BUILTIN_FLUSHRS);
def_builtin ("__sync_fetch_and_add_si", si_ftype_psi_si, def_builtin ("__sync_fetch_and_add_si", si_ftype_psi_si,

View File

@ -4281,8 +4281,6 @@ altivec_init_builtins (void)
struct builtin_description_predicates *dp; struct builtin_description_predicates *dp;
size_t i; size_t i;
tree endlink = void_list_node;
tree pint_type_node = build_pointer_type (integer_type_node); tree pint_type_node = build_pointer_type (integer_type_node);
tree pvoid_type_node = build_pointer_type (void_type_node); tree pvoid_type_node = build_pointer_type (void_type_node);
tree pshort_type_node = build_pointer_type (short_integer_type_node); tree pshort_type_node = build_pointer_type (short_integer_type_node);
@ -4290,423 +4288,213 @@ altivec_init_builtins (void)
tree pfloat_type_node = build_pointer_type (float_type_node); tree pfloat_type_node = build_pointer_type (float_type_node);
tree v4sf_ftype_v4sf_v4sf_v16qi tree v4sf_ftype_v4sf_v4sf_v16qi
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V16QI_type_node,
endlink))));
tree v4si_ftype_v4si_v4si_v16qi tree v4si_ftype_v4si_v4si_v16qi
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V16QI_type_node,
endlink))));
tree v8hi_ftype_v8hi_v8hi_v16qi tree v8hi_ftype_v8hi_v8hi_v16qi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V16QI_type_node,
endlink))));
tree v16qi_ftype_v16qi_v16qi_v16qi tree v16qi_ftype_v16qi_v16qi_v16qi
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V16QI_type_node,
endlink))));
/* V4SI foo (char). */
tree v4si_ftype_char tree v4si_ftype_char
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node, endlink));
/* V8HI foo (char). */
tree v8hi_ftype_char tree v8hi_ftype_char
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node, endlink));
/* V16QI foo (char). */
tree v16qi_ftype_char tree v16qi_ftype_char
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node, endlink));
/* V4SF foo (V4SF). */
tree v4sf_ftype_v4sf tree v4sf_ftype_v4sf
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node, endlink));
/* V4SI foo (int *). */
tree v4si_ftype_pint tree v4si_ftype_pint
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, pint_type_node, NULL_TREE);
tree_cons (NULL_TREE, pint_type_node, endlink));
/* V8HI foo (short *). */
tree v8hi_ftype_pshort tree v8hi_ftype_pshort
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node, pshort_type_node, NULL_TREE);
tree_cons (NULL_TREE, pshort_type_node, endlink));
/* V16QI foo (char *). */
tree v16qi_ftype_pchar tree v16qi_ftype_pchar
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node, pchar_type_node, NULL_TREE);
tree_cons (NULL_TREE, pchar_type_node, endlink));
/* V4SF foo (float *). */
tree v4sf_ftype_pfloat tree v4sf_ftype_pfloat
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node, pfloat_type_node, NULL_TREE);
tree_cons (NULL_TREE, pfloat_type_node, endlink));
/* V8HI foo (V16QI). */
tree v8hi_ftype_v16qi tree v8hi_ftype_v16qi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node, endlink));
/* void foo (void *, int, char/literal). */
tree void_ftype_pvoid_int_char tree void_ftype_pvoid_int_char
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pvoid_type_node, pvoid_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE,
char_type_node,
endlink))));
/* void foo (int *, V4SI). */
tree void_ftype_pint_v4si tree void_ftype_pint_v4si
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pint_type_node, pint_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
/* void foo (short *, V8HI). */
tree void_ftype_pshort_v8hi tree void_ftype_pshort_v8hi
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pshort_type_node, pshort_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
/* void foo (char *, V16QI). */
tree void_ftype_pchar_v16qi tree void_ftype_pchar_v16qi
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pchar_type_node, pchar_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
/* void foo (float *, V4SF). */
tree void_ftype_pfloat_v4sf tree void_ftype_pfloat_v4sf
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, pfloat_type_node, pfloat_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
/* void foo (V4SI). */
tree void_ftype_v4si tree void_ftype_v4si
= build_function_type (void_type_node, = build_function_type_list (void_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink));
/* void foo (vint, int, void *). */
tree void_ftype_v4si_int_pvoid tree void_ftype_v4si_int_pvoid
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE,
pvoid_type_node,
endlink))));
/* void foo (vchar, int, void *). */
tree void_ftype_v16qi_int_pvoid tree void_ftype_v16qi_int_pvoid
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE,
pvoid_type_node,
endlink))));
/* void foo (vshort, int, void *). */
tree void_ftype_v8hi_int_pvoid tree void_ftype_v8hi_int_pvoid
= build_function_type (void_type_node, = build_function_type_list (void_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, integer_type_node,
tree_cons (NULL_TREE, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE,
pvoid_type_node,
endlink))));
/* void foo (char). */
tree void_ftype_qi tree void_ftype_qi
= build_function_type (void_type_node, = build_function_type_list (void_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink));
/* void foo (void). */
tree void_ftype_void tree void_ftype_void
= build_function_type (void_type_node, void_list_node); = build_function_type (void_type_node, void_list_node);
/* vshort foo (void). */
tree v8hi_ftype_void tree v8hi_ftype_void
= build_function_type (V8HI_type_node, void_list_node); = build_function_type (V8HI_type_node, void_list_node);
tree v4si_ftype_v4si_v4si tree v4si_ftype_v4si_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
/* These are for the unsigned 5 bit literals. */
tree v4sf_ftype_v4si_char tree v4sf_ftype_v4si_char
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink)));
tree v4si_ftype_v4sf_char tree v4si_ftype_v4sf_char
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink)));
tree v4si_ftype_v4si_char tree v4si_ftype_v4si_char
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink)));
tree v8hi_ftype_v8hi_char tree v8hi_ftype_v8hi_char
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink)));
tree v16qi_ftype_v16qi_char tree v16qi_ftype_v16qi_char
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE, char_type_node,
endlink)));
/* These are for the unsigned 4 bit literals. */
tree v16qi_ftype_v16qi_v16qi_char tree v16qi_ftype_v16qi_v16qi_char
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE,
char_type_node,
endlink))));
tree v8hi_ftype_v8hi_v8hi_char tree v8hi_ftype_v8hi_v8hi_char
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE,
char_type_node,
endlink))));
tree v4si_ftype_v4si_v4si_char tree v4si_ftype_v4si_v4si_char
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE,
char_type_node,
endlink))));
tree v4sf_ftype_v4sf_v4sf_char tree v4sf_ftype_v4sf_v4sf_char
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, char_type_node, NULL_TREE);
tree_cons (NULL_TREE,
char_type_node,
endlink))));
/* End of 4 bit literals. */
tree v4sf_ftype_v4sf_v4sf tree v4sf_ftype_v4sf_v4sf
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree v4sf_ftype_v4sf_v4sf_v4si tree v4sf_ftype_v4sf_v4sf_v4si
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SI_type_node,
endlink))));
tree v4sf_ftype_v4sf_v4sf_v4sf tree v4sf_ftype_v4sf_v4sf_v4sf
= build_function_type (V4SF_type_node, = build_function_type_list (V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SF_type_node,
endlink))));
tree v4si_ftype_v4si_v4si_v4si tree v4si_ftype_v4si_v4si_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SI_type_node,
endlink))));
tree v8hi_ftype_v8hi_v8hi tree v8hi_ftype_v8hi_v8hi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
tree v8hi_ftype_v8hi_v8hi_v8hi tree v8hi_ftype_v8hi_v8hi_v8hi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V8HI_type_node,
endlink))));
tree v4si_ftype_v8hi_v8hi_v4si tree v4si_ftype_v8hi_v8hi_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SI_type_node,
endlink))));
tree v4si_ftype_v16qi_v16qi_v4si tree v4si_ftype_v16qi_v16qi_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE,
V4SI_type_node,
endlink))));
tree v16qi_ftype_v16qi_v16qi tree v16qi_ftype_v16qi_v16qi
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree v4si_ftype_v4sf_v4sf tree v4si_ftype_v4sf_v4sf
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree v4si_ftype_v4si tree v4si_ftype_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node, endlink));
tree v8hi_ftype_v8hi tree v8hi_ftype_v8hi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node, endlink));
tree v16qi_ftype_v16qi tree v16qi_ftype_v16qi
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node, endlink));
tree v8hi_ftype_v16qi_v16qi tree v8hi_ftype_v16qi_v16qi
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree v4si_ftype_v8hi_v8hi tree v4si_ftype_v8hi_v8hi
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
tree v8hi_ftype_v4si_v4si tree v8hi_ftype_v4si_v4si
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
tree v16qi_ftype_v8hi_v8hi tree v16qi_ftype_v8hi_v8hi
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
tree v4si_ftype_v16qi_v4si tree v4si_ftype_v16qi_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
tree v4si_ftype_v16qi_v16qi tree v4si_ftype_v16qi_v16qi
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree v4si_ftype_v8hi_v4si tree v4si_ftype_v8hi_v4si
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
tree v4si_ftype_v8hi tree v4si_ftype_v8hi
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node, endlink));
tree int_ftype_v4si_v4si tree int_ftype_v4si_v4si
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V4SI_type_node, V4SI_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
endlink)));
tree int_ftype_v4sf_v4sf tree int_ftype_v4sf_v4sf
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V4SF_type_node, V4SF_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
endlink)));
tree int_ftype_v16qi_v16qi tree int_ftype_v16qi_v16qi
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V16QI_type_node, V16QI_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
endlink)));
tree int_ftype_int_v4si_v4si tree int_ftype_int_v4si_v4si
= build_function_type = build_function_type_list (integer_type_node,
(integer_type_node, integer_type_node, V4SI_type_node,
tree_cons (NULL_TREE, integer_type_node, V4SI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SI_type_node,
tree_cons (NULL_TREE, V4SI_type_node,
endlink))));
tree int_ftype_int_v4sf_v4sf tree int_ftype_int_v4sf_v4sf
= build_function_type = build_function_type_list (integer_type_node,
(integer_type_node, integer_type_node, V4SF_type_node,
tree_cons (NULL_TREE, integer_type_node, V4SF_type_node, NULL_TREE);
tree_cons (NULL_TREE, V4SF_type_node,
tree_cons (NULL_TREE, V4SF_type_node,
endlink))));
tree int_ftype_int_v8hi_v8hi tree int_ftype_int_v8hi_v8hi
= build_function_type = build_function_type_list (integer_type_node,
(integer_type_node, integer_type_node, V8HI_type_node,
tree_cons (NULL_TREE, integer_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
tree_cons (NULL_TREE, V8HI_type_node,
endlink))));
tree int_ftype_int_v16qi_v16qi tree int_ftype_int_v16qi_v16qi
= build_function_type = build_function_type_list (integer_type_node,
(integer_type_node, integer_type_node, V16QI_type_node,
tree_cons (NULL_TREE, integer_type_node, V16QI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V16QI_type_node,
tree_cons (NULL_TREE, V16QI_type_node,
endlink))));
tree v16qi_ftype_int_pvoid tree v16qi_ftype_int_pvoid
= build_function_type (V16QI_type_node, = build_function_type_list (V16QI_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE, pvoid_type_node,
endlink)));
tree v4si_ftype_int_pvoid tree v4si_ftype_int_pvoid
= build_function_type (V4SI_type_node, = build_function_type_list (V4SI_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE, pvoid_type_node,
endlink)));
tree v8hi_ftype_int_pvoid tree v8hi_ftype_int_pvoid
= build_function_type (V8HI_type_node, = build_function_type_list (V8HI_type_node,
tree_cons (NULL_TREE, integer_type_node, integer_type_node, pvoid_type_node, NULL_TREE);
tree_cons (NULL_TREE, pvoid_type_node,
endlink)));
tree int_ftype_v8hi_v8hi tree int_ftype_v8hi_v8hi
= build_function_type (integer_type_node, = build_function_type_list (integer_type_node,
tree_cons (NULL_TREE, V8HI_type_node, V8HI_type_node, V8HI_type_node, NULL_TREE);
tree_cons (NULL_TREE, V8HI_type_node,
endlink)));
def_builtin (MASK_ALTIVEC, "__builtin_altivec_ld_internal_4sf", v4sf_ftype_pfloat, ALTIVEC_BUILTIN_LD_INTERNAL_4sf); def_builtin (MASK_ALTIVEC, "__builtin_altivec_ld_internal_4sf", v4sf_ftype_pfloat, ALTIVEC_BUILTIN_LD_INTERNAL_4sf);
def_builtin (MASK_ALTIVEC, "__builtin_altivec_st_internal_4sf", void_ftype_pfloat_v4sf, ALTIVEC_BUILTIN_ST_INTERNAL_4sf); def_builtin (MASK_ALTIVEC, "__builtin_altivec_st_internal_4sf", void_ftype_pfloat_v4sf, ALTIVEC_BUILTIN_ST_INTERNAL_4sf);

View File

@ -3801,6 +3801,31 @@ build_function_type (value_type, arg_types)
return t; return t;
} }
/* Like build_function_type, but take a vararg list of nodes. The
list of nodes should end with a NULL_TREE. This is typically used
for creating function types for builtins. */
tree
build_function_type_list VPARAMS ((tree first, ...))
{
tree t, args, last;
VA_OPEN (p, first);
VA_FIXEDARG (p, tree, first);
t = va_arg (p, tree);
for (args = NULL_TREE; t != NULL_TREE; t = va_arg (p, tree))
args = tree_cons (NULL_TREE, t, args);
last = args;
args = nreverse (args);
TREE_CHAIN (last) = void_list_node;
args = build_function_type (first, args);
VA_CLOSE (p);
return args;
}
/* Construct, lay out and return the type of methods belonging to class /* Construct, lay out and return the type of methods belonging to class
BASETYPE and whose arguments and values are described by TYPE. BASETYPE and whose arguments and values are described by TYPE.
If that type exists already, reuse it. If that type exists already, reuse it.

View File

@ -2178,6 +2178,7 @@ extern tree build_index_type PARAMS ((tree));
extern tree build_index_2_type PARAMS ((tree, tree)); extern tree build_index_2_type PARAMS ((tree, tree));
extern tree build_array_type PARAMS ((tree, tree)); extern tree build_array_type PARAMS ((tree, tree));
extern tree build_function_type PARAMS ((tree, tree)); extern tree build_function_type PARAMS ((tree, tree));
extern tree build_function_type_list PARAMS ((tree, ...));
extern tree build_method_type PARAMS ((tree, tree)); extern tree build_method_type PARAMS ((tree, tree));
extern tree build_offset_type PARAMS ((tree, tree)); extern tree build_offset_type PARAMS ((tree, tree));
extern tree build_complex_type PARAMS ((tree)); extern tree build_complex_type PARAMS ((tree));