GCC Middle and Back End API Reference
defaults.h File Reference

Go to the source code of this file.

Macros

#define ASM_COMMENT_START   ";#"
 
#define ASM_PN_FORMAT   "%s.%lu"
 
#define ASM_FORMAT_PRIVATE_NAME(OUTPUT, NAME, LABELNO)
 
#define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH)
 
#define IFUNC_ASM_TYPE   "gnu_indirect_function"
 
#define TLS_COMMON_ASM_OP   ".tls_common"
 
#define TARGET_DEFERRED_OUTPUT_DEFS(DECL, TARGET)   false
 
#define ASM_OUTPUT_LABEL(FILE, NAME)
 
#define ASM_OUTPUT_FUNCTION_LABEL(FILE, NAME, DECL)    assemble_function_label_raw ((FILE), (NAME))
 
#define ASM_OUTPUT_INTERNAL_LABEL(FILE, NAME)
 
#define ASM_OUTPUT_LABELREF(FILE, NAME)
 
#define ASM_OUTPUT_DEBUG_LABEL(FILE, PREFIX, NUM)    (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM)
 
#define SUPPORTS_WEAK   0
 
#define TARGET_SUPPORTS_WEAK   (SUPPORTS_WEAK)
 
#define SUPPORTS_DISCRIMINATOR   0
 
#define SUPPORTS_SHF_GNU_RETAIN   0
 
#define SUPPORTS_ONE_ONLY   0
 
#define TARGET_WEAK_NOT_IN_ARCHIVE_TOC   0
 
#define TARGET_USES_WEAK_UNWIND_INFO   0
 
#define USER_LABEL_PREFIX   ""
 
#define TARGET_ATTRIBUTE_WEAK
 
#define MULTIPLE_SYMBOL_SPACES   0
 
#define SUPPORTS_INIT_PRIORITY   1
 
#define EH_TABLES_CAN_BE_READ_ONLY   0
 
#define EH_RETURN_DATA_REGNO(N)   INVALID_REGNUM
 
#define RETURN_ADDR_OFFSET   0
 
#define MASK_RETURN_ADDR   NULL_RTX
 
#define DWARF_FRAME_REGISTERS   FIRST_PSEUDO_REGISTER
 
#define DWARF_CIE_DATA_ALIGNMENT   ((int) UNITS_PER_WORD)
 
#define DWARF_FRAME_RETURN_COLUMN   DWARF_FRAME_REGISTERS
 
#define DEBUGGER_REGNO(REGNO)   (REGNO)
 
#define DWARF_FRAME_REGNUM(REG)   DEBUGGER_REGNO (REG)
 
#define DWARF_REG_TO_UNWIND_COLUMN(REGNO)   (REGNO)
 
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH)   (REGNO)
 
#define DWARF2_ADDR_SIZE   ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT)
 
#define DWARF_OFFSET_SIZE   4
 
#define DWARF_TYPE_SIGNATURE_SIZE   8
 
#define BITS_PER_WORD   (BITS_PER_UNIT * UNITS_PER_WORD)
 
#define CHAR_TYPE_SIZE   BITS_PER_UNIT
 
#define BOOL_TYPE_SIZE   CHAR_TYPE_SIZE
 
#define SHORT_TYPE_SIZE   (BITS_PER_UNIT * MIN ((UNITS_PER_WORD + 1) / 2, 2))
 
#define INT_TYPE_SIZE   BITS_PER_WORD
 
#define LONG_TYPE_SIZE   BITS_PER_WORD
 
#define LONG_LONG_TYPE_SIZE   (BITS_PER_WORD * 2)
 
#define WCHAR_TYPE_SIZE   INT_TYPE_SIZE
 
#define FLOAT_TYPE_SIZE   BITS_PER_WORD
 
#define DOUBLE_TYPE_SIZE   (BITS_PER_WORD * 2)
 
#define LONG_DOUBLE_TYPE_SIZE   (BITS_PER_WORD * 2)
 
#define DECIMAL32_TYPE_SIZE   32
 
#define DECIMAL64_TYPE_SIZE   64
 
#define DECIMAL128_TYPE_SIZE   128
 
#define SHORT_FRACT_TYPE_SIZE   BITS_PER_UNIT
 
#define FRACT_TYPE_SIZE   (BITS_PER_UNIT * 2)
 
#define LONG_FRACT_TYPE_SIZE   (BITS_PER_UNIT * 4)
 
#define LONG_LONG_FRACT_TYPE_SIZE   (BITS_PER_UNIT * 8)
 
#define SHORT_ACCUM_TYPE_SIZE   (SHORT_FRACT_TYPE_SIZE * 2)
 
#define ACCUM_TYPE_SIZE   (FRACT_TYPE_SIZE * 2)
 
#define LONG_ACCUM_TYPE_SIZE   (LONG_FRACT_TYPE_SIZE * 2)
 
#define LONG_LONG_ACCUM_TYPE_SIZE   (LONG_LONG_FRACT_TYPE_SIZE * 2)
 
#define SIZE_TYPE   "long unsigned int"
 
#define SIZETYPE   SIZE_TYPE
 
#define PID_TYPE   "int"
 
#define CHAR8_TYPE   "unsigned char"
 
#define CHAR16_TYPE   "short unsigned int"
 
#define CHAR32_TYPE   "unsigned int"
 
#define WCHAR_TYPE   "int"
 
#define MODIFIED_WCHAR_TYPE    (flag_short_wchar ? "short unsigned int" : WCHAR_TYPE)
 
#define PTRDIFF_TYPE   "long int"
 
#define WINT_TYPE   "unsigned int"
 
#define INTMAX_TYPE
 
#define UINTMAX_TYPE
 
#define SIG_ATOMIC_TYPE   ((const char *) NULL)
 
#define INT8_TYPE   ((const char *) NULL)
 
#define INT16_TYPE   ((const char *) NULL)
 
#define INT32_TYPE   ((const char *) NULL)
 
#define INT64_TYPE   ((const char *) NULL)
 
#define UINT8_TYPE   ((const char *) NULL)
 
#define UINT16_TYPE   ((const char *) NULL)
 
#define UINT32_TYPE   ((const char *) NULL)
 
#define UINT64_TYPE   ((const char *) NULL)
 
#define INT_LEAST8_TYPE   ((const char *) NULL)
 
#define INT_LEAST16_TYPE   ((const char *) NULL)
 
#define INT_LEAST32_TYPE   ((const char *) NULL)
 
#define INT_LEAST64_TYPE   ((const char *) NULL)
 
#define UINT_LEAST8_TYPE   ((const char *) NULL)
 
#define UINT_LEAST16_TYPE   ((const char *) NULL)
 
#define UINT_LEAST32_TYPE   ((const char *) NULL)
 
#define UINT_LEAST64_TYPE   ((const char *) NULL)
 
#define INT_FAST8_TYPE   ((const char *) NULL)
 
#define INT_FAST16_TYPE   ((const char *) NULL)
 
#define INT_FAST32_TYPE   ((const char *) NULL)
 
#define INT_FAST64_TYPE   ((const char *) NULL)
 
#define UINT_FAST8_TYPE   ((const char *) NULL)
 
#define UINT_FAST16_TYPE   ((const char *) NULL)
 
#define UINT_FAST32_TYPE   ((const char *) NULL)
 
#define UINT_FAST64_TYPE   ((const char *) NULL)
 
#define INTPTR_TYPE   ((const char *) NULL)
 
#define UINTPTR_TYPE   ((const char *) NULL)
 
#define POINTER_SIZE   BITS_PER_WORD
 
#define POINTER_SIZE_UNITS   ((POINTER_SIZE + BITS_PER_UNIT - 1) / BITS_PER_UNIT)
 
#define PIC_OFFSET_TABLE_REGNUM   INVALID_REGNUM
 
#define PIC_OFFSET_TABLE_REG_CALL_CLOBBERED   0
 
#define TARGET_DLLIMPORT_DECL_ATTRIBUTES   0
 
#define TARGET_DECLSPEC   0
 
#define ACCUMULATE_OUTGOING_ARGS   0
 
#define NEXT_OBJC_RUNTIME   0
 
#define PUSH_ARGS_REVERSED   0
 
#define MALLOC_ABI_ALIGNMENT   BITS_PER_WORD
 
#define PREFERRED_STACK_BOUNDARY   STACK_BOUNDARY
 
#define INCOMING_STACK_BOUNDARY   PREFERRED_STACK_BOUNDARY
 
#define TARGET_DEFAULT_PACK_STRUCT   0
 
#define TARGET_VTABLE_ENTRY_ALIGN   POINTER_SIZE
 
#define TARGET_VTABLE_DATA_ENTRY_DISTANCE   1
 
#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL)   0
 
#define TARGET_SUPPORTS_ALIASES   0
 
#define TARGET_HAS_FMV_TARGET_ATTRIBUTE   1
 
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)   DW_EH_PE_absptr
 
#define TARGET_PTRMEMFUNC_VBIT_LOCATION
 
#define DEFAULT_GDB_EXTENSIONS   1
 
#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON)   false
 
#define TARGET_LIB_INT_CMP_BIASED   (true)
 
#define FLOAT_WORDS_BIG_ENDIAN   WORDS_BIG_ENDIAN
 
#define REG_WORDS_BIG_ENDIAN   WORDS_BIG_ENDIAN
 
#define TARGET_DEC_EVAL_METHOD   2
 
#define HAS_LONG_COND_BRANCH   0
 
#define HAS_LONG_UNCOND_BRANCH   0
 
#define DEFAULT_USE_CXA_ATEXIT   0
 
#define TARGET_HAS_BIONIC   0
 
#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE)   0
 
#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE)   0
 
#define STORE_FLAG_VALUE   1
 
#define MOVE_MAX_PIECES   MOVE_MAX
 
#define STORE_MAX_PIECES   MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT))
 
#define COMPARE_MAX_PIECES   MOVE_MAX_PIECES
 
#define MAX_MOVE_MAX   MOVE_MAX
 
#define MIN_UNITS_PER_WORD   UNITS_PER_WORD
 
#define MAX_BITS_PER_WORD   BITS_PER_WORD
 
#define STACK_POINTER_OFFSET   0
 
#define LOCAL_REGNO(REGNO)   0
 
#define HONOR_REG_ALLOC_ORDER   0
 
#define EXIT_IGNORE_STACK   0
 
#define CASE_VECTOR_PC_RELATIVE   0
 
#define FUNCTION_ALIGNMENT(ALIGN)
 
#define TRAMPOLINE_ALIGNMENT   FUNCTION_ALIGNMENT (FUNCTION_BOUNDARY)
 
#define INCOMING_REGNO(N)   (N)
 
#define OUTGOING_REGNO(N)   (N)
 
#define SHIFT_COUNT_TRUNCATED   0
 
#define LEGITIMATE_PIC_OPERAND_P(X)   1
 
#define TARGET_MEM_CONSTRAINT   'm'
 
#define REVERSIBLE_CC_MODE(MODE)   0
 
#define MAX_OFILE_ALIGNMENT   BIGGEST_ALIGNMENT
 
#define FRAME_GROWS_DOWNWARD   0
 
#define RETURN_ADDR_IN_PREVIOUS_FRAME   0
 
#define ARG_POINTER_CFA_OFFSET(FNDECL)    (FIRST_PARM_OFFSET (FNDECL) + crtl->args.pretend_args_size)
 
#define CFA_FRAME_BASE_OFFSET(FNDECL)   0
 
#define INCOMING_FRAME_SP_OFFSET   0
 
#define HARD_REGNO_NREGS_HAS_PADDING(REGNO, MODE)   0
 
#define HARD_REGNO_NREGS_WITH_PADDING(REGNO, MODE)   -1
 
#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE)   0
 
#define MAX_STACK_ALIGNMENT   STACK_BOUNDARY
 
#define MAX_SUPPORTED_STACK_ALIGNMENT   PREFERRED_STACK_BOUNDARY
 
#define SUPPORTS_STACK_ALIGNMENT   (MAX_STACK_ALIGNMENT > STACK_BOUNDARY)
 
#define LOCAL_ALIGNMENT(TYPE, ALIGNMENT)   ALIGNMENT
 
#define STACK_SLOT_ALIGNMENT(TYPE, MODE, ALIGN)    ((TYPE) ? LOCAL_ALIGNMENT ((TYPE), (ALIGN)) : (ALIGN))
 
#define LOCAL_DECL_ALIGNMENT(DECL)    LOCAL_ALIGNMENT (TREE_TYPE (DECL), DECL_ALIGN (DECL))
 
#define MINIMUM_ALIGNMENT(EXP, MODE, ALIGN)   (ALIGN)
 
#define ATTRIBUTE_ALIGNED_VALUE   BIGGEST_ALIGNMENT
 
#define CONSTANT_ADDRESS_P(X)   (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
 
#define MAX_FIXED_MODE_SIZE   GET_MODE_BITSIZE (DImode)
 
#define DEFAULT_PCC_STRUCT_RETURN   1
 
#define PCC_BITFIELD_TYPE_MATTERS   false
 
#define INSN_SETS_ARE_DELAYED(INSN)   false
 
#define INSN_REFERENCES_ARE_DELAYED(INSN)   false
 
#define NO_FUNCTION_CSE   false
 
#define HARD_REGNO_RENAME_OK(FROM, TO)   true
 
#define EPILOGUE_USES(REG)   false
 
#define ARGS_GROW_DOWNWARD   0
 
#define STACK_GROWS_DOWNWARD   0
 
#define STACK_PUSH_CODE   PRE_INC
 
#define DEFAULT_FLAG_PIE   0
 
#define SWITCHABLE_TARGET   0
 
#define TARGET_SUPPORTS_WIDE_INT   0
 
#define SHORT_IMMEDIATES_SIGN_EXTEND   0
 
#define WORD_REGISTER_OPERATIONS   0
 
#define LOAD_EXTEND_OP(M)   UNKNOWN
 
#define INITIAL_FRAME_ADDRESS_RTX   NULL
 
#define SETUP_FRAME_ADDRESSES()   do { } while (0)
 
#define DYNAMIC_CHAIN_ADDRESS(x)   (x)
 
#define FRAME_ADDR_RTX(x)   (x)
 
#define REVERSE_CONDITION(code, mode)   reverse_condition (code)
 
#define TARGET_PECOFF   0
 
#define TARGET_COFF   0
 
#define EH_RETURN_HANDLER_RTX   NULL
 
#define DWARF_GNAT_ENCODINGS_DEFAULT   DWARF_GNAT_ENCODINGS_GDB
 
#define DWARF_VERSION_DEFAULT   5
 

Typedefs

typedef TARGET_UNIT target_unit
 

Macro Definition Documentation

◆ ACCUM_TYPE_SIZE

#define ACCUM_TYPE_SIZE   (FRACT_TYPE_SIZE * 2)

◆ ACCUMULATE_OUTGOING_ARGS

◆ ARG_POINTER_CFA_OFFSET

#define ARG_POINTER_CFA_OFFSET ( FNDECL)     (FIRST_PARM_OFFSET (FNDECL) + crtl->args.pretend_args_size)
On most machines, the CFA coincides with the first incoming parm.   

Referenced by compute_frame_pointer_to_fb_displacement(), instantiate_virtual_regs(), vt_init_cfa_base(), and vt_initialize().

◆ ARGS_GROW_DOWNWARD

◆ ASM_COMMENT_START

#define ASM_COMMENT_START   ";#"
Definitions of various defaults for tm.h macros.
   Copyright (C) 1992-2024 Free Software Foundation, Inc.
   Contributed by Ron Guilmette (rfg@monkeys.com)

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 3, 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.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.   
How to start an assembler comment.   

Referenced by asm_show_source(), default_elf_asm_named_section(), dump_basic_block_info(), dw2_asm_output_addr(), dw2_asm_output_addr_rtx(), dw2_asm_output_data(), dw2_asm_output_data_sleb128(), dw2_asm_output_data_uleb128(), dw2_asm_output_delta(), dw2_asm_output_delta_uleb128(), dw2_asm_output_encoded_addr_rtx(), dw2_asm_output_nstring(), dw2_asm_output_offset(), dw2_asm_output_offset(), dw2_asm_output_symname_uleb128(), final_scan_insn_1(), init_asm_output(), output_asm_name(), output_asm_operand_names(), output_cfi_directive(), output_constructor(), and output_die().

◆ ASM_FORMAT_PRIVATE_NAME

#define ASM_FORMAT_PRIVATE_NAME ( OUTPUT,
NAME,
LABELNO )
Value:
do { const char *const name_ = (NAME); \
char *const output_ = (OUTPUT) = \
(char *) alloca (strlen (name_) + 32); \
sprintf (output_, ASM_PN_FORMAT, name_, (unsigned long)(LABELNO)); \
} while (0)
#define ASM_PN_FORMAT
Definition defaults.h:40
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
@ NAME
Definition tree-ssa-pre.cc:242
#define alloca(x)
Definition tsystem.h:127

Referenced by clone_function_name(), create_loop_fn(), create_tmp_var_name(), and lhd_set_decl_assembler_name().

◆ ASM_OUTPUT_ASCII

#define ASM_OUTPUT_ASCII ( MYFILE,
MYSTRING,
MYLENGTH )
Choose a reasonable default for ASM_OUTPUT_ASCII.   

Referenced by assemble_string(), dw2_asm_output_nstring(), and elf_record_gcc_switches().

◆ ASM_OUTPUT_DEBUG_LABEL

#define ASM_OUTPUT_DEBUG_LABEL ( FILE,
PREFIX,
NUM )    (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM)
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.   

Referenced by asan_function_start(), dwarf2out_begin_prologue(), dwarf2out_vms_begin_epilogue(), dwarf2out_vms_end_prologue(), and final_scan_insn_1().

◆ ASM_OUTPUT_FUNCTION_LABEL

#define ASM_OUTPUT_FUNCTION_LABEL ( FILE,
NAME,
DECL )    assemble_function_label_raw ((FILE), (NAME))
This is how to output the definition of a user-level label named
NAME, such as the label on a function.   

Referenced by assemble_start_function().

◆ ASM_OUTPUT_INTERNAL_LABEL

#define ASM_OUTPUT_INTERNAL_LABEL ( FILE,
NAME )
Value:
do { \
fputs (":\n", (FILE)); \
} while (0)
Output the definition of a compiler-generated label named NAME.   

Referenced by default_internal_label().

◆ ASM_OUTPUT_LABEL

◆ ASM_OUTPUT_LABELREF

#define ASM_OUTPUT_LABELREF ( FILE,
NAME )
Value:
do { \
fputs ((NAME), (FILE)); \
} while (0)
const char * user_label_prefix
Definition toplev.cc:160
This is how to output a reference to a user-level label named NAME.   

Referenced by assemble_name_raw().

◆ ASM_PN_FORMAT

#define ASM_PN_FORMAT   "%s.%lu"
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.   

◆ ASM_PREFERRED_EH_DATA_FORMAT

#define ASM_PREFERRED_EH_DATA_FORMAT ( CODE,
GLOBAL )   DW_EH_PE_absptr
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.   

Referenced by dwarf2out_do_cfi_asm(), dwarf2out_do_cfi_startproc(), output_call_frame_info(), output_cfi(), output_one_function_exception_table(), switch_to_eh_frame_section(), and switch_to_exception_section().

◆ ATTRIBUTE_ALIGNED_VALUE

#define ATTRIBUTE_ALIGNED_VALUE   BIGGEST_ALIGNMENT
Alignment value for attribute ((aligned)).   

◆ BITS_PER_WORD

#define BITS_PER_WORD   (BITS_PER_UNIT * UNITS_PER_WORD)
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.   

Referenced by add_standard_iv_candidates(), align_variable(), assign_parm_setup_block(), bit_field_mode_iterator::bit_field_mode_iterator(), can_atomic_load_p(), can_mult_highpart_p(), combine_reaching_defs(), compute_splitting_shift(), constant_alignment_word_strings(), convert_mode_scalar(), copy_blkmode_from_reg(), copy_blkmode_to_reg(), cse_insn(), cselib_record_sets(), default_min_arithmetic_precision(), default_scalar_mode_supported_p(), default_secondary_memory_needed_mode(), divmod_candidate_p(), dump_shift_choices(), dw_sra_loc_expr(), emit_block_cmp_via_loop(), emit_store_flag_1(), expand_absneg_bit(), expand_addsub_overflow(), expand_arith_overflow(), expand_atomic_load(), expand_atomic_store(), expand_binop(), expand_builtin_signbit(), expand_case(), expand_copysign_absneg(), expand_copysign_bit(), expand_divmod(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_doubleword_mult(), expand_doubleword_shift(), expand_expr_real_2(), expand_function_end(), expand_omp_atomic(), expand_sdiv_pow2(), expand_subword_shift(), expand_superword_shift(), expand_unop(), expand_vector_addition(), expmed_mult_highpart(), expmed_mult_highpart_optab(), extract_fixed_bit_field(), extract_integral_bit_field(), extract_split_bit_field(), find_decomposable_shift_zext(), find_shift_sequence(), fold_truth_andor_1(), fold_unary_loc(), gen_int_libfunc(), get_shiftadd_cost(), get_variable_align(), init_derived_machine_modes(), init_eh(), init_emit(), init_optabs(), initializer_constant_valid_p_1(), load_extend_op(), load_register_parameters(), make_compound_operation_int(), make_extraction(), bit_field_mode_iterator::next_mode(), noce_emit_move_insn(), nonzero_bits1(), num_sign_bit_copies1(), offset_int_type_size_in_bits(), operand_for_swap_move_operator(), optimize_bit_field_compare(), optimize_bitfield_assignment_op(), prepare_call_arguments(), read_complex_part(), record_dead_and_set_regs_1(), reload_cse_simplify_set(), resolve_shift_zext(), set_builtin_user_assembler_name(), simple_decl_align_in_bits(), simple_type_align_in_bits(), simple_type_size_in_bits(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_const_binary_operation(), simplify_context::simplify_truncation(), split_double(), store_constructor(), store_field(), store_fixed_bit_field(), store_integral_bit_field(), store_split_bit_field(), store_unaligned_arguments_into_pseudos(), strict_volatile_bitfield_p(), synth_mult(), try_combine(), update_rsp_from_reg_equal(), vect_verify_loop_lens(), verify_gimple_assign_unary(), and write_complex_part().

◆ BOOL_TYPE_SIZE

#define BOOL_TYPE_SIZE   CHAR_TYPE_SIZE

◆ CASE_VECTOR_PC_RELATIVE

#define CASE_VECTOR_PC_RELATIVE   0
Assume that case vectors are not pc-relative.   

Referenced by do_tablejump(), emit_case_dispatch_table(), and jumptable_relocatable().

◆ CFA_FRAME_BASE_OFFSET

#define CFA_FRAME_BASE_OFFSET ( FNDECL)    0
On most machines, we use the CFA as DW_AT_frame_base.   

◆ CHAR16_TYPE

#define CHAR16_TYPE   "short unsigned int"

◆ CHAR32_TYPE

#define CHAR32_TYPE   "unsigned int"

◆ CHAR8_TYPE

#define CHAR8_TYPE   "unsigned char"
If GCC knows the exact uint_least16_t and uint_least32_t types from
<stdint.h>, use them for char16_t and char32_t.  Otherwise, use
these guesses; getting the wrong type of a given width will not
affect C++ name mangling because in C++ these are distinct types
not typedefs.   

◆ CHAR_TYPE_SIZE

◆ CLZ_DEFINED_VALUE_AT_ZERO

◆ COMPARE_MAX_PIECES

#define COMPARE_MAX_PIECES   MOVE_MAX_PIECES
Likewise for block comparisons.   

Referenced by default_use_by_pieces_infrastructure_p().

◆ CONSTANT_ADDRESS_P

#define CONSTANT_ADDRESS_P ( X)    (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
For most ports anything that evaluates to a constant symbolic
or integer value is acceptable as a constant address.   

Referenced by break_out_memory_refs(), can_simplify_addr(), find_equiv_reg(), memory_address_addr_space(), offsettable_address_addr_space_p(), output_asm_insn(), and verify_rtx_sharing().

◆ CTZ_DEFINED_VALUE_AT_ZERO

◆ DEBUGGER_REGNO

#define DEBUGGER_REGNO ( REGNO)    (REGNO)
How to renumber registers for gdb.  If not defined, assume
no renumbering is necessary.   

Referenced by debugger_reg_number(), expand_builtin_eh_return_data_regno(), and multiple_reg_loc_descriptor().

◆ DECIMAL128_TYPE_SIZE

#define DECIMAL128_TYPE_SIZE   128

Referenced by build_common_tree_nodes().

◆ DECIMAL32_TYPE_SIZE

#define DECIMAL32_TYPE_SIZE   32

Referenced by build_common_tree_nodes().

◆ DECIMAL64_TYPE_SIZE

#define DECIMAL64_TYPE_SIZE   64

Referenced by build_common_tree_nodes().

◆ DEFAULT_FLAG_PIE

#define DEFAULT_FLAG_PIE   0
Default value for flag_pie when flag_pie is initialized to -1:
 --enable-default-pie: Default flag_pie to -fPIE.
 --disable-default-pie: Default flag_pie to 0.

Referenced by finish_options().

◆ DEFAULT_GDB_EXTENSIONS

#define DEFAULT_GDB_EXTENSIONS   1

Referenced by common_handle_option().

◆ DEFAULT_PCC_STRUCT_RETURN

#define DEFAULT_PCC_STRUCT_RETURN   1
Nonzero if structures and unions should be returned in memory.

This should only be defined if compatibility with another compiler or
with an ABI is needed, because it results in slower code.   

◆ DEFAULT_USE_CXA_ATEXIT

#define DEFAULT_USE_CXA_ATEXIT   0
Determine whether __cxa_atexit, rather than atexit, is used to
register C++ destructors for local statics and global objects.   

◆ DOUBLE_TYPE_SIZE

#define DOUBLE_TYPE_SIZE   (BITS_PER_WORD * 2)

◆ DWARF2_ADDR_SIZE

◆ DWARF2_FRAME_REG_OUT

#define DWARF2_FRAME_REG_OUT ( REGNO,
FOR_EH )   (REGNO)
Map register numbers held in the call frame info that gcc has
collected using DWARF_FRAME_REGNUM to those that should be output in
.debug_frame and .eh_frame.   

Referenced by expand_builtin_dwarf_sp_column(), init_one_dwarf_reg_size(), output_call_frame_info(), output_cfa_loc(), output_cfa_loc_raw(), output_cfi(), output_cfi_directive(), output_loc_operands(), output_loc_operands_raw(), output_loc_sequence(), and output_loc_sequence_raw().

◆ DWARF_CIE_DATA_ALIGNMENT

#define DWARF_CIE_DATA_ALIGNMENT   ((int) UNITS_PER_WORD)
Offsets recorded in opcodes are a multiple of this alignment factor.   

Referenced by div_data_align(), and output_call_frame_info().

◆ DWARF_FRAME_REGISTERS

#define DWARF_FRAME_REGISTERS   FIRST_PSEUDO_REGISTER
Number of hardware registers that go into the DWARF-2 unwind info.
If not defined, equals FIRST_PSEUDO_REGISTER   

Referenced by init_one_dwarf_reg_size().

◆ DWARF_FRAME_REGNUM

#define DWARF_FRAME_REGNUM ( REG)    DEBUGGER_REGNO (REG)
The mapping from gcc register number to DWARF 2 CFA column number.
By default, we just provide columns for all registers.   

Referenced by based_loc_descr(), build_cfa_aligned_loc(), dwf_regno(), expand_builtin_dwarf_sp_column(), expand_builtin_eh_return_data_regno(), and init_one_dwarf_reg_size().

◆ DWARF_FRAME_RETURN_COLUMN

#define DWARF_FRAME_RETURN_COLUMN   DWARF_FRAME_REGISTERS
The DWARF 2 CFA column which tracks the return address.  Normally this
is the column for PC, or the first column after all of the hard
registers.   

Referenced by dwarf2out_flush_queued_reg_saves(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_register(), dwarf2out_frame_debug_expr(), expand_builtin_init_dwarf_reg_sizes(), init_one_dwarf_reg_size(), initial_return_save(), and output_call_frame_info().

◆ DWARF_GNAT_ENCODINGS_DEFAULT

#define DWARF_GNAT_ENCODINGS_DEFAULT   DWARF_GNAT_ENCODINGS_GDB

◆ DWARF_OFFSET_SIZE

#define DWARF_OFFSET_SIZE   4
The size in bytes of a DWARF field indicating an offset or length
relative to a debug info section, specified to be 4 bytes in the
DWARF-2 specification.  The SGI/MIPS ABI defines it to be the same
as PTR_SIZE.   

◆ DWARF_REG_TO_UNWIND_COLUMN

#define DWARF_REG_TO_UNWIND_COLUMN ( REGNO)    (REGNO)
The mapping from dwarf CFA reg number to internal dwarf reg numbers.   

Referenced by init_one_dwarf_reg_size().

◆ DWARF_TYPE_SIGNATURE_SIZE

#define DWARF_TYPE_SIGNATURE_SIZE   8
The size in bytes of a DWARF 4 type signature.   

Referenced by generate_type_signature(), output_comdat_type_unit(), output_signature(), print_signature(), and size_of_die().

◆ DWARF_VERSION_DEFAULT

#define DWARF_VERSION_DEFAULT   5
When generating dwarf info, the default standard version we'll honor
and advertise in absence of -gdwarf-<N> on the command line.   

◆ DYNAMIC_CHAIN_ADDRESS

#define DYNAMIC_CHAIN_ADDRESS ( x)    (x)

◆ EH_RETURN_DATA_REGNO

#define EH_RETURN_DATA_REGNO ( N)    INVALID_REGNUM
Provide defaults for stuff that may not be defined when using
sjlj exceptions.   

Referenced by df_bb_refs_collect(), df_get_exit_block_use_set(), expand_builtin_eh_return_data_regno(), expand_dw2_landing_pad_for_region(), process_bb_lives(), and process_bb_node_lives().

◆ EH_RETURN_HANDLER_RTX

#define EH_RETURN_HANDLER_RTX   NULL

◆ EH_TABLES_CAN_BE_READ_ONLY

#define EH_TABLES_CAN_BE_READ_ONLY   0
If we have a definition of INCOMING_RETURN_ADDR_RTX, assume that
the rest of the DWARF 2 frame unwind support is also provided.   
If we have named sections, and we're using crtstuff to run ctors,
use them for registering eh frame information.   
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.   

Referenced by switch_to_eh_frame_section(), and switch_to_exception_section().

◆ EPILOGUE_USES

#define EPILOGUE_USES ( REG)    false

Referenced by df_epilogue_uses_p().

◆ EXIT_IGNORE_STACK

#define EXIT_IGNORE_STACK   0
EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
the stack pointer does not matter.  The value is tested only in
functions that have frame pointers.   

Referenced by clear_pending_stack_adjust(), expand_function_end(), init_resource_info(), and ira_setup_eliminable_regset().

◆ FLOAT_LIB_COMPARE_RETURNS_BOOL

#define FLOAT_LIB_COMPARE_RETURNS_BOOL ( MODE,
COMPARISON )   false
Default to DWARF2_DEBUGGING_INFO.  Legacy targets can choose different
by defining PREFERRED_DEBUGGING_TYPE.   

Referenced by prepare_float_lib_cmp().

◆ FLOAT_TYPE_SIZE

#define FLOAT_TYPE_SIZE   BITS_PER_WORD

◆ FLOAT_WORDS_BIG_ENDIAN

◆ FRACT_TYPE_SIZE

#define FRACT_TYPE_SIZE   (BITS_PER_UNIT * 2)

◆ FRAME_ADDR_RTX

#define FRAME_ADDR_RTX ( x)    (x)

◆ FRAME_GROWS_DOWNWARD

◆ FUNCTION_ALIGNMENT

#define FUNCTION_ALIGNMENT ( ALIGN)
Value:
&& targetm.calls.custom_function_descriptors > 0 \
? MAX ((ALIGN), \
2 * targetm.calls.custom_function_descriptors * BITS_PER_UNIT)\
: (ALIGN))
Definition langhooks.h:360
bool custom_function_descriptors
Definition langhooks.h:620
#define MAX(X, Y)
Definition system.h:393
struct gcc_target targetm
Force minimum alignment to be able to use the least significant bits
for distinguishing descriptor addresses from code addresses.   

Referenced by get_descriptor_type(), and make_node().

◆ HARD_REGNO_NREGS_HAS_PADDING

#define HARD_REGNO_NREGS_HAS_PADDING ( REGNO,
MODE )   0

Referenced by subreg_get_info().

◆ HARD_REGNO_NREGS_WITH_PADDING

#define HARD_REGNO_NREGS_WITH_PADDING ( REGNO,
MODE )   -1

Referenced by subreg_get_info().

◆ HARD_REGNO_RENAME_OK

#define HARD_REGNO_RENAME_OK ( FROM,
TO )   true

Referenced by check_new_reg_p().

◆ HAS_LONG_COND_BRANCH

#define HAS_LONG_COND_BRANCH   0

◆ HAS_LONG_UNCOND_BRANCH

#define HAS_LONG_UNCOND_BRANCH   0

◆ HONOR_REG_ALLOC_ORDER

#define HONOR_REG_ALLOC_ORDER   0

Referenced by assign_hard_reg().

◆ IFUNC_ASM_TYPE

#define IFUNC_ASM_TYPE   "gnu_indirect_function"
This is how we tell the assembler to equate two values.   

Referenced by do_assemble_alias().

◆ INCOMING_FRAME_SP_OFFSET

#define INCOMING_FRAME_SP_OFFSET   0
The offset from the incoming value of %sp to the top of the stack frame
for the current function.   

Referenced by scan_trace(), vt_initialize(), and vt_stack_adjustments().

◆ INCOMING_REGNO

#define INCOMING_REGNO ( N)    (N)
Register mappings for target machines without register windows.   

Referenced by dead_or_predicable(), df_get_entry_block_def_set(), expand_builtin_apply_args_1(), expand_builtin_return(), and result_vector().

◆ INCOMING_STACK_BOUNDARY

#define INCOMING_STACK_BOUNDARY   PREFERRED_STACK_BOUNDARY
Set INCOMING_STACK_BOUNDARY to PREFERRED_STACK_BOUNDARY if it is not
defined.   

Referenced by expand_stack_alignment().

◆ INITIAL_FRAME_ADDRESS_RTX

#define INITIAL_FRAME_ADDRESS_RTX   NULL

◆ INSN_REFERENCES_ARE_DELAYED

#define INSN_REFERENCES_ARE_DELAYED ( INSN)    false

◆ INSN_SETS_ARE_DELAYED

#define INSN_SETS_ARE_DELAYED ( INSN)    false

◆ INT16_TYPE

#define INT16_TYPE   ((const char *) NULL)

◆ INT32_TYPE

#define INT32_TYPE   ((const char *) NULL)

◆ INT64_TYPE

#define INT64_TYPE   ((const char *) NULL)

◆ INT8_TYPE

#define INT8_TYPE   ((const char *) NULL)

◆ INT_FAST16_TYPE

#define INT_FAST16_TYPE   ((const char *) NULL)

◆ INT_FAST32_TYPE

#define INT_FAST32_TYPE   ((const char *) NULL)

◆ INT_FAST64_TYPE

#define INT_FAST64_TYPE   ((const char *) NULL)

◆ INT_FAST8_TYPE

#define INT_FAST8_TYPE   ((const char *) NULL)

◆ INT_LEAST16_TYPE

#define INT_LEAST16_TYPE   ((const char *) NULL)

◆ INT_LEAST32_TYPE

#define INT_LEAST32_TYPE   ((const char *) NULL)

◆ INT_LEAST64_TYPE

#define INT_LEAST64_TYPE   ((const char *) NULL)

◆ INT_LEAST8_TYPE

#define INT_LEAST8_TYPE   ((const char *) NULL)

◆ INT_TYPE_SIZE

◆ INTMAX_TYPE

#define INTMAX_TYPE
Value:
? "int" \
? "long int" \
: "long long int"))
#define INT_TYPE_SIZE
Definition defaults.h:497
#define LONG_LONG_TYPE_SIZE
Definition defaults.h:505
#define LONG_TYPE_SIZE
Definition defaults.h:501

◆ INTPTR_TYPE

#define INTPTR_TYPE   ((const char *) NULL)

◆ LEGITIMATE_PIC_OPERAND_P

◆ LOAD_EXTEND_OP

#define LOAD_EXTEND_OP ( M)    UNKNOWN

◆ LOCAL_ALIGNMENT

#define LOCAL_ALIGNMENT ( TYPE,
ALIGNMENT )   ALIGNMENT

◆ LOCAL_DECL_ALIGNMENT

#define LOCAL_DECL_ALIGNMENT ( DECL)     LOCAL_ALIGNMENT (TREE_TYPE (DECL), DECL_ALIGN (DECL))

◆ LOCAL_REGNO

◆ LONG_ACCUM_TYPE_SIZE

#define LONG_ACCUM_TYPE_SIZE   (LONG_FRACT_TYPE_SIZE * 2)

◆ LONG_DOUBLE_TYPE_SIZE

#define LONG_DOUBLE_TYPE_SIZE   (BITS_PER_WORD * 2)

◆ LONG_FRACT_TYPE_SIZE

#define LONG_FRACT_TYPE_SIZE   (BITS_PER_UNIT * 4)

◆ LONG_LONG_ACCUM_TYPE_SIZE

#define LONG_LONG_ACCUM_TYPE_SIZE   (LONG_LONG_FRACT_TYPE_SIZE * 2)

◆ LONG_LONG_FRACT_TYPE_SIZE

#define LONG_LONG_FRACT_TYPE_SIZE   (BITS_PER_UNIT * 8)

◆ LONG_LONG_TYPE_SIZE

◆ LONG_TYPE_SIZE

◆ MALLOC_ABI_ALIGNMENT

#define MALLOC_ABI_ALIGNMENT   BITS_PER_WORD
Default value for the alignment (in bits) a C conformant malloc has to
provide. This default is intended to be safe and always correct.   

Referenced by allocate_dynamic_stack_space(), evaluate_stmt(), and expand_call().

◆ MASK_RETURN_ADDR

#define MASK_RETURN_ADDR   NULL_RTX

◆ MAX_BITS_PER_WORD

#define MAX_BITS_PER_WORD   BITS_PER_WORD

◆ MAX_FIXED_MODE_SIZE

◆ MAX_MOVE_MAX

#define MAX_MOVE_MAX   MOVE_MAX

◆ MAX_OFILE_ALIGNMENT

#define MAX_OFILE_ALIGNMENT   BIGGEST_ALIGNMENT

◆ MAX_STACK_ALIGNMENT

#define MAX_STACK_ALIGNMENT   STACK_BOUNDARY
MAX_STACK_ALIGNMENT is the maximum stack alignment guaranteed by
the backend.  MAX_SUPPORTED_STACK_ALIGNMENT is the maximum best
effort stack alignment supported by the backend.  If the backend
supports stack alignment, MAX_SUPPORTED_STACK_ALIGNMENT and
MAX_STACK_ALIGNMENT are the same.  Otherwise, the incoming stack
boundary will limit the maximum guaranteed stack alignment.   

Referenced by vect_can_force_dr_alignment_p().

◆ MAX_SUPPORTED_STACK_ALIGNMENT

◆ MIN_UNITS_PER_WORD

#define MIN_UNITS_PER_WORD   UNITS_PER_WORD

◆ MINIMUM_ALIGNMENT

◆ MODIFIED_WCHAR_TYPE

#define MODIFIED_WCHAR_TYPE    (flag_short_wchar ? "short unsigned int" : WCHAR_TYPE)
WCHAR_TYPE gets overridden by -fshort-wchar.   

◆ MOVE_MAX_PIECES

#define MOVE_MAX_PIECES   MOVE_MAX
This macro is used to determine what the largest unit size that
move_by_pieces can use is.   
MOVE_MAX_PIECES is the number of bytes at a time which we can
move efficiently, as opposed to  MOVE_MAX which is the maximum
number of bytes we can move with a single instruction.   

Referenced by by_pieces_ninsns(), default_use_by_pieces_infrastructure_p(), estimate_move_cost(), and op_by_pieces_d::op_by_pieces_d().

◆ MULTIPLE_SYMBOL_SPACES

#define MULTIPLE_SYMBOL_SPACES   0
By default we can assume that all global symbols are in one namespace,
across all shared libraries.   

◆ NEXT_OBJC_RUNTIME

#define NEXT_OBJC_RUNTIME   0
By default, use the GNU runtime for Objective C.   

◆ NO_FUNCTION_CSE

#define NO_FUNCTION_CSE   false

◆ OUTGOING_REG_PARM_STACK_SPACE

#define OUTGOING_REG_PARM_STACK_SPACE ( FNTYPE)    0

◆ OUTGOING_REGNO

#define OUTGOING_REGNO ( N)    (N)

◆ PCC_BITFIELD_TYPE_MATTERS

#define PCC_BITFIELD_TYPE_MATTERS   false

◆ PIC_OFFSET_TABLE_REG_CALL_CLOBBERED

#define PIC_OFFSET_TABLE_REG_CALL_CLOBBERED   0

◆ PIC_OFFSET_TABLE_REGNUM

◆ PID_TYPE

#define PID_TYPE   "int"

◆ POINTER_SIZE

◆ POINTER_SIZE_UNITS

◆ PREFERRED_STACK_BOUNDARY

#define PREFERRED_STACK_BOUNDARY   STACK_BOUNDARY

◆ PTRDIFF_TYPE

#define PTRDIFF_TYPE   "long int"

Referenced by build_common_tree_nodes().

◆ PUSH_ARGS_REVERSED

#define PUSH_ARGS_REVERSED   0
Decide whether a function's arguments should be processed
from first to last or from last to first.

They should if the stack and args grow in opposite directions, but
only if we have push insns.   

Referenced by gimplify_call_expr().

◆ REG_WORDS_BIG_ENDIAN

◆ RETURN_ADDR_IN_PREVIOUS_FRAME

#define RETURN_ADDR_IN_PREVIOUS_FRAME   0

◆ RETURN_ADDR_OFFSET

#define RETURN_ADDR_OFFSET   0
Offset between the eh handler address and entry in eh tables.   

Referenced by expand_builtin_extract_return_addr(), and expand_builtin_frob_return_addr().

◆ REVERSE_CONDITION

#define REVERSE_CONDITION ( code,
mode )   reverse_condition (code)

◆ REVERSIBLE_CC_MODE

#define REVERSIBLE_CC_MODE ( MODE)    0

◆ SETUP_FRAME_ADDRESSES

#define SETUP_FRAME_ADDRESSES ( )    do { } while (0)

◆ SHIFT_COUNT_TRUNCATED

◆ SHORT_ACCUM_TYPE_SIZE

#define SHORT_ACCUM_TYPE_SIZE   (SHORT_FRACT_TYPE_SIZE * 2)

◆ SHORT_FRACT_TYPE_SIZE

#define SHORT_FRACT_TYPE_SIZE   BITS_PER_UNIT

◆ SHORT_IMMEDIATES_SIGN_EXTEND

#define SHORT_IMMEDIATES_SIGN_EXTEND   0

◆ SHORT_TYPE_SIZE

◆ SIG_ATOMIC_TYPE

#define SIG_ATOMIC_TYPE   ((const char *) NULL)
There are no default definitions of these <stdint.h> types.   

◆ SIZE_TYPE

#define SIZE_TYPE   "long unsigned int"
We let tm.h override the types used here, to handle trivial differences
such as the choice of unsigned int or long unsigned int for size_t.
When machines start needing nontrivial differences in the size type,
it would be best to do something here to figure out automatically
from other information what type to use.   

Referenced by build_common_tree_nodes().

◆ SIZETYPE

#define SIZETYPE   SIZE_TYPE

Referenced by initialize_sizetypes().

◆ STACK_GROWS_DOWNWARD

◆ STACK_POINTER_OFFSET

◆ STACK_PUSH_CODE

#define STACK_PUSH_CODE   PRE_INC

Referenced by emit_push_insn(), and push_operand().

◆ STACK_SLOT_ALIGNMENT

◆ STORE_FLAG_VALUE

◆ STORE_MAX_PIECES

#define STORE_MAX_PIECES   MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT))
STORE_MAX_PIECES is the number of bytes at a time that we can
store efficiently.  Due to internal GCC limitations, this is
MOVE_MAX_PIECES limited by the number of bytes GCC can represent
for an immediate constant.   

Referenced by can_store_by_pieces(), default_use_by_pieces_infrastructure_p(), and store_expr().

◆ SUPPORTS_DISCRIMINATOR

#define SUPPORTS_DISCRIMINATOR   0
This determines whether or not we support the discriminator
attribute in the .loc directive.   

Referenced by notice_source_line().

◆ SUPPORTS_INIT_PRIORITY

#define SUPPORTS_INIT_PRIORITY   1
If the target supports init_priority C++ attribute, give
SUPPORTS_INIT_PRIORITY a nonzero value.   

Referenced by build_gcov_exit_decl(), and build_init_ctor().

◆ SUPPORTS_ONE_ONLY

#define SUPPORTS_ONE_ONLY   0
This determines whether or not we support link-once semantics.   

Referenced by make_decl_one_only(), and supports_one_only().

◆ SUPPORTS_SHF_GNU_RETAIN

#define SUPPORTS_SHF_GNU_RETAIN   0
This determines whether or not we support marking sections with
SHF_GNU_RETAIN flag.  Also require .init_array/.fini_array section
for constructors and destructors.   

◆ SUPPORTS_STACK_ALIGNMENT

◆ SUPPORTS_WEAK

#define SUPPORTS_WEAK   0
This is how we tell the assembler that a symbol is weak.   
This is how we tell the assembler that a symbol is a weak alias to
another symbol that doesn't require the other symbol to be defined.
Uses of the former will turn into weak uses of the latter, i.e.,
uses that, in case the latter is undefined, will not cause errors,
and will add it to the symbol table as weak undefined.  However, if
the latter is referenced directly, a strong reference prevails.   
How to emit a .type directive.   
How to emit a .size directive.   
This determines whether or not we support weak symbols.  SUPPORTS_WEAK
must be a preprocessor constant.   

◆ SWITCHABLE_TARGET

#define SWITCHABLE_TARGET   0

◆ TARGET_ATTRIBUTE_WEAK

#define TARGET_ATTRIBUTE_WEAK
If the target supports weak symbols, define TARGET_ATTRIBUTE_WEAK to
provide a weak attribute.  Else define it to nothing.

This would normally belong in ansidecl.h, but SUPPORTS_WEAK is
not available at that time.

Note, this is only for use by target files which we know are to be
compiled by GCC.   

◆ TARGET_COFF

#define TARGET_COFF   0

◆ TARGET_DEC_EVAL_METHOD

#define TARGET_DEC_EVAL_METHOD   2

◆ TARGET_DECLSPEC

#define TARGET_DECLSPEC   0

◆ TARGET_DEFAULT_PACK_STRUCT

#define TARGET_DEFAULT_PACK_STRUCT   0

◆ TARGET_DEFERRED_OUTPUT_DEFS

#define TARGET_DEFERRED_OUTPUT_DEFS ( DECL,
TARGET )   false
Decide whether to defer emitting the assembler output for an equate
of two values.  The default is to not defer output.   

◆ TARGET_DLLIMPORT_DECL_ATTRIBUTES

#define TARGET_DLLIMPORT_DECL_ATTRIBUTES   0

◆ TARGET_HAS_BIONIC

#define TARGET_HAS_BIONIC   0
Determin whether the target runtime library is Bionic  

◆ TARGET_HAS_FMV_TARGET_ATTRIBUTE

#define TARGET_HAS_FMV_TARGET_ATTRIBUTE   1
Indicate whether the target uses "target" attributes for function
multiversioning.  This is used to choose between the "target" and
"target_version" attributes when expanding a "target_clones" attribute, and
determine whether the "target" and "target_clones" attributes are mutually
exclusive.   

Referenced by expand_target_clones().

◆ TARGET_LIB_INT_CMP_BIASED

#define TARGET_LIB_INT_CMP_BIASED   (true)
True if the targets integer-comparison functions return { 0, 1, 2
} to indicate { <, ==, > }.  False if { -1, 0, 1 } is used
instead.  The libgcc routines are biased.   

Referenced by prepare_cmp_insn().

◆ TARGET_MEM_CONSTRAINT

#define TARGET_MEM_CONSTRAINT   'm'

Referenced by find_reloads().

◆ TARGET_PECOFF

#define TARGET_PECOFF   0

◆ TARGET_PTRMEMFUNC_VBIT_LOCATION

#define TARGET_PTRMEMFUNC_VBIT_LOCATION
Value:
@ ptrmemfunc_vbit_in_delta
Definition tree-core.h:895
@ ptrmemfunc_vbit_in_pfn
Definition tree-core.h:894
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.   

Referenced by get_object_alignment_2(), and ipa_analyze_indirect_call_uses().

◆ TARGET_SUPPORTS_ALIASES

◆ TARGET_SUPPORTS_WEAK

#define TARGET_SUPPORTS_WEAK   (SUPPORTS_WEAK)
This determines whether or not we support weak symbols during target
code generation.  TARGET_SUPPORTS_WEAK can be any valid C expression.   

Referenced by assemble_external(), declare_weak(), do_assemble_alias(), make_decl_one_only(), merge_weak(), and supports_one_only().

◆ TARGET_SUPPORTS_WIDE_INT

#define TARGET_SUPPORTS_WIDE_INT   0
If the target supports integers that are wider than two
HOST_WIDE_INTs on the host compiler, then the target should define
TARGET_SUPPORTS_WIDE_INT and make the appropriate fixups.
Otherwise the compiler really is not robust.   

Referenced by add_const_value_attribute(), add_mode_tests(), const_rtx_hash_1(), cselib_hash_rtx(), const_double_hasher::equal(), const_double_hasher::hash(), hash_rtx(), and make_tree().

◆ TARGET_USE_LOCAL_THUNK_ALIAS_P

#define TARGET_USE_LOCAL_THUNK_ALIAS_P ( DECL)    0
Decide whether it is safe to use a local alias for a virtual function
when constructing thunks.   

◆ TARGET_USES_WEAK_UNWIND_INFO

#define TARGET_USES_WEAK_UNWIND_INFO   0
This determines whether or not we need linkonce unwind information.   

Referenced by fde_needed_for_eh_p(), and output_call_frame_info().

◆ TARGET_VTABLE_DATA_ENTRY_DISTANCE

#define TARGET_VTABLE_DATA_ENTRY_DISTANCE   1
There are a few non-descriptor entries in the vtable at offsets below
zero.  If these entries must be padded (say, to preserve the alignment
specified by TARGET_VTABLE_ENTRY_ALIGN), set this to the number of
words in each data entry.   

◆ TARGET_VTABLE_ENTRY_ALIGN

#define TARGET_VTABLE_ENTRY_ALIGN   POINTER_SIZE
By default, the vtable entries are void pointers, the so the alignment
is the same as pointer alignment.  The value of this macro specifies
the alignment of the vtable entry in bits.  It should be defined only
when special alignment is necessary.   

◆ TARGET_WEAK_NOT_IN_ARCHIVE_TOC

#define TARGET_WEAK_NOT_IN_ARCHIVE_TOC   0
This determines whether weak symbols must be left out of a static
archive's table of contents.  Defining this macro to be nonzero has
the consequence that certain symbols will not be made weak that
otherwise would be.  The C++ ABI requires this macro to be zero;
see the documentation.   

◆ TLS_COMMON_ASM_OP

#define TLS_COMMON_ASM_OP   ".tls_common"

◆ TRAMPOLINE_ALIGNMENT

#define TRAMPOLINE_ALIGNMENT   FUNCTION_ALIGNMENT (FUNCTION_BOUNDARY)
Assume that trampolines need function alignment.   

Referenced by assemble_trampoline_template(), expand_builtin_init_trampoline(), get_trampoline_type(), and round_trampoline_addr().

◆ UINT16_TYPE

#define UINT16_TYPE   ((const char *) NULL)

◆ UINT32_TYPE

#define UINT32_TYPE   ((const char *) NULL)

◆ UINT64_TYPE

#define UINT64_TYPE   ((const char *) NULL)

◆ UINT8_TYPE

#define UINT8_TYPE   ((const char *) NULL)

◆ UINT_FAST16_TYPE

#define UINT_FAST16_TYPE   ((const char *) NULL)

◆ UINT_FAST32_TYPE

#define UINT_FAST32_TYPE   ((const char *) NULL)

◆ UINT_FAST64_TYPE

#define UINT_FAST64_TYPE   ((const char *) NULL)

◆ UINT_FAST8_TYPE

#define UINT_FAST8_TYPE   ((const char *) NULL)

◆ UINT_LEAST16_TYPE

#define UINT_LEAST16_TYPE   ((const char *) NULL)

◆ UINT_LEAST32_TYPE

#define UINT_LEAST32_TYPE   ((const char *) NULL)

◆ UINT_LEAST64_TYPE

#define UINT_LEAST64_TYPE   ((const char *) NULL)

◆ UINT_LEAST8_TYPE

#define UINT_LEAST8_TYPE   ((const char *) NULL)

◆ UINTMAX_TYPE

#define UINTMAX_TYPE
Value:
? "unsigned int" \
? "long unsigned int" \
: "long long unsigned int"))

◆ UINTPTR_TYPE

#define UINTPTR_TYPE   ((const char *) NULL)

◆ USER_LABEL_PREFIX

#define USER_LABEL_PREFIX   ""
By default, there is no prefix on user-defined symbols.   

Referenced by process_options().

◆ WCHAR_TYPE

#define WCHAR_TYPE   "int"

◆ WCHAR_TYPE_SIZE

#define WCHAR_TYPE_SIZE   INT_TYPE_SIZE

◆ WINT_TYPE

#define WINT_TYPE   "unsigned int"

◆ WORD_REGISTER_OPERATIONS

Typedef Documentation

◆ target_unit

Done this way to keep gengtype happy.