X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;ds=sidebyside;f=gcc%2Fdefaults.h;h=e4ef7f3624644f23986e62f8b63d15821fa76d68;hb=324c3b05da99cf3c15014f16caea6f882d7f488c;hp=d842742e7602c622da563ebae69161b74b54ced4;hpb=e335d51286f576bcd9035ff20d6e0b33ee7f6049;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/defaults.h b/gcc/defaults.h index d842742e760..e4ef7f36246 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1,5 +1,6 @@ /* Definitions of various defaults for tm.h macros. - Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. Contributed by Ron Guilmette (rfg@monkeys.com) @@ -35,19 +36,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA obstack_chunk_alloc, \ obstack_chunk_free) -/* Define default standard character escape sequences. */ -#ifndef TARGET_BELL -# define TARGET_BELL 007 -# define TARGET_BS 010 -# define TARGET_CR 015 -# define TARGET_DIGIT0 060 -# define TARGET_ESC 033 -# define TARGET_FF 014 -# define TARGET_NEWLINE 012 -# define TARGET_TAB 011 -# define TARGET_VT 013 -#endif - /* 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. */ @@ -73,10 +61,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA } while (0) #endif -#ifndef ASM_STABD_OP -#define ASM_STABD_OP "\t.stabd\t" -#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. */ @@ -141,6 +125,12 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #endif #endif +/* Decide whether to defer emitting the assembler output for an equate + of two values. The default is to not defer output. */ +#ifndef TARGET_DEFERRED_OUTPUT_DEFS +#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) false +#endif + /* This is how to output the definition of a user-level label named NAME, such as the label on a static function or variable NAME. */ @@ -149,6 +139,15 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ do { assemble_name ((FILE), (NAME)); fputs (":\n", (FILE)); } while (0) #endif +/* Output the definition of a compiler-generated label named NAME. */ +#ifndef ASM_OUTPUT_INTERNAL_LABEL +#define ASM_OUTPUT_INTERNAL_LABEL(FILE,NAME) \ + do { \ + assemble_name_raw ((FILE), (NAME)); \ + fputs (":\n", (FILE)); \ + } while (0) +#endif + /* This is how to output a reference to a user-level label named NAME. */ #ifndef ASM_OUTPUT_LABELREF @@ -274,17 +273,6 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ # endif #endif -/* This determines whether this target supports hidden visibility. - This is a weaker condition than HAVE_GAS_HIDDEN, which probes for - specific assembler syntax. */ -#ifndef TARGET_SUPPORTS_HIDDEN -# ifdef HAVE_GAS_HIDDEN -# define TARGET_SUPPORTS_HIDDEN 1 -# else -# define TARGET_SUPPORTS_HIDDEN 0 -# endif -#endif - /* Determines whether we may use common symbols to represent one-only semantics (a.k.a. "vague linkage"). */ #ifndef USE_COMMON_FOR_ONE_ONLY @@ -325,6 +313,26 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #endif #endif +/* On many systems, different EH table encodings are used under + difference circumstances. Some will require runtime relocations; + some will not. For those that do not require runtime relocations, + we would like to make the table read-only. However, since the + read-only tables may need to be combined with read-write tables + that do require runtime relocation, it is not safe to make the + tables read-only unless the linker will merge read-only and + read-write sections into a single read-write section. If your + linker does not have this ability, but your system is such that no + encoding used with non-PIC code will ever require a runtime + relocation, then you can define EH_TABLES_CAN_BE_READ_ONLY to 1 in + your target configuration file. */ +#ifndef EH_TABLES_CAN_BE_READ_ONLY +#ifdef HAVE_LD_RO_RW_SECTION_MIXING +#define EH_TABLES_CAN_BE_READ_ONLY 1 +#else +#define EH_TABLES_CAN_BE_READ_ONLY 0 +#endif +#endif + /* 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. */ @@ -334,6 +342,18 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #endif #endif +/* This decision to use a .jcr section can be overridden by defining + USE_JCR_SECTION to 0 in target file. This is necessary if target + can define JCR_SECTION_NAME but does not have crtstuff or + linker support for .jcr section. */ +#ifndef TARGET_USE_JCR_SECTION +#ifdef JCR_SECTION_NAME +#define TARGET_USE_JCR_SECTION 1 +#else +#define TARGET_USE_JCR_SECTION 0 +#endif +#endif + /* Number of hardware registers that go into the DWARF-2 unwind info. If not defined, equals FIRST_PSEUDO_REGISTER */ @@ -577,6 +597,19 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT #endif +/* Some macros can be defined by the backend in either a mode-dependent + or mode-independent form. The compiler proper should only use the + mode-dependent form, providing VOIDmode when the mode is unknown. + We can't poison the macros because the backend may reference them. */ + +#ifndef REGNO_MODE_OK_FOR_BASE_P +#define REGNO_MODE_OK_FOR_BASE_P(REGNO, MODE) REGNO_OK_FOR_BASE_P (REGNO) +#endif + +#ifndef REG_MODE_OK_FOR_BASE_P +#define REG_MODE_OK_FOR_BASE_P(REG, MODE) REG_OK_FOR_BASE_P (REG) +#endif + /* Determine the register class for registers suitable to be the base address register in a MEM. Allow the choice to be dependent upon the mode of the memory access. */ @@ -584,6 +617,20 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #define MODE_BASE_REG_CLASS(MODE) BASE_REG_CLASS #endif +/* Some machines require a different base register class if the index + is a register. By default, assume that a base register is acceptable. */ +#ifndef MODE_BASE_REG_REG_CLASS +#define MODE_BASE_REG_REG_CLASS(MODE) MODE_BASE_REG_CLASS(MODE) +#endif + +#ifndef REGNO_MODE_OK_FOR_REG_BASE_P +#define REGNO_MODE_OK_FOR_REG_BASE_P(REGNO, MODE) REGNO_MODE_OK_FOR_BASE_P (REGNO, MODE) +#endif + +#ifndef REG_MODE_OK_FOR_REG_BASE_P +#define REG_MODE_OK_FOR_REG_BASE_P(REGNO, MODE) REG_MODE_OK_FOR_BASE_P (REGNO, MODE) +#endif + #ifndef LARGEST_EXPONENT_IS_NORMAL #define LARGEST_EXPONENT_IS_NORMAL(SIZE) 0 #endif @@ -655,8 +702,10 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #define HAS_LONG_UNCOND_BRANCH 0 #endif +/* By default, only attempt to parallelize bitwise operations, and + possibly adds/subtracts using bit-twiddling. */ #ifndef UNITS_PER_SIMD_WORD -#define UNITS_PER_SIMD_WORD 0 +#define UNITS_PER_SIMD_WORD UNITS_PER_WORD #endif /* Determine whether __cxa_atexit, rather than atexit, is used to @@ -708,7 +757,7 @@ do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \ #define REGISTER_MOVE_COST(m, x, y) 2 #endif -/* Determine whether the the entire c99 runtime +/* Determine whether the entire c99 runtime is present in the runtime library. */ #ifndef TARGET_C99_FUNCTIONS #define TARGET_C99_FUNCTIONS 0