30#ifndef ASM_COMMENT_START
31#define ASM_COMMENT_START ";#"
39# ifndef NO_DOT_IN_LABEL
40# define ASM_PN_FORMAT "%s.%lu"
42# ifndef NO_DOLLAR_IN_LABEL
43# define ASM_PN_FORMAT "%s$%lu"
45# define ASM_PN_FORMAT "__%s_%lu"
50#ifndef ASM_FORMAT_PRIVATE_NAME
51# define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO) \
52 do { const char *const name_ = (NAME); \
53 char *const output_ = (OUTPUT) = \
54 (char *) alloca (strlen (name_) + 32); \
55 sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \
61#ifndef ASM_OUTPUT_ASCII
62#define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \
64 FILE *_my_file = (MYFILE); \
65 const unsigned char *_hide_p = (const unsigned char *) (MYSTRING); \
66 int _hide_thissize = (MYLENGTH); \
68 const unsigned char *p = _hide_p; \
69 int thissize = _hide_thissize; \
71 fprintf (_my_file, "\t.ascii \""); \
73 for (i = 0; i < thissize; i++) \
76 if (c == '\"' || c == '\\') \
77 putc ('\\', _my_file); \
82 fprintf (_my_file, "\\%o", c); \
83 /* After an octal-escape, if a digit follows, \
84 terminate one string constant and start another. \
85 The VAX assembler fails to stop reading the escape \
86 after three digits, so this is the only way we \
87 can get it to parse the data properly. */ \
88 if (i < thissize - 1 && ISDIGIT (p[i + 1])) \
89 fprintf (_my_file, "\"\n\t.ascii \""); \
92 fprintf (_my_file, "\"\n"); \
100#ifndef ASM_OUTPUT_DEF
101#define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2) \
102 do { fprintf ((FILE), "%s", SET_ASM_OP); \
103 assemble_name (FILE, LABEL1); \
104 fprintf (FILE, ","); \
105 assemble_name (FILE, LABEL2); \
106 fprintf (FILE, "\n"); \
111#ifndef IFUNC_ASM_TYPE
112#define IFUNC_ASM_TYPE "gnu_indirect_function"
115#ifndef TLS_COMMON_ASM_OP
116#define TLS_COMMON_ASM_OP ".tls_common"
119#if defined (HAVE_AS_TLS) && !defined (ASM_OUTPUT_TLS_COMMON)
120#define ASM_OUTPUT_TLS_COMMON(FILE, DECL, NAME, SIZE) \
123 fprintf ((FILE), "\t%s\t", TLS_COMMON_ASM_OP); \
124 assemble_name ((FILE), (NAME)); \
125 fprintf ((FILE), "," HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \
126 (SIZE), DECL_ALIGN (DECL) / BITS_PER_UNIT); \
133#ifndef TARGET_DEFERRED_OUTPUT_DEFS
134#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) false
140#ifndef ASM_OUTPUT_LABEL
141#define ASM_OUTPUT_LABEL(FILE,NAME) \
143 assemble_name ((FILE), (NAME)); \
144 fputs (":\n", (FILE)); \
151#ifndef ASM_OUTPUT_FUNCTION_LABEL
152#define ASM_OUTPUT_FUNCTION_LABEL(FILE, NAME, DECL) \
153 assemble_function_label_raw ((FILE), (NAME))
157#ifndef ASM_OUTPUT_INTERNAL_LABEL
158#define ASM_OUTPUT_INTERNAL_LABEL(FILE,NAME) \
160 assemble_name_raw ((FILE), (NAME)); \
161 fputs (":\n", (FILE)); \
167#ifndef ASM_OUTPUT_LABELREF
168#define ASM_OUTPUT_LABELREF(FILE,NAME) \
170 fputs (user_label_prefix, (FILE)); \
171 fputs ((NAME), (FILE)); \
179#ifndef ASM_OUTPUT_DEBUG_LABEL
180#define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM) \
181 (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM)
185#ifndef ASM_OUTPUT_WEAK_ALIAS
186#if defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_DEF)
187#define ASM_OUTPUT_WEAK_ALIAS(STREAM, NAME, VALUE) \
190 ASM_WEAKEN_LABEL (STREAM, NAME); \
192 ASM_OUTPUT_DEF (STREAM, NAME, VALUE); \
204#ifndef ASM_OUTPUT_WEAKREF
205#if defined HAVE_GAS_WEAKREF
206#define ASM_OUTPUT_WEAKREF(FILE, DECL, NAME, VALUE) \
209 fprintf ((FILE), "\t.weakref\t"); \
210 assemble_name ((FILE), (NAME)); \
211 fprintf ((FILE), ","); \
212 assemble_name ((FILE), (VALUE)); \
213 fprintf ((FILE), "\n"); \
220#ifndef ASM_OUTPUT_TYPE_DIRECTIVE
221#if defined TYPE_ASM_OP && defined TYPE_OPERAND_FMT
222#define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE) \
225 fputs (TYPE_ASM_OP, STREAM); \
226 assemble_name (STREAM, NAME); \
227 fputs (", ", STREAM); \
228 fprintf (STREAM, TYPE_OPERAND_FMT, TYPE); \
229 putc ('\n', STREAM); \
236#ifndef ASM_OUTPUT_SIZE_DIRECTIVE
238#define ASM_OUTPUT_SIZE_DIRECTIVE(STREAM, NAME, SIZE) \
241 HOST_WIDE_INT size_ = (SIZE); \
242 fputs (SIZE_ASM_OP, STREAM); \
243 assemble_name (STREAM, NAME); \
244 fprintf (STREAM, ", " HOST_WIDE_INT_PRINT_DEC "\n", size_); \
248#define ASM_OUTPUT_MEASURED_SIZE(STREAM, NAME) \
251 fputs (SIZE_ASM_OP, STREAM); \
252 assemble_name (STREAM, NAME); \
253 fputs (", .-", STREAM); \
254 assemble_name (STREAM, NAME); \
255 putc ('\n', STREAM); \
265#if defined (ASM_WEAKEN_LABEL) || defined (ASM_WEAKEN_DECL)
266#define SUPPORTS_WEAK 1
268#define SUPPORTS_WEAK 0
274#ifndef TARGET_SUPPORTS_WEAK
275#define TARGET_SUPPORTS_WEAK (SUPPORTS_WEAK)
280#ifndef SUPPORTS_DISCRIMINATOR
281#ifdef HAVE_GAS_DISCRIMINATOR
282#define SUPPORTS_DISCRIMINATOR 1
284#define SUPPORTS_DISCRIMINATOR 0
291#ifndef SUPPORTS_SHF_GNU_RETAIN
292#if HAVE_GAS_SHF_GNU_RETAIN && HAVE_INITFINI_ARRAY_SUPPORT
293#define SUPPORTS_SHF_GNU_RETAIN 1
295#define SUPPORTS_SHF_GNU_RETAIN 0
300#ifndef SUPPORTS_ONE_ONLY
301#ifdef MAKE_DECL_ONE_ONLY
302#define SUPPORTS_ONE_ONLY 1
304#define SUPPORTS_ONE_ONLY 0
313#ifndef TARGET_WEAK_NOT_IN_ARCHIVE_TOC
314#define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 0
318#ifndef TARGET_USES_WEAK_UNWIND_INFO
319#define TARGET_USES_WEAK_UNWIND_INFO 0
323#ifndef USER_LABEL_PREFIX
324#define USER_LABEL_PREFIX ""
335#ifndef TARGET_ATTRIBUTE_WEAK
337# define TARGET_ATTRIBUTE_WEAK __attribute__ ((weak))
339# define TARGET_ATTRIBUTE_WEAK
345#ifndef MULTIPLE_SYMBOL_SPACES
346# define MULTIPLE_SYMBOL_SPACES 0
351#ifndef SUPPORTS_INIT_PRIORITY
352#define SUPPORTS_INIT_PRIORITY 1
357#if !defined (DWARF2_UNWIND_INFO) && defined (INCOMING_RETURN_ADDR_RTX)
358#define DWARF2_UNWIND_INFO 1
363#if defined (TARGET_ASM_NAMED_SECTION) && DWARF2_UNWIND_INFO \
364 && !defined (EH_FRAME_THROUGH_COLLECT2)
365#ifndef EH_FRAME_SECTION_NAME
366#define EH_FRAME_SECTION_NAME ".eh_frame"
382#ifndef EH_TABLES_CAN_BE_READ_ONLY
383#ifdef HAVE_LD_RO_RW_SECTION_MIXING
384#define EH_TABLES_CAN_BE_READ_ONLY 1
386#define EH_TABLES_CAN_BE_READ_ONLY 0
392#ifndef EH_RETURN_DATA_REGNO
393#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
397#ifndef RETURN_ADDR_OFFSET
398#define RETURN_ADDR_OFFSET 0
401#ifndef MASK_RETURN_ADDR
402#define MASK_RETURN_ADDR NULL_RTX
408#ifndef DWARF_FRAME_REGISTERS
409#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
413#ifndef DWARF_CIE_DATA_ALIGNMENT
414#ifdef STACK_GROWS_DOWNWARD
415#define DWARF_CIE_DATA_ALIGNMENT (-((int) UNITS_PER_WORD))
417#define DWARF_CIE_DATA_ALIGNMENT ((int) UNITS_PER_WORD)
424#ifndef DWARF_FRAME_RETURN_COLUMN
426#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PC_REGNUM)
428#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGISTERS
435#ifndef DEBUGGER_REGNO
436#define DEBUGGER_REGNO(REGNO) (REGNO)
441#ifndef DWARF_FRAME_REGNUM
442#define DWARF_FRAME_REGNUM(REG) DEBUGGER_REGNO (REG)
446#ifndef DWARF_REG_TO_UNWIND_COLUMN
447#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
453#ifndef DWARF2_FRAME_REG_OUT
454#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
462#ifndef DWARF2_ADDR_SIZE
463#define DWARF2_ADDR_SIZE ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT)
470#ifndef DWARF_OFFSET_SIZE
471#define DWARF_OFFSET_SIZE 4
475#ifndef DWARF_TYPE_SIGNATURE_SIZE
476#define DWARF_TYPE_SIGNATURE_SIZE 8
484#define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
487#ifndef CHAR_TYPE_SIZE
488#define CHAR_TYPE_SIZE BITS_PER_UNIT
491#ifndef BOOL_TYPE_SIZE
493#define BOOL_TYPE_SIZE CHAR_TYPE_SIZE
496#ifndef SHORT_TYPE_SIZE
497#define SHORT_TYPE_SIZE (BITS_PER_UNIT * MIN ((UNITS_PER_WORD + 1) / 2, 2))
501#define INT_TYPE_SIZE BITS_PER_WORD
504#ifndef LONG_TYPE_SIZE
505#define LONG_TYPE_SIZE BITS_PER_WORD
508#ifndef LONG_LONG_TYPE_SIZE
509#define LONG_LONG_TYPE_SIZE (BITS_PER_WORD * 2)
512#ifndef WCHAR_TYPE_SIZE
513#define WCHAR_TYPE_SIZE INT_TYPE_SIZE
516#ifndef FLOAT_TYPE_SIZE
517#define FLOAT_TYPE_SIZE BITS_PER_WORD
520#ifndef DOUBLE_TYPE_SIZE
521#define DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
524#ifndef LONG_DOUBLE_TYPE_SIZE
525#define LONG_DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
528#ifndef DECIMAL32_TYPE_SIZE
529#define DECIMAL32_TYPE_SIZE 32
532#ifndef DECIMAL64_TYPE_SIZE
533#define DECIMAL64_TYPE_SIZE 64
536#ifndef DECIMAL128_TYPE_SIZE
537#define DECIMAL128_TYPE_SIZE 128
540#ifndef SHORT_FRACT_TYPE_SIZE
541#define SHORT_FRACT_TYPE_SIZE BITS_PER_UNIT
544#ifndef FRACT_TYPE_SIZE
545#define FRACT_TYPE_SIZE (BITS_PER_UNIT * 2)
548#ifndef LONG_FRACT_TYPE_SIZE
549#define LONG_FRACT_TYPE_SIZE (BITS_PER_UNIT * 4)
552#ifndef LONG_LONG_FRACT_TYPE_SIZE
553#define LONG_LONG_FRACT_TYPE_SIZE (BITS_PER_UNIT * 8)
556#ifndef SHORT_ACCUM_TYPE_SIZE
557#define SHORT_ACCUM_TYPE_SIZE (SHORT_FRACT_TYPE_SIZE * 2)
560#ifndef ACCUM_TYPE_SIZE
561#define ACCUM_TYPE_SIZE (FRACT_TYPE_SIZE * 2)
564#ifndef LONG_ACCUM_TYPE_SIZE
565#define LONG_ACCUM_TYPE_SIZE (LONG_FRACT_TYPE_SIZE * 2)
568#ifndef LONG_LONG_ACCUM_TYPE_SIZE
569#define LONG_LONG_ACCUM_TYPE_SIZE (LONG_LONG_FRACT_TYPE_SIZE * 2)
579#define SIZE_TYPE "long unsigned int"
583#define SIZETYPE SIZE_TYPE
587#define PID_TYPE "int"
597#define CHAR8_TYPE "unsigned char"
600#ifdef UINT_LEAST16_TYPE
601#define CHAR16_TYPE UINT_LEAST16_TYPE
603#define CHAR16_TYPE "short unsigned int"
606#ifdef UINT_LEAST32_TYPE
607#define CHAR32_TYPE UINT_LEAST32_TYPE
609#define CHAR32_TYPE "unsigned int"
613#define WCHAR_TYPE "int"
617#define MODIFIED_WCHAR_TYPE \
618 (flag_short_wchar ? "short unsigned int" : WCHAR_TYPE)
621#define PTRDIFF_TYPE "long int"
625#define WINT_TYPE "unsigned int"
629#define INTMAX_TYPE ((INT_TYPE_SIZE == LONG_LONG_TYPE_SIZE) \
631 : ((LONG_TYPE_SIZE == LONG_LONG_TYPE_SIZE) \
637#define UINTMAX_TYPE ((INT_TYPE_SIZE == LONG_LONG_TYPE_SIZE) \
639 : ((LONG_TYPE_SIZE == LONG_LONG_TYPE_SIZE) \
640 ? "long unsigned int" \
641 : "long long unsigned int"))
647#ifndef SIG_ATOMIC_TYPE
648#define SIG_ATOMIC_TYPE ((const char *) NULL)
652#define INT8_TYPE ((const char *) NULL)
656#define INT16_TYPE ((const char *) NULL)
660#define INT32_TYPE ((const char *) NULL)
664#define INT64_TYPE ((const char *) NULL)
668#define UINT8_TYPE ((const char *) NULL)
672#define UINT16_TYPE ((const char *) NULL)
676#define UINT32_TYPE ((const char *) NULL)
680#define UINT64_TYPE ((const char *) NULL)
683#ifndef INT_LEAST8_TYPE
684#define INT_LEAST8_TYPE ((const char *) NULL)
687#ifndef INT_LEAST16_TYPE
688#define INT_LEAST16_TYPE ((const char *) NULL)
691#ifndef INT_LEAST32_TYPE
692#define INT_LEAST32_TYPE ((const char *) NULL)
695#ifndef INT_LEAST64_TYPE
696#define INT_LEAST64_TYPE ((const char *) NULL)
699#ifndef UINT_LEAST8_TYPE
700#define UINT_LEAST8_TYPE ((const char *) NULL)
703#ifndef UINT_LEAST16_TYPE
704#define UINT_LEAST16_TYPE ((const char *) NULL)
707#ifndef UINT_LEAST32_TYPE
708#define UINT_LEAST32_TYPE ((const char *) NULL)
711#ifndef UINT_LEAST64_TYPE
712#define UINT_LEAST64_TYPE ((const char *) NULL)
715#ifndef INT_FAST8_TYPE
716#define INT_FAST8_TYPE ((const char *) NULL)
719#ifndef INT_FAST16_TYPE
720#define INT_FAST16_TYPE ((const char *) NULL)
723#ifndef INT_FAST32_TYPE
724#define INT_FAST32_TYPE ((const char *) NULL)
727#ifndef INT_FAST64_TYPE
728#define INT_FAST64_TYPE ((const char *) NULL)
731#ifndef UINT_FAST8_TYPE
732#define UINT_FAST8_TYPE ((const char *) NULL)
735#ifndef UINT_FAST16_TYPE
736#define UINT_FAST16_TYPE ((const char *) NULL)
739#ifndef UINT_FAST32_TYPE
740#define UINT_FAST32_TYPE ((const char *) NULL)
743#ifndef UINT_FAST64_TYPE
744#define UINT_FAST64_TYPE ((const char *) NULL)
748#define INTPTR_TYPE ((const char *) NULL)
752#define UINTPTR_TYPE ((const char *) NULL)
757#define POINTER_SIZE BITS_PER_WORD
759#ifndef POINTER_SIZE_UNITS
760#define POINTER_SIZE_UNITS ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT)
764#ifndef PIC_OFFSET_TABLE_REGNUM
765#define PIC_OFFSET_TABLE_REGNUM INVALID_REGNUM
768#ifndef PIC_OFFSET_TABLE_REG_CALL_CLOBBERED
769#define PIC_OFFSET_TABLE_REG_CALL_CLOBBERED 0
772#ifndef TARGET_DLLIMPORT_DECL_ATTRIBUTES
773#define TARGET_DLLIMPORT_DECL_ATTRIBUTES 0
776#ifndef TARGET_DECLSPEC
777#if TARGET_DLLIMPORT_DECL_ATTRIBUTES
780#define TARGET_DECLSPEC 1
782#define TARGET_DECLSPEC 0
788#ifndef CPLUSPLUS_CPP_SPEC
790#define CPLUSPLUS_CPP_SPEC CPP_SPEC
794#ifndef ACCUMULATE_OUTGOING_ARGS
795#define ACCUMULATE_OUTGOING_ARGS 0
799#ifndef NEXT_OBJC_RUNTIME
800#define NEXT_OBJC_RUNTIME 0
811#ifndef PUSH_ARGS_REVERSED
812#if defined (STACK_GROWS_DOWNWARD) != defined (ARGS_GROW_DOWNWARD)
813#define PUSH_ARGS_REVERSED targetm.calls.push_argument (0)
819#ifndef PUSH_ARGS_REVERSED
820#define PUSH_ARGS_REVERSED 0
825#ifndef MALLOC_ABI_ALIGNMENT
826#define MALLOC_ABI_ALIGNMENT BITS_PER_WORD
831#ifndef PREFERRED_STACK_BOUNDARY
832#define PREFERRED_STACK_BOUNDARY STACK_BOUNDARY
837#ifndef INCOMING_STACK_BOUNDARY
838#define INCOMING_STACK_BOUNDARY PREFERRED_STACK_BOUNDARY
841#ifndef TARGET_DEFAULT_PACK_STRUCT
842#define TARGET_DEFAULT_PACK_STRUCT 0
849#ifndef TARGET_VTABLE_ENTRY_ALIGN
850#define TARGET_VTABLE_ENTRY_ALIGN POINTER_SIZE
857#ifndef TARGET_VTABLE_DATA_ENTRY_DISTANCE
858#define TARGET_VTABLE_DATA_ENTRY_DISTANCE 1
863#ifndef TARGET_USE_LOCAL_THUNK_ALIAS_P
865#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 1
867#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) 0
872#ifndef TARGET_SUPPORTS_ALIASES
874#define TARGET_SUPPORTS_ALIASES 1
876#define TARGET_SUPPORTS_ALIASES 0
885#ifndef TARGET_HAS_FMV_TARGET_ATTRIBUTE
886#define TARGET_HAS_FMV_TARGET_ATTRIBUTE 1
893#ifndef ASM_PREFERRED_EH_DATA_FORMAT
894#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) DW_EH_PE_absptr
902#ifndef TARGET_PTRMEMFUNC_VBIT_LOCATION
903#define TARGET_PTRMEMFUNC_VBIT_LOCATION \
904 (FUNCTION_BOUNDARY >= 2 * BITS_PER_UNIT \
905 ? ptrmemfunc_vbit_in_pfn : ptrmemfunc_vbit_in_delta)
908#ifndef DEFAULT_GDB_EXTENSIONS
909#define DEFAULT_GDB_EXTENSIONS 1
914#ifndef PREFERRED_DEBUGGING_TYPE
915#if defined DWARF2_DEBUGGING_INFO || defined DWARF2_LINENO_DEBUGGING_INFO
916#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
918#error You must define PREFERRED_DEBUGGING_TYPE if DWARF is not supported
922#ifndef FLOAT_LIB_COMPARE_RETURNS_BOOL
923#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) false
929#ifndef TARGET_LIB_INT_CMP_BIASED
930#define TARGET_LIB_INT_CMP_BIASED (true)
935#ifndef FLOAT_WORDS_BIG_ENDIAN
936#define FLOAT_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
939#ifndef REG_WORDS_BIG_ENDIAN
940#define REG_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN
944#ifndef TARGET_DEC_EVAL_METHOD
945#define TARGET_DEC_EVAL_METHOD 2
948#ifndef HAS_LONG_COND_BRANCH
949#define HAS_LONG_COND_BRANCH 0
952#ifndef HAS_LONG_UNCOND_BRANCH
953#define HAS_LONG_UNCOND_BRANCH 0
958#ifndef DEFAULT_USE_CXA_ATEXIT
959#define DEFAULT_USE_CXA_ATEXIT 0
962#if GCC_VERSION >= 3000 && defined IN_GCC
968#ifndef TARGET_HAS_BIONIC
969#define TARGET_HAS_BIONIC 0
973#ifndef CLZ_DEFINED_VALUE_AT_ZERO
974#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0
976#ifndef CTZ_DEFINED_VALUE_AT_ZERO
977#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) 0
981#ifndef STORE_FLAG_VALUE
982#define STORE_FLAG_VALUE 1
992#ifndef MOVE_MAX_PIECES
993#define MOVE_MAX_PIECES MOVE_MAX
1001#ifndef STORE_MAX_PIECES
1002#define STORE_MAX_PIECES MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT))
1006#ifndef COMPARE_MAX_PIECES
1007#define COMPARE_MAX_PIECES MOVE_MAX_PIECES
1011#define MAX_MOVE_MAX MOVE_MAX
1014#ifndef MIN_UNITS_PER_WORD
1015#define MIN_UNITS_PER_WORD UNITS_PER_WORD
1018#ifndef MAX_BITS_PER_WORD
1019#define MAX_BITS_PER_WORD BITS_PER_WORD
1022#ifndef STACK_POINTER_OFFSET
1023#define STACK_POINTER_OFFSET 0
1027#define LOCAL_REGNO(REGNO) 0
1030#ifndef HONOR_REG_ALLOC_ORDER
1031#define HONOR_REG_ALLOC_ORDER 0
1037#ifndef EXIT_IGNORE_STACK
1038#define EXIT_IGNORE_STACK 0
1042#ifndef CASE_VECTOR_PC_RELATIVE
1043#define CASE_VECTOR_PC_RELATIVE 0
1048#define FUNCTION_ALIGNMENT(ALIGN) \
1049 (lang_hooks.custom_function_descriptors \
1050 && targetm.calls.custom_function_descriptors > 0 \
1052 2 * targetm.calls.custom_function_descriptors * BITS_PER_UNIT)\
1056#ifndef TRAMPOLINE_ALIGNMENT
1057#define TRAMPOLINE_ALIGNMENT FUNCTION_ALIGNMENT (FUNCTION_BOUNDARY)
1061#ifndef INCOMING_REGNO
1062#define INCOMING_REGNO(N) (N)
1065#ifndef OUTGOING_REGNO
1066#define OUTGOING_REGNO(N) (N)
1069#ifndef SHIFT_COUNT_TRUNCATED
1070#define SHIFT_COUNT_TRUNCATED 0
1073#ifndef LEGITIMATE_PIC_OPERAND_P
1074#define LEGITIMATE_PIC_OPERAND_P(X) 1
1077#ifndef TARGET_MEM_CONSTRAINT
1078#define TARGET_MEM_CONSTRAINT 'm'
1081#ifndef REVERSIBLE_CC_MODE
1082#define REVERSIBLE_CC_MODE(MODE) 0
1086#ifndef MAX_OFILE_ALIGNMENT
1087#define MAX_OFILE_ALIGNMENT BIGGEST_ALIGNMENT
1090#ifndef FRAME_GROWS_DOWNWARD
1091#define FRAME_GROWS_DOWNWARD 0
1094#ifndef RETURN_ADDR_IN_PREVIOUS_FRAME
1095#define RETURN_ADDR_IN_PREVIOUS_FRAME 0
1099#ifndef ARG_POINTER_CFA_OFFSET
1100#define ARG_POINTER_CFA_OFFSET(FNDECL) \
1101 (FIRST_PARM_OFFSET (FNDECL) + crtl->args.pretend_args_size)
1105#ifndef CFA_FRAME_BASE_OFFSET
1106#define CFA_FRAME_BASE_OFFSET(FNDECL) 0
1111#ifndef INCOMING_FRAME_SP_OFFSET
1112#define INCOMING_FRAME_SP_OFFSET 0
1115#ifndef HARD_REGNO_NREGS_HAS_PADDING
1116#define HARD_REGNO_NREGS_HAS_PADDING(REGNO, MODE) 0
1117#define HARD_REGNO_NREGS_WITH_PADDING(REGNO, MODE) -1
1120#ifndef OUTGOING_REG_PARM_STACK_SPACE
1121#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 0
1130#ifdef MAX_STACK_ALIGNMENT
1131#define MAX_SUPPORTED_STACK_ALIGNMENT MAX_STACK_ALIGNMENT
1133#define MAX_STACK_ALIGNMENT STACK_BOUNDARY
1134#define MAX_SUPPORTED_STACK_ALIGNMENT PREFERRED_STACK_BOUNDARY
1137#define SUPPORTS_STACK_ALIGNMENT (MAX_STACK_ALIGNMENT > STACK_BOUNDARY)
1139#ifndef LOCAL_ALIGNMENT
1140#define LOCAL_ALIGNMENT(TYPE, ALIGNMENT) ALIGNMENT
1143#ifndef STACK_SLOT_ALIGNMENT
1144#define STACK_SLOT_ALIGNMENT(TYPE,MODE,ALIGN) \
1145 ((TYPE) ? LOCAL_ALIGNMENT ((TYPE), (ALIGN)) : (ALIGN))
1148#ifndef LOCAL_DECL_ALIGNMENT
1149#define LOCAL_DECL_ALIGNMENT(DECL) \
1150 LOCAL_ALIGNMENT (TREE_TYPE (DECL), DECL_ALIGN (DECL))
1153#ifndef MINIMUM_ALIGNMENT
1154#define MINIMUM_ALIGNMENT(EXP,MODE,ALIGN) (ALIGN)
1158#ifndef ATTRIBUTE_ALIGNED_VALUE
1159#define ATTRIBUTE_ALIGNED_VALUE BIGGEST_ALIGNMENT
1164#ifndef CONSTANT_ADDRESS_P
1165#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
1168#ifndef MAX_FIXED_MODE_SIZE
1169#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (DImode)
1177#ifndef DEFAULT_PCC_STRUCT_RETURN
1178#define DEFAULT_PCC_STRUCT_RETURN 1
1181#ifndef PCC_BITFIELD_TYPE_MATTERS
1182#define PCC_BITFIELD_TYPE_MATTERS false
1185#ifndef INSN_SETS_ARE_DELAYED
1186#define INSN_SETS_ARE_DELAYED(INSN) false
1189#ifndef INSN_REFERENCES_ARE_DELAYED
1190#define INSN_REFERENCES_ARE_DELAYED(INSN) false
1193#ifndef NO_FUNCTION_CSE
1194#define NO_FUNCTION_CSE false
1197#ifndef HARD_REGNO_RENAME_OK
1198#define HARD_REGNO_RENAME_OK(FROM, TO) true
1201#ifndef EPILOGUE_USES
1202#define EPILOGUE_USES(REG) false
1205#ifndef ARGS_GROW_DOWNWARD
1206#define ARGS_GROW_DOWNWARD 0
1209#ifndef STACK_GROWS_DOWNWARD
1210#define STACK_GROWS_DOWNWARD 0
1213#ifndef STACK_PUSH_CODE
1214#if STACK_GROWS_DOWNWARD
1215#define STACK_PUSH_CODE PRE_DEC
1217#define STACK_PUSH_CODE PRE_INC
1225#ifdef ENABLE_DEFAULT_PIE
1226# ifndef DEFAULT_FLAG_PIE
1227# define DEFAULT_FLAG_PIE 2
1230# define DEFAULT_FLAG_PIE 0
1233#ifndef SWITCHABLE_TARGET
1234#define SWITCHABLE_TARGET 0
1241#ifndef TARGET_SUPPORTS_WIDE_INT
1242#define TARGET_SUPPORTS_WIDE_INT 0
1245#ifndef SHORT_IMMEDIATES_SIGN_EXTEND
1246#define SHORT_IMMEDIATES_SIGN_EXTEND 0
1249#ifndef WORD_REGISTER_OPERATIONS
1250#define WORD_REGISTER_OPERATIONS 0
1253#ifndef LOAD_EXTEND_OP
1254#define LOAD_EXTEND_OP(M) UNKNOWN
1257#ifndef INITIAL_FRAME_ADDRESS_RTX
1258#define INITIAL_FRAME_ADDRESS_RTX NULL
1261#ifndef SETUP_FRAME_ADDRESSES
1262#define SETUP_FRAME_ADDRESSES() do { } while (0)
1265#ifndef DYNAMIC_CHAIN_ADDRESS
1266#define DYNAMIC_CHAIN_ADDRESS(x) (x)
1269#ifndef FRAME_ADDR_RTX
1270#define FRAME_ADDR_RTX(x) (x)
1273#ifndef REVERSE_CONDITION
1274#define REVERSE_CONDITION(code, mode) reverse_condition (code)
1277#ifndef TARGET_PECOFF
1278#define TARGET_PECOFF 0
1282#define TARGET_COFF 0
1285#ifndef EH_RETURN_HANDLER_RTX
1286#define EH_RETURN_HANDLER_RTX NULL
1289#ifdef GCC_INSN_FLAGS_H
1309#define BRANCH_COST(speed_p, predictable_p) 1
1316#if defined (HAVE_cpymemqi) || defined (HAVE_cpymemhi) || defined (HAVE_cpymemsi) || defined (HAVE_cpymemdi) || defined (HAVE_cpymemti)
1317#define MOVE_RATIO(speed) 2
1320#define MOVE_RATIO(speed) ((speed) ? 15 : 3)
1328#if defined (HAVE_setmemqi) || defined (HAVE_setmemhi) || defined (HAVE_setmemsi) || defined (HAVE_setmemdi) || defined (HAVE_setmemti)
1329#define CLEAR_RATIO(speed) 2
1332#define CLEAR_RATIO(speed) ((speed) ? 15 :3)
1340#define SET_RATIO(speed) MOVE_RATIO (speed)
1346#ifndef STACK_SAVEAREA_MODE
1347#define STACK_SAVEAREA_MODE(LEVEL) Pmode
1353#ifndef STACK_SIZE_MODE
1354#define STACK_SIZE_MODE word_mode
1361#ifdef ENABLE_DEFAULT_SSP
1362# ifndef DEFAULT_FLAG_SSP
1363# define DEFAULT_FLAG_SSP 3
1366# define DEFAULT_FLAG_SSP 0
1372#ifndef STACK_CHECK_BUILTIN
1373#define STACK_CHECK_BUILTIN 0
1377#ifndef STACK_CHECK_STATIC_BUILTIN
1378#define STACK_CHECK_STATIC_BUILTIN 0
1382#ifndef STACK_CHECK_PROBE_INTERVAL_EXP
1383#define STACK_CHECK_PROBE_INTERVAL_EXP 12
1387#ifndef STACK_CHECK_MOVING_SP
1388#define STACK_CHECK_MOVING_SP 0
1396#ifdef STACK_CHECK_PROTECT
1397#define STACK_OLD_CHECK_PROTECT STACK_CHECK_PROTECT
1399#define STACK_OLD_CHECK_PROTECT \
1400 (!global_options.x_flag_exceptions \
1401 ? 75 * UNITS_PER_WORD \
1402 : targetm_common.except_unwind_info (&global_options) == UI_SJLJ \
1410#ifndef STACK_CHECK_PROTECT
1411#define STACK_CHECK_PROTECT \
1412 (!global_options.x_flag_exceptions \
1414 : targetm_common.except_unwind_info (&global_options) == UI_SJLJ \
1421#ifndef STACK_CHECK_MAX_FRAME_SIZE
1422#define STACK_CHECK_MAX_FRAME_SIZE \
1423 ((1 << STACK_CHECK_PROBE_INTERVAL_EXP) - UNITS_PER_WORD)
1427#ifndef STACK_CHECK_FIXED_FRAME_SIZE
1428#define STACK_CHECK_FIXED_FRAME_SIZE (4 * UNITS_PER_WORD)
1434#ifndef STACK_CHECK_MAX_VAR_SIZE
1435#define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100)
1444#ifndef TARGET_VTABLE_USES_DESCRIPTORS
1445#define TARGET_VTABLE_USES_DESCRIPTORS 0
1450#ifndef DWARF_GNAT_ENCODINGS_DEFAULT
1451#define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB
1456#ifndef DWARF_VERSION_DEFAULT
1457#define DWARF_VERSION_DEFAULT 5
1460#ifndef USED_FOR_TARGET
1462#if BITS_PER_UNIT == 8
1463#define TARGET_UNIT uint8_t
1464#elif BITS_PER_UNIT == 16
1465#define TARGET_UNIT uint16_t
1466#elif BITS_PER_UNIT == 32
1467#define TARGET_UNIT uint32_t
1469#error Unknown BITS_PER_UNIT
TARGET_UNIT target_unit
Definition defaults.h:1467
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184