Assembler Commands for Alignment#
This describes commands for alignment.
-
JUMP_ALIGN(label)#
The alignment (log base 2) to put in front of
label, which is a common destination of jumps and has no fallthru incoming edge.This macro need not be defined if you don’t want any special alignment to be done at such a time. Most machine descriptions do not currently define the macro.
Unless it’s necessary to inspect the
labelparameter, it is better to set the variablealign_jumpsin the target’sTARGET_OPTION_OVERRIDE. Otherwise, you should try to honor the user’s selection inalign_jumpsin aJUMP_ALIGNimplementation.
-
LABEL_ALIGN_AFTER_BARRIER(label)#
The alignment (log base 2) to put in front of
label, which follows aBARRIER.This macro need not be defined if you don’t want any special alignment to be done at such a time. Most machine descriptions do not currently define the macro.
-
LOOP_ALIGN(label)#
The alignment (log base 2) to put in front of
labelthat heads a frequently executed basic block (usually the header of a loop).This macro need not be defined if you don’t want any special alignment to be done at such a time. Most machine descriptions do not currently define the macro.
Unless it’s necessary to inspect the
labelparameter, it is better to set the variablealign_loopsin the target’sTARGET_OPTION_OVERRIDE. Otherwise, you should try to honor the user’s selection inalign_loopsin aLOOP_ALIGNimplementation.
-
LABEL_ALIGN(label)#
The alignment (log base 2) to put in front of
label. IfLABEL_ALIGN_AFTER_BARRIER/LOOP_ALIGNspecify a different alignment, the maximum of the specified values is used.Unless it’s necessary to inspect the
labelparameter, it is better to set the variablealign_labelsin the target’sTARGET_OPTION_OVERRIDE. Otherwise, you should try to honor the user’s selection inalign_labelsin aLABEL_ALIGNimplementation.
-
ASM_OUTPUT_SKIP(stream, nbytes)#
A C statement to output to the stdio stream
streaman assembler instruction to advance the location counter bynbytesbytes. Those bytes should be zero when loaded.nbyteswill be a C expression of typeunsigned HOST_WIDE_INT.
-
ASM_NO_SKIP_IN_TEXT#
Define this macro if
ASM_OUTPUT_SKIPshould not be used in the text section because it fails to put zeros in the bytes that are skipped. This is true on many Unix systems, where the pseudo–op to skip bytes produces no-op instructions rather than zeros when used in the text section.
-
ASM_OUTPUT_ALIGN(stream, power)#
A C statement to output to the stdio stream
streaman assembler command to advance the location counter to a multiple of 2 to thepowerbytes.powerwill be a C expression of typeint.
-
ASM_OUTPUT_ALIGN_WITH_NOP(stream, power)#
Like
ASM_OUTPUT_ALIGN, except that the ‘nop’ instruction is used for padding, if necessary.
-
ASM_OUTPUT_MAX_SKIP_ALIGN(stream, power, max_skip)#
A C statement to output to the stdio stream
streaman assembler command to advance the location counter to a multiple of 2 to thepowerbytes, but only ifmax_skipor fewer bytes are needed to satisfy the alignment request.powerandmax_skipwill be a C expression of typeint.