gccint: Alignment Output
1
1 18.20.10 Assembler Commands for Alignment
1 -----------------------------------------
1
1 This describes commands for alignment.
1
1 -- Macro: JUMP_ALIGN (LABEL)
1 The alignment (log base 2) to put in front of LABEL, which is a
1 common destination of jumps and has no fallthru incoming edge.
1
1 This macro need not be defined if you don't want any special
1 alignment to be done at such a time. Most machine descriptions do
1 not currently define the macro.
1
1 Unless it's necessary to inspect the LABEL parameter, it is better
1 to set the variable ALIGN_JUMPS in the target's
1 'TARGET_OPTION_OVERRIDE'. Otherwise, you should try to honor the
1 user's selection in ALIGN_JUMPS in a 'JUMP_ALIGN' implementation.
1
1 -- Target Hook: int TARGET_ASM_JUMP_ALIGN_MAX_SKIP (rtx_insn *LABEL)
1 The maximum number of bytes to skip before LABEL when applying
1 'JUMP_ALIGN'. This works only if 'ASM_OUTPUT_MAX_SKIP_ALIGN' is
1 defined.
1
1 -- Macro: LABEL_ALIGN_AFTER_BARRIER (LABEL)
1 The alignment (log base 2) to put in front of LABEL, which follows
1 a 'BARRIER'.
1
1 This macro need not be defined if you don't want any special
1 alignment to be done at such a time. Most machine descriptions do
1 not currently define the macro.
1
1 -- Target Hook: int TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP
1 (rtx_insn *LABEL)
1 The maximum number of bytes to skip before LABEL when applying
1 'LABEL_ALIGN_AFTER_BARRIER'. This works only if
1 'ASM_OUTPUT_MAX_SKIP_ALIGN' is defined.
1
1 -- Macro: LOOP_ALIGN (LABEL)
1 The alignment (log base 2) to put in front of LABEL that heads a
1 frequently executed basic block (usually the header of a loop).
1
1 This macro need not be defined if you don't want any special
1 alignment to be done at such a time. Most machine descriptions do
1 not currently define the macro.
1
1 Unless it's necessary to inspect the LABEL parameter, it is better
1 to set the variable 'align_loops' in the target's
1 'TARGET_OPTION_OVERRIDE'. Otherwise, you should try to honor the
1 user's selection in 'align_loops' in a 'LOOP_ALIGN' implementation.
1
1 -- Target Hook: int TARGET_ASM_LOOP_ALIGN_MAX_SKIP (rtx_insn *LABEL)
1 The maximum number of bytes to skip when applying 'LOOP_ALIGN' to
1 LABEL. This works only if 'ASM_OUTPUT_MAX_SKIP_ALIGN' is defined.
1
1 -- Macro: LABEL_ALIGN (LABEL)
1 The alignment (log base 2) to put in front of LABEL. If
1 'LABEL_ALIGN_AFTER_BARRIER' / 'LOOP_ALIGN' specify a different
1 alignment, the maximum of the specified values is used.
1
1 Unless it's necessary to inspect the LABEL parameter, it is better
1 to set the variable 'align_labels' in the target's
1 'TARGET_OPTION_OVERRIDE'. Otherwise, you should try to honor the
1 user's selection in 'align_labels' in a 'LABEL_ALIGN'
1 implementation.
1
1 -- Target Hook: int TARGET_ASM_LABEL_ALIGN_MAX_SKIP (rtx_insn *LABEL)
1 The maximum number of bytes to skip when applying 'LABEL_ALIGN' to
1 LABEL. This works only if 'ASM_OUTPUT_MAX_SKIP_ALIGN' is defined.
1
1 -- Macro: ASM_OUTPUT_SKIP (STREAM, NBYTES)
1 A C statement to output to the stdio stream STREAM an assembler
1 instruction to advance the location counter by NBYTES bytes. Those
1 bytes should be zero when loaded. NBYTES will be a C expression of
1 type 'unsigned HOST_WIDE_INT'.
1
1 -- Macro: ASM_NO_SKIP_IN_TEXT
1 Define this macro if 'ASM_OUTPUT_SKIP' should not be used in the
1 text section because it fails to put zeros in the bytes that are
1 skipped. This is true on many Unix systems, where the pseudo-op to
1 skip bytes produces no-op instructions rather than zeros when used
1 in the text section.
1
1 -- Macro: ASM_OUTPUT_ALIGN (STREAM, POWER)
1 A C statement to output to the stdio stream STREAM an assembler
1 command to advance the location counter to a multiple of 2 to the
1 POWER bytes. POWER will be a C expression of type 'int'.
1
1 -- Macro: ASM_OUTPUT_ALIGN_WITH_NOP (STREAM, POWER)
1 Like 'ASM_OUTPUT_ALIGN', except that the "nop" instruction is used
1 for padding, if necessary.
1
1 -- Macro: ASM_OUTPUT_MAX_SKIP_ALIGN (STREAM, POWER, MAX_SKIP)
1 A C statement to output to the stdio stream STREAM an assembler
1 command to advance the location counter to a multiple of 2 to the
1 POWER bytes, but only if MAX_SKIP or fewer bytes are needed to
1 satisfy the alignment request. POWER and MAX_SKIP will be a C
1 expression of type 'int'.
1