Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
aarch64: Set the right intended alignment for constants
The align parameter to these macros is passed to the gas directive .align. This directive is architecture dependent; on some architectures, the given alignment is an alignment in bytes, while on others, its the power of two to align to. On aarch64, .align is for power of two alignment, see [1] for details; i.e. it behaves the same as .p2align. This means that when the macros are invoked with align=16, we actually requested 64 KB alignment, not 16 byte alignment. Fix this, setting the alignment to the intended 16 byte alignment. This fixes building for aarch64-windows targets with assert enabled versions of Clang; such versions of Clang error out with "unsupported section alignment" on this case, while regular release versions of Clang silently let this issue pass. [1] https://sourceware.org/binutils/docs/as/Align.html
- Loading branch information