about summary refs log tree commit diff
path: root/arch/x32/pthread_arch.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-11-23 14:12:14 -0500
committerRich Felker <dalias@aerifal.cx>2014-11-23 14:12:14 -0500
commit9367fe926196f407705bb07cd29c6e40eb1774dd (patch)
tree67fde01cfd46a13297304de2976928e84802605b /arch/x32/pthread_arch.h
parent27828f7e9adb6b4f93ca56f6f98ef4c44bb5ed4e (diff)
downloadmusl-9367fe926196f407705bb07cd29c6e40eb1774dd.tar.gz
musl-9367fe926196f407705bb07cd29c6e40eb1774dd.tar.xz
musl-9367fe926196f407705bb07cd29c6e40eb1774dd.zip
fix build regression in arm asm for memcpy
commit 27828f7e9adb6b4f93ca56f6f98ef4c44bb5ed4e fixed compatibility
with clang's internal assembler, but broke compatibility with gas and
the traditional arm asm syntax by switching to the arm "unified
assembler language" (UAL). recent versions of gas also support UAL,
but require the .syntax directive to be used to switch to it. clang on
the other hand defaults to UAL. and old versions of gas (still
relevant) don't support UAL at all.

for the conditional ldm/stm instructions, "ia" is default and can just
be omitted, resulting in a mnemonic that's compatible with both
traditional and UAL syntax. but for byte/halfword loads and stores,
there seems to be no mnemonic compatible with both, and thus .word is
used to produce the desired opcode explicitly. the .inst directive is
not used because it is not compatible with older assemblers.
Diffstat (limited to 'arch/x32/pthread_arch.h')
0 files changed, 0 insertions, 0 deletions