as: P2align

1 
1 7.66 '.p2align[wl] ABS-EXPR, ABS-EXPR, ABS-EXPR'
1 ================================================
1 
1 Pad the location counter (in the current subsection) to a particular
1 storage boundary.  The first expression (which must be absolute) is the
1 number of low-order zero bits the location counter must have after
1 advancement.  For example '.p2align 3' advances the location counter
1 until it a multiple of 8.  If the location counter is already a multiple
1 of 8, no change is needed.
1 
1    The second expression (also absolute) gives the fill value to be
1 stored in the padding bytes.  It (and the comma) may be omitted.  If it
1 is omitted, the padding bytes are normally zero.  However, on most
1 systems, if the section is marked as containing code and the fill value
1 is omitted, the space is filled with no-op instructions.
1 
1    The third expression is also absolute, and is also optional.  If it
1 is present, it is the maximum number of bytes that should be skipped by
1 this alignment directive.  If doing the alignment would require skipping
1 more bytes than the specified maximum, then the alignment is not done at
1 all.  You can omit the fill value (the second argument) entirely by
1 simply using two commas after the required alignment; this can be useful
1 if you want the alignment to be filled with no-op instructions when
1 appropriate.
1 
1    The '.p2alignw' and '.p2alignl' directives are variants of the
1 '.p2align' directive.  The '.p2alignw' directive treats the fill pattern
1 as a two byte word value.  The '.p2alignl' directives treats the fill
1 pattern as a four byte longword value.  For example, '.p2alignw
1 2,0x368d' will align to a multiple of 4.  If it skips two bytes, they
1 will be filled in with the value 0x368d (the exact placement of the
1 bytes depends upon the endianness of the processor).  If it skips 1 or 3
1 bytes, the fill value is undefined.
1