From 7725086e26b7642b85d2a2461d2039d2a67ae138 Mon Sep 17 00:00:00 2001 From: Richard Sandiford <rdsandiford@googlemail.com> Date: Sun, 26 Sep 2010 07:26:20 +0000 Subject: [PATCH] mips.c (mips_builtin_decls): Declare. gcc/ * config/mips/mips.c (mips_builtin_decls): Declare. (mips_init_builtins): Store function declarations in mips_builtin_decls. (mips_builtin_decl): New function. (TARGET_BUILTIN_DECL): Define. From-SVN: r164629 --- gcc/ChangeLog | 8 ++++++++ gcc/config/mips/mips.c | 23 ++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 138fc9939898..9678b50258ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2010-09-26 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c (mips_builtin_decls): Declare. + (mips_init_builtins): Store function declarations in + mips_builtin_decls. + (mips_builtin_decl): New function. + (TARGET_BUILTIN_DECL): Define. + 2010-09-25 Kai Tietz <kai.tietz@onevision.com> Richard Henderson <rth@redhat.com> diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index d26990e593ba..56e4f2da16fd 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -13025,6 +13025,10 @@ static const struct mips_builtin_description mips_builtins[] = { DIRECT_NO_TARGET_BUILTIN (cache, MIPS_VOID_FTYPE_SI_CVPOINTER, cache) }; +/* Index I is the function declaration for mips_builtins[I], or null if the + function isn't defined on this target. */ +static GTY(()) tree mips_builtin_decls[ARRAY_SIZE (mips_builtins)]; + /* MODE is a vector mode whose elements have type TYPE. Return the type of the vector itself. */ @@ -13141,12 +13145,23 @@ mips_init_builtins (void) { d = &mips_builtins[i]; if (d->avail ()) - add_builtin_function (d->name, - mips_build_function_type (d->function_type), - i, BUILT_IN_MD, NULL, NULL); + mips_builtin_decls[i] + = add_builtin_function (d->name, + mips_build_function_type (d->function_type), + i, BUILT_IN_MD, NULL, NULL); } } +/* Implement TARGET_BUILTIN_DECL. */ + +static tree +mips_builtin_decl (unsigned int code, bool initialize_p ATTRIBUTE_UNUSED) +{ + if (code >= ARRAY_SIZE (mips_builtins)) + return error_mark_node; + return mips_builtin_decls[code]; +} + /* Take argument ARGNO from EXP's argument list and convert it into a form suitable for input operand OPNO of instruction ICODE. Return the value. */ @@ -16519,6 +16534,8 @@ mips_shift_truncation_mask (enum machine_mode mode) #undef TARGET_INIT_BUILTINS #define TARGET_INIT_BUILTINS mips_init_builtins +#undef TARGET_BUILTIN_DECL +#define TARGET_BUILTIN_DECL mips_builtin_decl #undef TARGET_EXPAND_BUILTIN #define TARGET_EXPAND_BUILTIN mips_expand_builtin -- GitLab