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