00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GCC_DEFAULTS_H
00025 #define GCC_DEFAULTS_H
00026
00027 #ifndef GET_ENVIRONMENT
00028 #define GET_ENVIRONMENT(VALUE, NAME) do { (VALUE) = getenv (NAME); } while (0)
00029 #endif
00030
00031 #define obstack_chunk_alloc ((void *(*) (long)) xmalloc)
00032 #define obstack_chunk_free ((void (*) (void *)) free)
00033 #define OBSTACK_CHUNK_SIZE 0
00034 #define gcc_obstack_init(OBSTACK) \
00035 _obstack_begin ((OBSTACK), OBSTACK_CHUNK_SIZE, 0, \
00036 obstack_chunk_alloc, \
00037 obstack_chunk_free)
00038
00039
00040
00041
00042
00043 #ifndef ASM_PN_FORMAT
00044 # ifndef NO_DOT_IN_LABEL
00045 # define ASM_PN_FORMAT "%s.%lu"
00046 # else
00047 # ifndef NO_DOLLAR_IN_LABEL
00048 # define ASM_PN_FORMAT "%s$%lu"
00049 # else
00050 # define ASM_PN_FORMAT "__%s_%lu"
00051 # endif
00052 # endif
00053 #endif
00054
00055 #ifndef ASM_FORMAT_PRIVATE_NAME
00056 # define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
00057 do { const char *const name_ = (NAME); \
00058 char *const output_ = (OUTPUT) = \
00059 (char *) alloca (strlen (name_) + 32); \
00060 sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \
00061 } while (0)
00062 #endif
00063
00064
00065
00066 #ifndef ASM_OUTPUT_ASCII
00067 #define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \
00068 do { \
00069 FILE *_hide_asm_out_file = (MYFILE); \
00070 const unsigned char *_hide_p = (const unsigned char *) (MYSTRING); \
00071 int _hide_thissize = (MYLENGTH); \
00072 { \
00073 FILE *asm_out_file = _hide_asm_out_file; \
00074 const unsigned char *p = _hide_p; \
00075 int thissize = _hide_thissize; \
00076 int i; \
00077 fprintf (asm_out_file, "\t.ascii \""); \
00078 \
00079 for (i = 0; i < thissize; i++) \
00080 { \
00081 int c = p[i]; \
00082 if (c == '\"' || c == '\\') \
00083 putc ('\\', asm_out_file); \
00084 if (ISPRINT(c)) \
00085 putc (c, asm_out_file); \
00086 else \
00087 { \
00088 fprintf (asm_out_file, "\\%o", c); \
00089
00090
00091
00092
00093 \
00094 if (i < thissize - 1 && ISDIGIT(p[i + 1])) \
00095 fprintf (asm_out_file, "\"\n\t.ascii \""); \
00096 } \
00097 } \
00098 fprintf (asm_out_file, "\"\n"); \
00099 } \
00100 } \
00101 while (0)
00102 #endif
00103
00104
00105 #ifdef SET_ASM_OP
00106 #ifndef ASM_OUTPUT_DEF
00107 #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
00108 do { fprintf ((FILE), "%s", SET_ASM_OP); \
00109 assemble_name (FILE, LABEL1); \
00110 fprintf (FILE, ","); \
00111 assemble_name (FILE, LABEL2); \
00112 fprintf (FILE, "\n"); \
00113 } while (0)
00114 #endif
00115 #endif
00116
00117 #if defined (HAVE_AS_TLS) && !defined (ASM_OUTPUT_TLS_COMMON)
00118 #define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \
00119 do \
00120 { \
00121 fprintf ((FILE), "\t.tls_common\t"); \
00122 assemble_name ((FILE), (NAME)); \
00123 fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \
00124 (SIZE), DECL_ALIGN (DECL) / BITS_PER_UNIT); \
00125 } \
00126 while (0)
00127 #endif
00128
00129
00130
00131 #ifndef TARGET_DEFERRED_OUTPUT_DEFS
00132 #define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) false
00133 #endif
00134
00135
00136
00137
00138 #ifndef ASM_OUTPUT_LABEL
00139 #define ASM_OUTPUT_LABEL(FILE,NAME) \
00140 do { assemble_name ((FILE), (NAME)); fputs (":\n", (FILE)); } while (0)
00141 #endif
00142
00143
00144 #ifndef ASM_OUTPUT_INTERNAL_LABEL
00145 #define ASM_OUTPUT_INTERNAL_LABEL(FILE,NAME) \
00146 do { \
00147 assemble_name_raw ((FILE), (NAME)); \
00148 fputs (":\n", (FILE)); \
00149 } while (0)
00150 #endif
00151
00152
00153
00154 #ifndef ASM_OUTPUT_LABELREF
00155 #define ASM_OUTPUT_LABELREF(FILE,NAME) asm_fprintf ((FILE), "%U%s", (NAME))
00156 #endif
00157
00158
00159
00160
00161
00162 #ifndef ASM_OUTPUT_DEBUG_LABEL
00163 #define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \
00164 (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM)
00165 #endif
00166
00167
00168 #ifndef ASM_OUTPUT_WEAK_ALIAS
00169 #if defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_DEF)
00170 #define ASM_OUTPUT_WEAK_ALIAS(STREAM, NAME, VALUE) \
00171 do \
00172 { \
00173 ASM_WEAKEN_LABEL (STREAM, NAME); \
00174 if (VALUE) \
00175 ASM_OUTPUT_DEF (STREAM, NAME, VALUE); \
00176 } \
00177 while (0)
00178 #endif
00179 #endif
00180
00181
00182
00183
00184
00185
00186
00187 #ifndef ASM_OUTPUT_WEAKREF
00188 #if defined HAVE_GAS_WEAKREF
00189 #define ASM_OUTPUT_WEAKREF(FILE, DECL, NAME, VALUE) \
00190 do \
00191 { \
00192 fprintf ((FILE), "\t.weakref\t"); \
00193 assemble_name ((FILE), (NAME)); \
00194 fprintf ((FILE), ","); \
00195 assemble_name ((FILE), (VALUE)); \
00196 fprintf ((FILE), "\n"); \
00197 } \
00198 while (0)
00199 #endif
00200 #endif
00201
00202
00203 #ifndef ASM_OUTPUT_TYPE_DIRECTIVE
00204 #if defined TYPE_ASM_OP && defined TYPE_OPERAND_FMT
00205 #define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE) \
00206 do \
00207 { \
00208 fputs (TYPE_ASM_OP, STREAM); \
00209 assemble_name (STREAM, NAME); \
00210 fputs (", ", STREAM); \
00211 fprintf (STREAM, TYPE_OPERAND_FMT, TYPE); \
00212 putc ('\n', STREAM); \
00213 } \
00214 while (0)
00215 #endif
00216 #endif
00217
00218
00219 #ifndef ASM_OUTPUT_SIZE_DIRECTIVE
00220 #ifdef SIZE_ASM_OP
00221 #define ASM_OUTPUT_SIZE_DIRECTIVE(STREAM, NAME, SIZE) \
00222 do \
00223 { \
00224 HOST_WIDE_INT size_ = (SIZE); \
00225 fputs (SIZE_ASM_OP, STREAM); \
00226 assemble_name (STREAM, NAME); \
00227 fprintf (STREAM, ", " HOST_WIDE_INT_PRINT_DEC "\n", size_); \
00228 } \
00229 while (0)
00230
00231 #define ASM_OUTPUT_MEASURED_SIZE(STREAM, NAME) \
00232 do \
00233 { \
00234 fputs (SIZE_ASM_OP, STREAM); \
00235 assemble_name (STREAM, NAME); \
00236 fputs (", .-", STREAM); \
00237 assemble_name (STREAM, NAME); \
00238 putc ('\n', STREAM); \
00239 } \
00240 while (0)
00241
00242 #endif
00243 #endif
00244
00245
00246 #ifndef SUPPORTS_WEAK
00247 #if defined (ASM_WEAKEN_LABEL) || defined (ASM_WEAKEN_DECL)
00248 #define SUPPORTS_WEAK 1
00249 #else
00250 #define SUPPORTS_WEAK 0
00251 #endif
00252 #endif
00253
00254
00255 #ifndef SUPPORTS_ONE_ONLY
00256 #ifdef MAKE_DECL_ONE_ONLY
00257 #define SUPPORTS_ONE_ONLY 1
00258 #else
00259 #define SUPPORTS_ONE_ONLY 0
00260 #endif
00261 #endif
00262
00263
00264
00265
00266
00267
00268 #ifndef TARGET_WEAK_NOT_IN_ARCHIVE_TOC
00269 #define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 0
00270 #endif
00271
00272
00273 #ifndef TARGET_USES_WEAK_UNWIND_INFO
00274 #define TARGET_USES_WEAK_UNWIND_INFO 0
00275 #endif
00276
00277
00278 #ifndef USER_LABEL_PREFIX
00279 #define USER_LABEL_PREFIX ""
00280 #endif
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290 #ifndef TARGET_ATTRIBUTE_WEAK
00291 # if SUPPORTS_WEAK
00292 # define TARGET_ATTRIBUTE_WEAK __attribute__ ((weak))
00293 # else
00294 # define TARGET_ATTRIBUTE_WEAK
00295 # endif
00296 #endif
00297
00298
00299
00300 #ifndef USE_COMMON_FOR_ONE_ONLY
00301 # define USE_COMMON_FOR_ONE_ONLY 1
00302 #endif
00303
00304
00305
00306 #ifndef MULTIPLE_SYMBOL_SPACES
00307 # define MULTIPLE_SYMBOL_SPACES 0
00308 #endif
00309
00310
00311
00312 #ifndef SUPPORTS_INIT_PRIORITY
00313 #define SUPPORTS_INIT_PRIORITY 1
00314 #endif
00315
00316
00317
00318
00319 #ifndef LINK_ELIMINATE_DUPLICATE_LDIRECTORIES
00320 #define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 0
00321 #endif
00322
00323
00324
00325 #if !defined (DWARF2_UNWIND_INFO) && defined (INCOMING_RETURN_ADDR_RTX)
00326 #define DWARF2_UNWIND_INFO 1
00327 #endif
00328
00329
00330
00331 #if defined (TARGET_ASM_NAMED_SECTION) && DWARF2_UNWIND_INFO \
00332 && !defined(EH_FRAME_IN_DATA_SECTION)
00333 #ifndef EH_FRAME_SECTION_NAME
00334 #define EH_FRAME_SECTION_NAME ".eh_frame"
00335 #endif
00336 #endif
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350 #ifndef EH_TABLES_CAN_BE_READ_ONLY
00351 #ifdef HAVE_LD_RO_RW_SECTION_MIXING
00352 #define EH_TABLES_CAN_BE_READ_ONLY 1
00353 #else
00354 #define EH_TABLES_CAN_BE_READ_ONLY 0
00355 #endif
00356 #endif
00357
00358
00359
00360
00361 #if defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK
00362 #ifndef JCR_SECTION_NAME
00363 #define JCR_SECTION_NAME ".jcr"
00364 #endif
00365 #endif
00366
00367
00368
00369
00370
00371 #ifndef TARGET_USE_JCR_SECTION
00372 #ifdef JCR_SECTION_NAME
00373 #define TARGET_USE_JCR_SECTION 1
00374 #else
00375 #define TARGET_USE_JCR_SECTION 0
00376 #endif
00377 #endif
00378
00379
00380
00381
00382 #ifndef DWARF_FRAME_REGISTERS
00383 #define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
00384 #endif
00385
00386
00387
00388
00389 #ifndef DBX_REGISTER_NUMBER
00390 #define DBX_REGISTER_NUMBER(REGNO) (REGNO)
00391 #endif
00392
00393
00394
00395
00396
00397 #ifndef BITS_PER_UNIT
00398 #define BITS_PER_UNIT 8
00399 #endif
00400
00401 #ifndef BITS_PER_WORD
00402 #define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
00403 #endif
00404
00405 #ifndef CHAR_TYPE_SIZE
00406 #define CHAR_TYPE_SIZE BITS_PER_UNIT
00407 #endif
00408
00409 #ifndef BOOL_TYPE_SIZE
00410
00411 #define BOOL_TYPE_SIZE CHAR_TYPE_SIZE
00412 #endif
00413
00414 #ifndef SHORT_TYPE_SIZE
00415 #define SHORT_TYPE_SIZE (BITS_PER_UNIT * MIN ((UNITS_PER_WORD + 1) / 2, 2))
00416 #endif
00417
00418 #ifndef INT_TYPE_SIZE
00419 #define INT_TYPE_SIZE BITS_PER_WORD
00420 #endif
00421
00422 #ifndef LONG_TYPE_SIZE
00423 #define LONG_TYPE_SIZE BITS_PER_WORD
00424 #endif
00425
00426 #ifndef LONG_LONG_TYPE_SIZE
00427 #define LONG_LONG_TYPE_SIZE (BITS_PER_WORD * 2)
00428 #endif
00429
00430 #ifndef WCHAR_TYPE_SIZE
00431 #define WCHAR_TYPE_SIZE INT_TYPE_SIZE
00432 #endif
00433
00434 #ifndef FLOAT_TYPE_SIZE
00435 #define FLOAT_TYPE_SIZE BITS_PER_WORD
00436 #endif
00437
00438 #ifndef DOUBLE_TYPE_SIZE
00439 #define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
00440 #endif
00441
00442 #ifndef LONG_DOUBLE_TYPE_SIZE
00443 #define LONG_DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
00444 #endif
00445
00446 #ifndef DECIMAL32_TYPE_SIZE
00447 #define DECIMAL32_TYPE_SIZE 32
00448 #endif
00449
00450 #ifndef DECIMAL64_TYPE_SIZE
00451 #define DECIMAL64_TYPE_SIZE 64
00452 #endif
00453
00454 #ifndef DECIMAL128_TYPE_SIZE
00455 #define DECIMAL128_TYPE_SIZE 128
00456 #endif
00457
00458
00459 #ifndef POINTER_SIZE
00460 #define POINTER_SIZE BITS_PER_WORD
00461 #endif
00462
00463 #ifndef PIC_OFFSET_TABLE_REGNUM
00464 #define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
00465 #endif
00466
00467 #ifndef TARGET_DLLIMPORT_DECL_ATTRIBUTES
00468 #define TARGET_DLLIMPORT_DECL_ATTRIBUTES 0
00469 #endif
00470
00471 #ifndef TARGET_DECLSPEC
00472 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
00473
00474
00475 #define TARGET_DECLSPEC 1
00476 #else
00477 #define TARGET_DECLSPEC 0
00478 #endif
00479 #endif
00480
00481
00482
00483 #ifndef CPLUSPLUS_CPP_SPEC
00484 #ifdef CPP_SPEC
00485 #define CPLUSPLUS_CPP_SPEC CPP_SPEC
00486 #endif
00487 #endif
00488
00489 #ifndef ACCUMULATE_OUTGOING_ARGS
00490 #define ACCUMULATE_OUTGOING_ARGS 0
00491 #endif
00492
00493
00494 #ifndef PUSH_ARGS
00495 #ifdef PUSH_ROUNDING
00496 #define PUSH_ARGS !ACCUMULATE_OUTGOING_ARGS
00497 #else
00498 #define PUSH_ARGS 0
00499 #endif
00500 #endif
00501
00502
00503
00504
00505
00506
00507
00508 #ifdef PUSH_ROUNDING
00509
00510 #ifndef PUSH_ARGS_REVERSED
00511 #if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
00512 #define PUSH_ARGS_REVERSED PUSH_ARGS
00513 #endif
00514 #endif
00515
00516 #endif
00517
00518 #ifndef PUSH_ARGS_REVERSED
00519 #define PUSH_ARGS_REVERSED 0
00520 #endif
00521
00522
00523
00524 #ifndef PREFERRED_STACK_BOUNDARY
00525 #define PREFERRED_STACK_BOUNDARY STACK_BOUNDARY
00526 #endif
00527
00528 #ifndef TARGET_DEFAULT_PACK_STRUCT
00529 #define TARGET_DEFAULT_PACK_STRUCT 0
00530 #endif
00531
00532
00533
00534
00535
00536
00537
00538 #ifndef TARGET_VTABLE_USES_DESCRIPTORS
00539 #define TARGET_VTABLE_USES_DESCRIPTORS 0
00540 #endif
00541
00542
00543
00544
00545
00546 #ifndef TARGET_VTABLE_ENTRY_ALIGN
00547 #define TARGET_VTABLE_ENTRY_ALIGN POINTER_SIZE
00548 #endif
00549
00550
00551
00552
00553
00554 #ifndef TARGET_VTABLE_DATA_ENTRY_DISTANCE
00555 #define TARGET_VTABLE_DATA_ENTRY_DISTANCE 1
00556 #endif
00557
00558
00559
00560 #ifndef TARGET_USE_LOCAL_THUNK_ALIAS_P
00561 #ifdef ASM_OUTPUT_DEF
00562 #define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 1
00563 #else
00564 #define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 0
00565 #endif
00566 #endif
00567
00568
00569
00570
00571 #ifndef ASM_PREFERRED_EH_DATA_FORMAT
00572 #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) DW_EH_PE_absptr
00573 #endif
00574
00575
00576
00577
00578
00579
00580 #ifndef TARGET_PTRMEMFUNC_VBIT_LOCATION
00581 #define TARGET_PTRMEMFUNC_VBIT_LOCATION \
00582 (FUNCTION_BOUNDARY >= 2 * BITS_PER_UNIT \
00583 ? ptrmemfunc_vbit_in_pfn : ptrmemfunc_vbit_in_delta)
00584 #endif
00585
00586 #ifndef DEFAULT_GDB_EXTENSIONS
00587 #define DEFAULT_GDB_EXTENSIONS 1
00588 #endif
00589
00590
00591
00592
00593 #if 1 < (defined (DBX_DEBUGGING_INFO) + defined (SDB_DEBUGGING_INFO) \
00594 + defined (DWARF2_DEBUGGING_INFO) + defined (XCOFF_DEBUGGING_INFO) \
00595 + defined (VMS_DEBUGGING_INFO))
00596 #ifndef PREFERRED_DEBUGGING_TYPE
00597 #error You must define PREFERRED_DEBUGGING_TYPE
00598 #endif
00599
00600
00601
00602 #elif defined DBX_DEBUGGING_INFO
00603 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
00604
00605 #elif defined SDB_DEBUGGING_INFO
00606 #define PREFERRED_DEBUGGING_TYPE SDB_DEBUG
00607
00608 #elif defined DWARF2_DEBUGGING_INFO
00609 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
00610
00611 #elif defined VMS_DEBUGGING_INFO
00612 #define PREFERRED_DEBUGGING_TYPE VMS_AND_DWARF2_DEBUG
00613
00614 #elif defined XCOFF_DEBUGGING_INFO
00615 #define PREFERRED_DEBUGGING_TYPE XCOFF_DEBUG
00616
00617 #else
00618
00619 #define PREFERRED_DEBUGGING_TYPE NO_DEBUG
00620 #endif
00621
00622
00623 #define UNKNOWN_FLOAT_FORMAT 0
00624 #define IEEE_FLOAT_FORMAT 1
00625 #define VAX_FLOAT_FORMAT 2
00626 #define IBM_FLOAT_FORMAT 3
00627 #define C4X_FLOAT_FORMAT 4
00628
00629
00630 #ifndef TARGET_FLOAT_FORMAT
00631 #define TARGET_FLOAT_FORMAT IEEE_FLOAT_FORMAT
00632 #endif
00633
00634 #ifndef LARGEST_EXPONENT_IS_NORMAL
00635 #define LARGEST_EXPONENT_IS_NORMAL(SIZE) 0
00636 #endif
00637
00638 #ifndef ROUND_TOWARDS_ZERO
00639 #define ROUND_TOWARDS_ZERO 0
00640 #endif
00641
00642 #ifndef MODE_HAS_NANS
00643 #define MODE_HAS_NANS(MODE) \
00644 (FLOAT_MODE_P (MODE) \
00645 && TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT \
00646 && !LARGEST_EXPONENT_IS_NORMAL (GET_MODE_BITSIZE (MODE)))
00647 #endif
00648
00649 #ifndef MODE_HAS_INFINITIES
00650 #define MODE_HAS_INFINITIES(MODE) \
00651 (FLOAT_MODE_P (MODE) \
00652 && TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT \
00653 && !LARGEST_EXPONENT_IS_NORMAL (GET_MODE_BITSIZE (MODE)))
00654 #endif
00655
00656 #ifndef MODE_HAS_SIGNED_ZEROS
00657 #define MODE_HAS_SIGNED_ZEROS(MODE) \
00658 (FLOAT_MODE_P (MODE) && TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT)
00659 #endif
00660
00661 #ifndef MODE_HAS_SIGN_DEPENDENT_ROUNDING
00662 #define MODE_HAS_SIGN_DEPENDENT_ROUNDING(MODE) \
00663 (FLOAT_MODE_P (MODE) \
00664 && TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT \
00665 && !ROUND_TOWARDS_ZERO)
00666 #endif
00667
00668 #ifndef FLOAT_LIB_COMPARE_RETURNS_BOOL
00669 #define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) false
00670 #endif
00671
00672
00673
00674
00675 #ifndef TARGET_LIB_INT_CMP_BIASED
00676 #define TARGET_LIB_INT_CMP_BIASED (true)
00677 #endif
00678
00679
00680
00681 #ifndef FLOAT_WORDS_BIG_ENDIAN
00682 #define FLOAT_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
00683 #endif
00684
00685 #ifndef TARGET_FLT_EVAL_METHOD
00686 #define TARGET_FLT_EVAL_METHOD 0
00687 #endif
00688
00689 #ifndef TARGET_DEC_EVAL_METHOD
00690 #define TARGET_DEC_EVAL_METHOD 2
00691 #endif
00692
00693 #ifndef HOT_TEXT_SECTION_NAME
00694 #define HOT_TEXT_SECTION_NAME ".text.hot"
00695 #endif
00696
00697 #ifndef UNLIKELY_EXECUTED_TEXT_SECTION_NAME
00698 #define UNLIKELY_EXECUTED_TEXT_SECTION_NAME ".text.unlikely"
00699 #endif
00700
00701 #ifndef HAS_LONG_COND_BRANCH
00702 #define HAS_LONG_COND_BRANCH 0
00703 #endif
00704
00705 #ifndef HAS_LONG_UNCOND_BRANCH
00706 #define HAS_LONG_UNCOND_BRANCH 0
00707 #endif
00708
00709
00710
00711 #ifndef UNITS_PER_SIMD_WORD
00712 #define UNITS_PER_SIMD_WORD UNITS_PER_WORD
00713 #endif
00714
00715
00716
00717 #ifndef DEFAULT_USE_CXA_ATEXIT
00718 #define DEFAULT_USE_CXA_ATEXIT 0
00719 #endif
00720
00721
00722
00723
00724
00725 #if !defined CONSTRAINT_LEN \
00726 && !defined REG_CLASS_FROM_LETTER \
00727 && !defined REG_CLASS_FROM_CONSTRAINT \
00728 && !defined CONST_OK_FOR_LETTER_P \
00729 && !defined CONST_OK_FOR_CONSTRAINT_P \
00730 && !defined CONST_DOUBLE_OK_FOR_LETTER_P \
00731 && !defined CONST_DOUBLE_OK_FOR_CONSTRAINT_P \
00732 && !defined EXTRA_CONSTRAINT \
00733 && !defined EXTRA_CONSTRAINT_STR \
00734 && !defined EXTRA_MEMORY_CONSTRAINT \
00735 && !defined EXTRA_ADDRESS_CONSTRAINT
00736
00737 #define USE_MD_CONSTRAINTS
00738
00739 #if GCC_VERSION >= 3000 && defined IN_GCC
00740
00741
00742 #pragma GCC poison REG_CLASS_FROM_LETTER CONST_OK_FOR_LETTER_P \
00743 CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT
00744 #endif
00745
00746 #else
00747
00748
00749
00750 #ifndef EXTRA_MEMORY_CONSTRAINT
00751 #define EXTRA_MEMORY_CONSTRAINT(C,STR) 0
00752 #endif
00753
00754
00755
00756 #ifndef EXTRA_ADDRESS_CONSTRAINT
00757 #define EXTRA_ADDRESS_CONSTRAINT(C,STR) 0
00758 #endif
00759
00760
00761
00762
00763
00764 #define DEFAULT_CONSTRAINT_LEN(C,STR) 1
00765
00766 #ifndef CONSTRAINT_LEN
00767 #define CONSTRAINT_LEN(C,STR) DEFAULT_CONSTRAINT_LEN (C, STR)
00768 #endif
00769
00770 #if defined (CONST_OK_FOR_LETTER_P) && ! defined (CONST_OK_FOR_CONSTRAINT_P)
00771 #define CONST_OK_FOR_CONSTRAINT_P(VAL,C,STR) CONST_OK_FOR_LETTER_P (VAL, C)
00772 #endif
00773
00774 #if defined (CONST_DOUBLE_OK_FOR_LETTER_P) && ! defined (CONST_DOUBLE_OK_FOR_CONSTRAINT_P)
00775 #define CONST_DOUBLE_OK_FOR_CONSTRAINT_P(OP,C,STR) \
00776 CONST_DOUBLE_OK_FOR_LETTER_P (OP, C)
00777 #endif
00778
00779 #ifndef REG_CLASS_FROM_CONSTRAINT
00780 #define REG_CLASS_FROM_CONSTRAINT(C,STR) REG_CLASS_FROM_LETTER (C)
00781 #endif
00782
00783 #if defined (EXTRA_CONSTRAINT) && ! defined (EXTRA_CONSTRAINT_STR)
00784 #define EXTRA_CONSTRAINT_STR(OP, C,STR) EXTRA_CONSTRAINT (OP, C)
00785 #endif
00786
00787 #endif
00788
00789 #ifndef REGISTER_MOVE_COST
00790 #define REGISTER_MOVE_COST(m, x, y) 2
00791 #endif
00792
00793
00794
00795 #ifndef TARGET_C99_FUNCTIONS
00796 #define TARGET_C99_FUNCTIONS 0
00797 #endif
00798
00799
00800 #ifndef CLZ_DEFINED_VALUE_AT_ZERO
00801 #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0
00802 #endif
00803 #ifndef CTZ_DEFINED_VALUE_AT_ZERO
00804 #define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0
00805 #endif
00806
00807
00808 #ifndef STORE_FLAG_VALUE
00809 #define STORE_FLAG_VALUE 1
00810 #endif
00811
00812
00813
00814
00815
00816
00817
00818
00819 #ifndef MOVE_MAX_PIECES
00820 #define MOVE_MAX_PIECES MOVE_MAX
00821 #endif
00822
00823 #ifndef STACK_POINTER_OFFSET
00824 #define STACK_POINTER_OFFSET 0
00825 #endif
00826
00827 #ifndef LOCAL_REGNO
00828 #define LOCAL_REGNO(REGNO) 0
00829 #endif
00830
00831
00832
00833
00834 #ifndef EXIT_IGNORE_STACK
00835 #define EXIT_IGNORE_STACK 0
00836 #endif
00837
00838
00839 #ifndef CASE_VECTOR_PC_RELATIVE
00840 #define CASE_VECTOR_PC_RELATIVE 0
00841 #endif
00842
00843
00844 #ifndef TRAMPOLINE_ALIGNMENT
00845 #define TRAMPOLINE_ALIGNMENT FUNCTION_BOUNDARY
00846 #endif
00847
00848
00849 #ifndef INCOMING_REGNO
00850 #define INCOMING_REGNO(N) (N)
00851 #endif
00852
00853 #ifndef OUTGOING_REGNO
00854 #define OUTGOING_REGNO(N) (N)
00855 #endif
00856
00857 #ifndef SHIFT_COUNT_TRUNCATED
00858 #define SHIFT_COUNT_TRUNCATED 0
00859 #endif
00860
00861 #ifndef LEGITIMIZE_ADDRESS
00862 #define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
00863 #endif
00864
00865 #ifndef LEGITIMATE_PIC_OPERAND_P
00866 #define LEGITIMATE_PIC_OPERAND_P(X) 1
00867 #endif
00868
00869 #ifndef REVERSIBLE_CC_MODE
00870 #define REVERSIBLE_CC_MODE(MODE) 0
00871 #endif
00872
00873
00874 #ifndef MAX_OFILE_ALIGNMENT
00875 #define MAX_OFILE_ALIGNMENT BIGGEST_ALIGNMENT
00876 #endif
00877
00878 #ifndef FRAME_GROWS_DOWNWARD
00879 #define FRAME_GROWS_DOWNWARD 0
00880 #endif
00881
00882
00883 #ifndef ARG_POINTER_CFA_OFFSET
00884 #define ARG_POINTER_CFA_OFFSET(FNDECL) FIRST_PARM_OFFSET (FNDECL)
00885 #endif
00886
00887
00888 #ifndef CFA_FRAME_BASE_OFFSET
00889 #define CFA_FRAME_BASE_OFFSET(FNDECL) 0
00890 #endif
00891
00892
00893
00894 #ifndef INCOMING_FRAME_SP_OFFSET
00895 #define INCOMING_FRAME_SP_OFFSET 0
00896 #endif
00897
00898 #ifndef HARD_REGNO_NREGS_HAS_PADDING
00899 #define HARD_REGNO_NREGS_HAS_PADDING(REGNO, MODE) 0
00900 #define HARD_REGNO_NREGS_WITH_PADDING(REGNO, MODE) -1
00901 #endif
00902
00903 #endif