__aarch64__ is defined for the target (since the beginning of arm64 support: clang 3.5).
__arm64__ is only defined for the Darwin OS on AArch64.
defined(__aarch64__) || defined(__arm64__) can be simplied as defined(__aarch64__)
Darwin AArch64 uses %% as the assembly separator (see AArch64MCAsmInfo.cpp).
Make the intention explicit in src/assembly.h
With this change, the libunwind code base has no reference of __arm64__/__arm64.