diff options
author | shebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-10 06:18:36 +0000 |
---|---|---|
committer | shebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-10 06:18:36 +0000 |
commit | fc2a2dcb4f30a245f49fba6aeb39afe0255867f4 (patch) | |
tree | 787fa7c05c30080cd6bcbf66af8b1d34d439a975 /gcc/builtins.c | |
parent | a4b57ca1209c39ec7d6d544b05530730f6e2cce0 (diff) | |
download | gcc-fc2a2dcb4f30a245f49fba6aeb39afe0255867f4.tar.gz |
* target.h (struct gcc_target): New fields init_builtins and
expand_builtin.
* target-def.h (TARGET_INIT_BUILTINS): New macro.
(TARGET_EXPAND_BUILTIN): New macro.
(TARGET_INITIALIZER): Add them.
* builtins.c: Include target.h.
(expand_builtin): Use targetm.expand_builtin.
(default_init_builtins): New function.
(default_expand_builtin): New function.
* expr.h (default_init_builtins): Declare.
(default_expand_builtin): Declare.
* c-common.c (c_common_nodes_and_builtins): Use
targetm.init_builtins.
* defaults.h (MD_INIT_BUILTINS): Remove.
* Makefile.in (builtins.o): Depend on target.h.
* config/arm/arm.c (TARGET_INIT_BUILTINS): Define.
(TARGET_EXPAND_BUILTIN): Define.
* config/arm/arm.h (MD_INIT_BUILTINS): Remove.
(MD_EXPAND_BUILTIN): Remove.
* config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define.
(TARGET_EXPAND_BUILTIN): Define.
(c4x_init_builtins): Make endlink arg a local.
(c4x_print_operand): Fix typos in adjust_address usages.
* config/c4x/c4x-protos.h (c4x_init_builtins): Update decl.
* config/c4x/c4x.h (MD_INIT_BUILTINS): Remove.
(MD_EXPAND_BUILTIN): Remove.
* config/i386/i386.c (TARGET_INIT_BUILTINS): Define.
(TARGET_EXPAND_BUILTIN): Define.
(ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins.
(ix86_init_builtins): Call new function only if TARGET_MMX.
* config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare.
* config/i386/i386.h (MD_INIT_BUILTINS): Remove.
(MD_EXPAND_BUILTIN): Remove.
* config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define.
(TARGET_EXPAND_BUILTIN): Define.
* config/ia64/ia64.h (MD_INIT_BUILTINS): Remove.
(MD_EXPAND_BUILTIN): Remove.
* doc/tm.texi: Document these changes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43888 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index f6f76baba15..0c847154680 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -38,6 +38,7 @@ Boston, MA 02111-1307, USA. */ #include "toplev.h" #include "predict.h" #include "tm_p.h" +#include "target.h" #define CALLED_AS_BUILT_IN(NODE) \ (!strncmp (IDENTIFIER_POINTER (DECL_NAME (NODE)), "__builtin_", 10)) @@ -3401,10 +3402,8 @@ expand_builtin (exp, target, subtarget, mode, ignore) tree arglist = TREE_OPERAND (exp, 1); enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl); -#ifdef MD_EXPAND_BUILTIN if (DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_MD) - return MD_EXPAND_BUILTIN (exp, target, subtarget, mode, ignore); -#endif + return (*targetm.expand_builtin) (exp, target, subtarget, mode, ignore); /* When not optimizing, generate calls to library functions for a certain set of builtins. */ @@ -3897,3 +3896,23 @@ validate_arglist VPARAMS ((tree arglist, ...)) arglist = TREE_CHAIN (arglist); } while (1); } + +/* Default version of target-specific builtin setup that does nothing. */ + +void +default_init_builtins () +{ +} + +/* Default target-specific builtin expander that does nothing. */ + +rtx +default_expand_builtin (exp, target, subtarget, mode, ignore) + tree exp ATTRIBUTE_UNUSED; + rtx target ATTRIBUTE_UNUSED; + rtx subtarget ATTRIBUTE_UNUSED; + enum machine_mode mode ATTRIBUTE_UNUSED; + int ignore ATTRIBUTE_UNUSED; +{ + return NULL_RTX; +} |