* c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check TARGET_MEM_FUNCTIONS. * system.h: Poison TARGET_MEM_FUNCTIONS. * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc, bcmp_libfunc, bzero_libfunc): Remove. * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or bzero_libfunc. * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove. * doc/standards.texi: Don't mention calling BSD string functions. * doc/invoke.texi: Likewise. Mention that memmove may be called. * config/vax/t-memfuncs: New. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: New. * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files. * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use vax/t-memfuncs. * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h, config/elfos.h, config/gnu.h, config/h8300/h8300.h, config/i386/gas.h, config/ia64/ia64.h, config/interix.h, config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h, config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, config/netbsd.h, config/openbsd.h, config/pa/pa.h, config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h, config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, config/svr3.h: Don't define TARGET_MEM_FUNCTIONS. From-SVN: r84130
76 lines
2.3 KiB
C
76 lines
2.3 KiB
C
/* Definitions for code generation pass of GNU compiler.
|
|
Copyright (C) 2001 Free Software Foundation, Inc.
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
any later version.
|
|
|
|
GCC is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GCC; see the file COPYING. If not, write to
|
|
the Free Software Foundation, 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA. */
|
|
|
|
#ifndef GCC_LIBFUNCS_H
|
|
#define GCC_LIBFUNCS_H
|
|
|
|
/* Enumeration of indexes into libfunc_table. */
|
|
enum libfunc_index
|
|
{
|
|
LTI_abort,
|
|
LTI_memcpy,
|
|
LTI_memmove,
|
|
LTI_memcmp,
|
|
LTI_memset,
|
|
LTI_setbits,
|
|
|
|
LTI_unwind_resume,
|
|
LTI_eh_personality,
|
|
LTI_setjmp,
|
|
LTI_longjmp,
|
|
LTI_unwind_sjlj_register,
|
|
LTI_unwind_sjlj_unregister,
|
|
|
|
LTI_profile_function_entry,
|
|
LTI_profile_function_exit,
|
|
|
|
LTI_gcov_flush,
|
|
|
|
LTI_MAX
|
|
};
|
|
|
|
/* SYMBOL_REF rtx's for the library functions that are called
|
|
implicitly and not via optabs. */
|
|
extern GTY(()) rtx libfunc_table[LTI_MAX];
|
|
|
|
/* Accessor macros for libfunc_table. */
|
|
|
|
#define abort_libfunc (libfunc_table[LTI_abort])
|
|
#define memcpy_libfunc (libfunc_table[LTI_memcpy])
|
|
#define memmove_libfunc (libfunc_table[LTI_memmove])
|
|
#define memcmp_libfunc (libfunc_table[LTI_memcmp])
|
|
#define memset_libfunc (libfunc_table[LTI_memset])
|
|
#define setbits_libfunc (libfunc_table[LTI_setbits])
|
|
|
|
#define unwind_resume_libfunc (libfunc_table[LTI_unwind_resume])
|
|
#define eh_personality_libfunc (libfunc_table[LTI_eh_personality])
|
|
#define setjmp_libfunc (libfunc_table[LTI_setjmp])
|
|
#define longjmp_libfunc (libfunc_table[LTI_longjmp])
|
|
#define unwind_sjlj_register_libfunc (libfunc_table[LTI_unwind_sjlj_register])
|
|
#define unwind_sjlj_unregister_libfunc \
|
|
(libfunc_table[LTI_unwind_sjlj_unregister])
|
|
|
|
#define profile_function_entry_libfunc (libfunc_table[LTI_profile_function_entry])
|
|
#define profile_function_exit_libfunc (libfunc_table[LTI_profile_function_exit])
|
|
|
|
#define gcov_flush_libfunc (libfunc_table[LTI_gcov_flush])
|
|
|
|
#endif /* GCC_LIBFUNCS_H */
|