2001-01-23 23:29:30 +01:00
|
|
|
/* Definitions of various defaults for tm.h macros.
|
2001-01-15 04:33:56 +01:00
|
|
|
Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001
|
defaults.h: Provide default definitions for...
* defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
* cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
profile.c, sdbout.c, tradcif.y, tree.c, ch/decl.c, ch/timing.c,
cp/decl.c, cp/rtti.c, f/com.c, f/com.h, java/decl.c, java/expr.c:
Include defaults.h if not already included.
Don't define the above macros.
* Makefile.in, ch/Makefile.in, cp/Makefile.in, f/Makefile.in:
Update dependencies.
From-SVN: r36307
2000-09-11 03:50:49 +02:00
|
|
|
Free Software Foundation, Inc.
|
1996-03-24 00:25:04 +01:00
|
|
|
Contributed by Ron Guilmette (rfg@monkeys.com)
|
1992-04-25 03:51:02 +02:00
|
|
|
|
|
|
|
This file is part of GNU CC.
|
|
|
|
|
|
|
|
GNU CC 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.
|
|
|
|
|
|
|
|
GNU CC 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 GNU CC; see the file COPYING. If not, write to
|
1995-06-15 13:33:25 +02:00
|
|
|
the Free Software Foundation, 59 Temple Place - Suite 330,
|
|
|
|
Boston, MA 02111-1307, USA. */
|
1992-04-25 03:51:02 +02:00
|
|
|
|
defaults.h: Provide default definitions for...
* defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
* cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
profile.c, sdbout.c, tradcif.y, tree.c, ch/decl.c, ch/timing.c,
cp/decl.c, cp/rtti.c, f/com.c, f/com.h, java/decl.c, java/expr.c:
Include defaults.h if not already included.
Don't define the above macros.
* Makefile.in, ch/Makefile.in, cp/Makefile.in, f/Makefile.in:
Update dependencies.
From-SVN: r36307
2000-09-11 03:50:49 +02:00
|
|
|
#ifndef GCC_DEFAULTS_H
|
|
|
|
#define GCC_DEFAULTS_H
|
|
|
|
|
2001-06-26 08:36:44 +02:00
|
|
|
/* Define default standard character escape sequences. */
|
|
|
|
#ifndef TARGET_BELL
|
|
|
|
# define TARGET_BELL 007
|
|
|
|
# define TARGET_BS 010
|
|
|
|
# define TARGET_TAB 011
|
|
|
|
# define TARGET_NEWLINE 012
|
|
|
|
# define TARGET_VT 013
|
|
|
|
# define TARGET_FF 014
|
|
|
|
# define TARGET_CR 015
|
2001-06-27 08:55:29 +02:00
|
|
|
# define TARGET_ESC 033
|
2001-06-26 08:36:44 +02:00
|
|
|
#endif
|
|
|
|
|
1992-07-04 05:16:03 +02:00
|
|
|
/* Store in OUTPUT a string (made with alloca) containing
|
|
|
|
an assembler-name for a local static variable or function named NAME.
|
|
|
|
LABELNO is an integer which is different for each call. */
|
|
|
|
|
|
|
|
#ifndef ASM_FORMAT_PRIVATE_NAME
|
|
|
|
#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
|
|
|
|
do { \
|
|
|
|
int len = strlen (NAME); \
|
|
|
|
char *temp = (char *) alloca (len + 3); \
|
|
|
|
temp[0] = 'L'; \
|
|
|
|
strcpy (&temp[1], (NAME)); \
|
|
|
|
temp[len + 1] = '.'; \
|
|
|
|
temp[len + 2] = 0; \
|
|
|
|
(OUTPUT) = (char *) alloca (strlen (NAME) + 11); \
|
|
|
|
ASM_GENERATE_INTERNAL_LABEL (OUTPUT, temp, LABELNO); \
|
|
|
|
} while (0)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef ASM_STABD_OP
|
2000-09-25 10:08:58 +02:00
|
|
|
#define ASM_STABD_OP "\t.stabd\t"
|
1992-07-04 05:16:03 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* This is how to output an element of a case-vector that is absolute.
|
|
|
|
Some targets don't use this, but we have to define it anyway. */
|
|
|
|
|
|
|
|
#ifndef ASM_OUTPUT_ADDR_VEC_ELT
|
|
|
|
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
|
|
|
|
do { fprintf (FILE, "\t%s\t", ASM_LONG); \
|
|
|
|
ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", (VALUE)); \
|
|
|
|
fputc ('\n', FILE); \
|
|
|
|
} while (0)
|
|
|
|
#endif
|
|
|
|
|
1999-11-03 22:55:51 +01:00
|
|
|
/* Provide default for ASM_OUTPUT_ALTERNATE_LABEL_NAME. */
|
|
|
|
#ifndef ASM_OUTPUT_ALTERNATE_LABEL_NAME
|
|
|
|
#define ASM_OUTPUT_ALTERNATE_LABEL_NAME(FILE,INSN) \
|
1999-11-13 07:53:03 +01:00
|
|
|
do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
|
1999-11-03 22:55:51 +01:00
|
|
|
#endif
|
|
|
|
|
1992-04-25 03:51:02 +02:00
|
|
|
/* choose a reasonable default for ASM_OUTPUT_ASCII. */
|
|
|
|
|
|
|
|
#ifndef ASM_OUTPUT_ASCII
|
|
|
|
#define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \
|
|
|
|
do { \
|
|
|
|
FILE *_hide_asm_out_file = (MYFILE); \
|
2000-02-22 00:27:01 +01:00
|
|
|
const unsigned char *_hide_p = (const unsigned char *) (MYSTRING); \
|
1992-04-25 03:51:02 +02:00
|
|
|
int _hide_thissize = (MYLENGTH); \
|
|
|
|
{ \
|
|
|
|
FILE *asm_out_file = _hide_asm_out_file; \
|
2000-02-22 00:27:01 +01:00
|
|
|
const unsigned char *p = _hide_p; \
|
1992-04-25 03:51:02 +02:00
|
|
|
int thissize = _hide_thissize; \
|
|
|
|
int i; \
|
|
|
|
fprintf (asm_out_file, "\t.ascii \""); \
|
|
|
|
\
|
|
|
|
for (i = 0; i < thissize; i++) \
|
|
|
|
{ \
|
|
|
|
register int c = p[i]; \
|
|
|
|
if (c == '\"' || c == '\\') \
|
|
|
|
putc ('\\', asm_out_file); \
|
2000-04-17 02:54:25 +02:00
|
|
|
if (ISPRINT(c)) \
|
1992-04-25 03:51:02 +02:00
|
|
|
putc (c, asm_out_file); \
|
|
|
|
else \
|
|
|
|
{ \
|
|
|
|
fprintf (asm_out_file, "\\%o", c); \
|
|
|
|
/* After an octal-escape, if a digit follows, \
|
|
|
|
terminate one string constant and start another. \
|
combine.c, [...]: consistently use "VAX", "VAXen", and "MicroVAX" in comments and documentation.
* combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c,
simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h,
config/convex/convex.h, config/d30v/d30v.c,
config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c,
config/mips/mips.h, config/mn10200/mn10200.h,
config/mn10300/mn10300.h, config/pdp11/pdp11.md,
config/v850/v850.h, config/vax/openbsd.h,
config/vax/openbsd1.h, config/vax/ultrix.h,
config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h,
config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h,
cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi,
doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi,
doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX"
in comments and documentation.
From-SVN: r44589
2001-08-03 03:19:20 +02:00
|
|
|
The VAX assembler fails to stop reading the escape \
|
1992-04-25 03:51:02 +02:00
|
|
|
after three digits, so this is the only way we \
|
|
|
|
can get it to parse the data properly. */ \
|
2000-01-15 04:00:11 +01:00
|
|
|
if (i < thissize - 1 && ISDIGIT(p[i + 1])) \
|
1992-04-25 03:51:02 +02:00
|
|
|
fprintf (asm_out_file, "\"\n\t.ascii \""); \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
fprintf (asm_out_file, "\"\n"); \
|
|
|
|
} \
|
|
|
|
} \
|
|
|
|
while (0)
|
|
|
|
#endif
|
1993-03-25 09:51:26 +01:00
|
|
|
|
1994-02-28 01:45:17 +01:00
|
|
|
/* This is how we tell the assembler to equate two values. */
|
|
|
|
#ifdef SET_ASM_OP
|
|
|
|
#ifndef ASM_OUTPUT_DEF
|
|
|
|
#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
|
2000-09-25 13:23:45 +02:00
|
|
|
do { fprintf ((FILE), "%s", SET_ASM_OP); \
|
1994-02-28 01:45:17 +01:00
|
|
|
assemble_name (FILE, LABEL1); \
|
|
|
|
fprintf (FILE, ","); \
|
|
|
|
assemble_name (FILE, LABEL2); \
|
|
|
|
fprintf (FILE, "\n"); \
|
|
|
|
} while (0)
|
|
|
|
#endif
|
|
|
|
#endif
|
1995-05-16 03:02:59 +02:00
|
|
|
|
1996-09-21 12:35:12 +02:00
|
|
|
/* This is how to output a reference to a user-level label named NAME. */
|
|
|
|
|
|
|
|
#ifndef ASM_OUTPUT_LABELREF
|
1998-10-28 23:31:06 +01:00
|
|
|
#define ASM_OUTPUT_LABELREF(FILE,NAME) asm_fprintf ((FILE), "%U%s", (NAME))
|
1996-09-21 12:35:12 +02:00
|
|
|
#endif
|
|
|
|
|
2000-11-01 01:20:34 +01:00
|
|
|
/* Allow target to print debug info labels specially. This is useful for
|
|
|
|
VLIW targets, since debug info labels should go into the middle of
|
|
|
|
instruction bundles instead of breaking them. */
|
|
|
|
|
|
|
|
#ifndef ASM_OUTPUT_DEBUG_LABEL
|
|
|
|
#define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \
|
|
|
|
ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM)
|
|
|
|
#endif
|
|
|
|
|
2001-07-17 14:55:19 +02:00
|
|
|
/* This is how we tell the assembler that a symbol is weak. */
|
2001-07-18 22:43:40 +02:00
|
|
|
#ifndef ASM_OUTPUT_WEAK_ALIAS
|
|
|
|
#if defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_DEF)
|
2001-07-17 14:55:19 +02:00
|
|
|
#define ASM_OUTPUT_WEAK_ALIAS(STREAM, NAME, VALUE) \
|
|
|
|
do \
|
|
|
|
{ \
|
|
|
|
ASM_WEAKEN_LABEL (STREAM, NAME); \
|
|
|
|
if (VALUE) \
|
|
|
|
ASM_OUTPUT_DEF (STREAM, NAME, VALUE); \
|
|
|
|
} \
|
|
|
|
while (0)
|
|
|
|
#endif
|
2001-07-18 22:43:40 +02:00
|
|
|
#endif
|
2001-07-17 14:55:19 +02:00
|
|
|
|
1995-05-16 03:02:59 +02:00
|
|
|
/* This determines whether or not we support weak symbols. */
|
|
|
|
#ifndef SUPPORTS_WEAK
|
|
|
|
#ifdef ASM_WEAKEN_LABEL
|
|
|
|
#define SUPPORTS_WEAK 1
|
|
|
|
#else
|
|
|
|
#define SUPPORTS_WEAK 0
|
|
|
|
#endif
|
|
|
|
#endif
|
1997-07-04 20:49:39 +02:00
|
|
|
|
2001-02-04 09:29:46 +01:00
|
|
|
/* This determines whether or not we support link-once semantics. */
|
|
|
|
#ifndef SUPPORTS_ONE_ONLY
|
|
|
|
#ifdef MAKE_DECL_ONE_ONLY
|
|
|
|
#define SUPPORTS_ONE_ONLY 1
|
|
|
|
#else
|
|
|
|
#define SUPPORTS_ONE_ONLY 0
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
1999-02-27 23:21:58 +01:00
|
|
|
/* If the target supports weak symbols, define TARGET_ATTRIBUTE_WEAK to
|
|
|
|
provide a weak attribute. Else define it to nothing.
|
|
|
|
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
This would normally belong in ansidecl.h, but SUPPORTS_WEAK is
|
1999-02-27 23:21:58 +01:00
|
|
|
not available at that time.
|
|
|
|
|
|
|
|
Note, this is only for use by target files which we know are to be
|
|
|
|
compiled by GCC. */
|
|
|
|
#ifndef TARGET_ATTRIBUTE_WEAK
|
|
|
|
# if SUPPORTS_WEAK
|
|
|
|
# define TARGET_ATTRIBUTE_WEAK __attribute__ ((weak))
|
|
|
|
# else
|
|
|
|
# define TARGET_ATTRIBUTE_WEAK
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
2001-01-15 04:33:56 +01:00
|
|
|
/* If the target supports init_priority C++ attribute, give
|
|
|
|
SUPPORTS_INIT_PRIORITY a nonzero value. */
|
|
|
|
#ifndef SUPPORTS_INIT_PRIORITY
|
|
|
|
#define SUPPORTS_INIT_PRIORITY 1
|
|
|
|
#endif /* SUPPORTS_INIT_PRIORITY */
|
|
|
|
|
2001-04-27 21:59:53 +02:00
|
|
|
/* If duplicate library search directories can be removed from a
|
|
|
|
linker command without changing the linker's semantics, give this
|
|
|
|
symbol a nonzero. */
|
|
|
|
#ifndef LINK_ELIMINATE_DUPLICATE_LDIRECTORIES
|
|
|
|
#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 0
|
|
|
|
#endif /* LINK_ELIMINATE_DUPLICATE_LDIRECTORIES */
|
|
|
|
|
1997-07-04 20:49:39 +02:00
|
|
|
/* If we have a definition of INCOMING_RETURN_ADDR_RTX, assume that
|
|
|
|
the rest of the DWARF 2 frame unwind support is also provided. */
|
1997-09-10 20:00:28 +02:00
|
|
|
#if !defined (DWARF2_UNWIND_INFO) && defined (INCOMING_RETURN_ADDR_RTX)
|
|
|
|
#define DWARF2_UNWIND_INFO 1
|
1997-07-04 20:49:39 +02:00
|
|
|
#endif
|
1999-07-22 04:16:55 +02:00
|
|
|
|
target.h (gcc_target): Add asm_out.named_section, section_type_flags, have_named_sections.
* target.h (gcc_target): Add asm_out.named_section,
section_type_flags, have_named_sections.
* target-def.h (TARGET_ASM_NAMED_SECTION): New.
(TARGET_HAVE_NAMED_SECTIONS): New.
(TARGET_SECTION_TYPE_FLAGS): New.
* Makefile.in (toplev.o): Depend on TARGET_H.
(varasm.o, dbxout.o): Likewise.
* c-common.c (decl_attributes): Check targetm.have_named_sections
instead of ifdef ASM_OUTPUT_SECTION_NAME.
* dbxout.c (dbxout_function_decl): Likewise.
(dbxout_function_end): Likewise.
* toplev.c (compile_file): Likewise.
* varasm.c (exception_section): Likewise.
* cp/decl2.c (finish_objects): Likewise.
* defaults.h (EH_FRAME_SECTION): Remove.
(EH_FRAME_SECTION_ASM_OP): Remove.
(EH_FRAME_SECTION_NAME): New.
(UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME.
(UNIQUE_SECTION_P): Remove.
* dwarf2out.c (SECTION_FORMAT): Remove.
(ASM_OUTPUT_SECTION): Remove.
(output_call_frame_info): Use named_section_flags.
(output_comp_unit, dwarf2out_start_source_file): Likewise.
(dwarf2out_end_source_file, dwarf2out_define): Likewise.
(dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise.
* varasm.c (in_eh_frame, eh_frame_section): Remove.
(named_section_flags): New.
(named_section): Use it and targetm.section_type_flags.
(resolve_unique_section): New.
(assemble_start_function): Use it.
(asm_emit_uninitialised, assemble_variable): Likewise.
(default_section_type_flags): New.
(default_no_named_section, default_elf_asm_named_section): New.
(default_coff_asm_named_section, default_pe_asm_named_section): New.
* output.h: Update varasm.c decls.
(SECTION_*): New flags.
* crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP.
(__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section.
* config/elfos.h (UNIQUE_SECTION_P): Remove.
* config/alpha/elf.h, config/arm/linux-elf.h: Likewise.
* config/arm/pe.h, config/arm/unknown-elf.h: Likewise.
* config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
* config/i386/i386-interix.h, config/i386/win32.h: Likewise.
* config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise.
* config/mips/elf.h, config/mips/elf64.h: Likewise.
* config/mips/iris6gld.h, config/mips/mips.h: Likewise.
* config/pa/pa64-hpux.h,
* config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove.
(TARGET_ASM_NAMED_SECTION): New.
* config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise.
* config/alpha/vms.h, config/arm/coff.h: Likewise.
* config/arm/conix-elf.h, config/arm/elf.h: Likewise.
* config/arm/linux-elf.h, config/arm/pe.h: Likewise.
* config/arm/unknown-elf.h, config/avr/avr.h: Likewise.
* config/c4x/c4x.h, config/h8300/h8300.h: Likewise.
* config/i386/cygwin.h, config/i386/djgpp.h: Likewise.
* config/i386/i386-interix.h, config/i386/i386elf.h : Likewise.
* config/i386/sco5.h, config/i386/win32.h: Likewise.
* config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise.
* config/mcore/mcore.h, config/mips/elf.h: Likewise.
* config/mips/elf64.h, config/mips/iris6.h: Likewise.
* config/mips/netbsd.h, config/mips/openbsd.h: Likewise.
* config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise.
* config/rs6000/xcoff.h, config/sh/sh.h: Likewise.
* config/sparc/sysv4.h: Likewise.
* config/nextstep.h: Error until named sections implemented.
* config/a29k/a29k.c (a29k_asm_named_section): New.
* config/alpha/alpha.c (SECTION_VMS_OVERLAY): New.
(vms_section_type_flags, vms_asm_named_section): New.
* config/arm/arm.c (arm_elf_asm_named_section): New.
* config/avr/avr.c (asm_output_section_name): Remove.
* config/avr/avr-protos.h: Update.
* config/c4x/c4x.c (c4x_asm_named_section): New.
* config/h8300/h8300.c (h8300_asm_named_section): New.
* config/i386/i386.c (sco_asm_named_section): New.
* config/i386/winnt.c (SECTION_PE_SHARED): New.
(i386_pe_section_type_flags): New.
(i386_pe_asm_named_section): New.
* config/i386/i386-protos.h: Update.
* config/m68k/m68k.c (m68k_coff_asm_named_section): New.
* config/mcore/mcore.c (mcore_asm_named_section): New.
* config/mips/mips.c (iris6_asm_named_section): New.
* config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY
instead of UNIQUE_SECTION_P.
* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New.
(xcoff_asm_named_section): New.
* config/sh/sh.c (sh_asm_named_section): New.
* config/sparc/sparc.c (sparc_elf_asm_named_section): New.
* config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove.
* config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove.
(EH_FRAME_SECTION_NAME): New.
(EXCEPTION_SECTION): New.
* config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove.
(DEBUG_*_SECTION): Remove.
* config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove.
* config/mips/iris6.h (DEBUG_*_SECTION): Remove.
(EH_FRAME_SECTION_ASM_OP): Remove.
* doc/tm.texi (UNIQUE_SECTION_P): Remove.
(ASM_OUTPUT_SECTION_NAME): Remove.
(TARGET_ASM_NAMED_SECTION): New.
(TARGET_HAVE_NAMED_SECTIONS): New.
(TARGET_SECTION_TYPE_FLAGS): New.
(EH_FRAME_SECTION_ASM_OP): Remove.
(EH_FRAME_SECTION_NAME): New.
From-SVN: r44623
2001-08-04 03:31:41 +02:00
|
|
|
/* If we have named section, and we're using crtstuff to run ctors,
|
|
|
|
then use named sections for registering eh frame information. */
|
|
|
|
#if defined (TARGET_ASM_NAMED_SECTION) && defined (ASM_OUTPUT_CONSTRUCTOR)
|
|
|
|
#ifndef EH_FRAME_SECTION_NAME
|
|
|
|
#define EH_FRAME_SECTION_NAME ".eh_frame"
|
|
|
|
#endif
|
1999-09-09 23:36:20 +02:00
|
|
|
#endif
|
|
|
|
|
2001-08-09 01:33:51 +02:00
|
|
|
/* If we have named section and we support weak symbols, then use the
|
|
|
|
.jcr section for recording java classes which need to be registered
|
|
|
|
at program start-up time. */
|
|
|
|
#if defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK
|
|
|
|
#ifndef JCR_SECTION_NAME
|
|
|
|
#define JCR_SECTION_NAME ".jcr"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2001-01-23 23:29:30 +01:00
|
|
|
/* If we have no definition for UNIQUE_SECTION, but do have the
|
|
|
|
ability to generate arbitrary sections, construct something
|
|
|
|
reasonable. */
|
|
|
|
#ifndef UNIQUE_SECTION
|
|
|
|
#define UNIQUE_SECTION(DECL,RELOC) \
|
|
|
|
do { \
|
|
|
|
int len; \
|
|
|
|
const char *name; \
|
|
|
|
char *string; \
|
|
|
|
\
|
|
|
|
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
|
|
|
|
/* Strip off any encoding in name. */ \
|
|
|
|
STRIP_NAME_ENCODING (name, name); \
|
|
|
|
\
|
|
|
|
len = strlen (name) + 1; \
|
|
|
|
string = alloca (len + 1); \
|
|
|
|
sprintf (string, ".%s", name); \
|
|
|
|
\
|
|
|
|
DECL_SECTION_NAME (DECL) = build_string (len, string); \
|
|
|
|
} while (0)
|
|
|
|
#endif
|
|
|
|
|
1999-07-22 04:16:55 +02:00
|
|
|
/* By default, we generate a label at the beginning and end of the
|
|
|
|
text section, and compute the size of the text section by
|
|
|
|
subtracting the two. However, on some platforms that doesn't
|
|
|
|
work, and we use the section itself, rather than a label at the
|
|
|
|
beginning of it, to indicate the start of the section. On such
|
|
|
|
platforms, define this to zero. */
|
|
|
|
#ifndef DWARF2_GENERATE_TEXT_SECTION_LABEL
|
|
|
|
#define DWARF2_GENERATE_TEXT_SECTION_LABEL 1
|
|
|
|
#endif
|
1999-08-03 02:58:44 +02:00
|
|
|
|
|
|
|
/* Supply a default definition for PROMOTE_PROTOTYPES. */
|
|
|
|
#ifndef PROMOTE_PROTOTYPES
|
|
|
|
#define PROMOTE_PROTOTYPES 0
|
|
|
|
#endif
|
2000-01-06 15:29:08 +01:00
|
|
|
|
|
|
|
/* Number of hardware registers that go into the DWARF-2 unwind info.
|
|
|
|
If not defined, equals FIRST_PSEUDO_REGISTER */
|
|
|
|
|
|
|
|
#ifndef DWARF_FRAME_REGISTERS
|
|
|
|
#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
|
|
|
|
#endif
|
defaults.h: Provide default definitions for...
* defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
* cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
profile.c, sdbout.c, tradcif.y, tree.c, ch/decl.c, ch/timing.c,
cp/decl.c, cp/rtti.c, f/com.c, f/com.h, java/decl.c, java/expr.c:
Include defaults.h if not already included.
Don't define the above macros.
* Makefile.in, ch/Makefile.in, cp/Makefile.in, f/Makefile.in:
Update dependencies.
From-SVN: r36307
2000-09-11 03:50:49 +02:00
|
|
|
|
|
|
|
/* Default sizes for base C types. If the sizes are different for
|
|
|
|
your target, you should override these values by defining the
|
|
|
|
appropriate symbols in your tm.h file. */
|
|
|
|
|
|
|
|
#ifndef CHAR_TYPE_SIZE
|
|
|
|
#define CHAR_TYPE_SIZE BITS_PER_UNIT
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef SHORT_TYPE_SIZE
|
|
|
|
#define SHORT_TYPE_SIZE (BITS_PER_UNIT * MIN ((UNITS_PER_WORD + 1) / 2, 2))
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef INT_TYPE_SIZE
|
|
|
|
#define INT_TYPE_SIZE BITS_PER_WORD
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef LONG_TYPE_SIZE
|
|
|
|
#define LONG_TYPE_SIZE BITS_PER_WORD
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef LONG_LONG_TYPE_SIZE
|
|
|
|
#define LONG_LONG_TYPE_SIZE (BITS_PER_WORD * 2)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef WCHAR_TYPE_SIZE
|
|
|
|
#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef WCHAR_UNSIGNED
|
|
|
|
#define WCHAR_UNSIGNED 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef FLOAT_TYPE_SIZE
|
|
|
|
#define FLOAT_TYPE_SIZE BITS_PER_WORD
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef DOUBLE_TYPE_SIZE
|
|
|
|
#define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef LONG_DOUBLE_TYPE_SIZE
|
|
|
|
#define LONG_DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
|
|
|
|
#endif
|
|
|
|
|
2000-12-30 16:31:49 +01:00
|
|
|
#ifndef BUILD_VA_LIST_TYPE
|
|
|
|
#define BUILD_VA_LIST_TYPE(X) ((X) = ptr_type_node)
|
|
|
|
#endif
|
|
|
|
|
2001-02-13 21:17:45 +01:00
|
|
|
#ifndef PIC_OFFSET_TABLE_REGNUM
|
|
|
|
#define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
|
|
|
|
#endif
|
|
|
|
|
regs.h (struct reg_info_def): Add freq field.
* regs.h (struct reg_info_def): Add freq field.
(REG_N_REFS): Update comment.
(REG_FREQ): New.
* regclass.c (scan_one_insn): Update REG_FREQ.
* flow.c (mark_set_1): Update REG_FREQ, make REG_N_SETS unweighted.
(attempt_auto_inc): Likewise.
(mark_used_reg): Likewise.
(try_pre_increment_1): Likewise.
* local-alloc.c (struct qty): Add freq field.
(alloc_qty): Set freq.
(update_equiv_regs): Set REG_FREQ.
(QTY_CMP_PRI): Use freq.
(combine_regs): Update qty->freq.
* global.c (struct allocno): Update comment for n_refs;
add freq field.
(local_reg_freq): New array.
(global_alloc): Update freq field;
allocate and initialize local_reg_freq.
(allocno_compare): Use freq field.
(find_reg): Likewise.
* reload1.c (count_pseudo): Use freq isntead of n_refs.
(count_spilled_pseudo): Likewise.
* tm.texi (GCOV_TYPE_SIZE): Document.
* basic-block.h (gcov_type): Define.
(struct edge_def): Use gcov_type for count field.
(struct basic_block_def): Likewise.
* defaults.h (GCOV_TYPE_SIZE): Define.
* final.c (end_final): Use GCOV_TYPE_SIZE.
* flow.c (dump_edge_info, dump_flow_info, dump_bb): Print count fields
using HOST_WIDEST_INT_PRINT_DEC.
* gcov-io.h (__fetch_gcov_type, __store_gcov_type, __read_gcov_type,
__write_gcov_type): New.
(store_long): Remove.
* gcov.c (gcov_type): Set default.
(struct adj_list): Use gcov_type for arc_count.
(bb_info): Use gcov_type for succ_count, pred_count and exec_count.
(create_program_flow_graph): Read arc_count properly.
(solve_program_flow_graph): 'total' is gcov_type.
(output_data): Line_counts is gcov_type, print it properly.
* libgcc2.c (struct bb): Counts is gcov_type.
(__bb_exit_func): Use __read_gcov_type and __write_gcov_type.
* profile.c (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set default.
(GCOV_TYPE_SIZE): Define.
(struct bb_info): succ_count and pred_count is gcov_type.
(compute_branch_probabilities): Use __read_gcov_type,
print read edges to the dump file.
(total): Is gcov_type.
(gen_edge_profiler): Use GCOV_TYPE_SIZE.
From-SVN: r43505
2001-06-22 19:18:23 +02:00
|
|
|
/* Type used by GCOV counters. Use 64bit data type if target supports
|
|
|
|
it. */
|
|
|
|
#if LONG_TYPE_SIZE >= 64
|
|
|
|
#define GCOV_TYPE_SIZE LONG_TYPE_SIZE
|
|
|
|
#else
|
|
|
|
#define GCOV_TYPE_SIZE LONG_LONG_TYPE_SIZE
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2001-02-07 19:58:07 +01:00
|
|
|
/* By default, the preprocessor should be invoked the same way in C++
|
|
|
|
as in C. */
|
|
|
|
#ifndef CPLUSPLUS_CPP_SPEC
|
|
|
|
#ifdef CPP_SPEC
|
|
|
|
#define CPLUSPLUS_CPP_SPEC CPP_SPEC
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2001-03-18 22:38:33 +01:00
|
|
|
#ifndef ACCUMULATE_OUTGOING_ARGS
|
|
|
|
#define ACCUMULATE_OUTGOING_ARGS 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Supply a default definition for PUSH_ARGS. */
|
|
|
|
#ifndef PUSH_ARGS
|
|
|
|
#ifdef PUSH_ROUNDING
|
|
|
|
#define PUSH_ARGS !ACCUMULATE_OUTGOING_ARGS
|
|
|
|
#else
|
|
|
|
#define PUSH_ARGS 0
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2001-05-12 08:03:20 +02:00
|
|
|
/* Select a format to encode pointers in exception handling data. We
|
|
|
|
prefer those that result in fewer dynamic relocations. Assume no
|
|
|
|
special support here and encode direct references. */
|
|
|
|
#ifndef ASM_PREFERRED_EH_DATA_FORMAT
|
|
|
|
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) DW_EH_PE_absptr
|
|
|
|
#endif
|
|
|
|
|
2001-05-12 12:41:21 +02:00
|
|
|
/* By default, the C++ compiler will use the lowest bit of the pointer
|
|
|
|
to function to indicate a pointer-to-member-function points to a
|
|
|
|
virtual member function. However, if FUNCTION_BOUNDARY indicates
|
|
|
|
function addresses aren't always even, the lowest bit of the delta
|
|
|
|
field will be used. */
|
|
|
|
#ifndef TARGET_PTRMEMFUNC_VBIT_LOCATION
|
|
|
|
#define TARGET_PTRMEMFUNC_VBIT_LOCATION \
|
|
|
|
(FUNCTION_BOUNDARY >= 2 * BITS_PER_UNIT \
|
|
|
|
? ptrmemfunc_vbit_in_pfn : ptrmemfunc_vbit_in_delta)
|
|
|
|
#endif
|
|
|
|
|
2001-05-19 19:56:48 +02:00
|
|
|
/* True if it is possible to profile code that does not have a frame
|
|
|
|
pointer. */
|
|
|
|
|
|
|
|
#ifndef TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER
|
|
|
|
#define TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER true
|
|
|
|
#endif
|
|
|
|
|
2001-05-26 03:31:47 +02:00
|
|
|
#endif /* ! GCC_DEFAULTS_H */
|