Differences between arm64 and aarch64 Differences between arm64 and aarch64 ios ios

Differences between arm64 and aarch64


AArch64 is the 64-bit state introduced in the Armv8-A architecture (https://en.wikipedia.org/wiki/ARM_architecture#ARMv8-A). The 32-bit state which is backwards compatible with Armv7-A and previous 32-bit Arm architectures is referred to as AArch32.Therefore the GNU triplet for the 64-bit ISA is aarch64.The Linux kernel community chose to call their port of the kernel to this architecture arm64 rather than aarch64, so that's where some of the arm64 usage comes from.

As far as I know the Apple backend for aarch64 was called arm64 whereas the LLVM community-developed backend was called aarch64 (as it is the canonical name for the 64-bit ISA) and later the two were merged and the backend now is called aarch64.

So AArch64 and ARM64 refer to the same thing.


It seems that ARM64 was created by Apple and AARCH64 by the others, most notably GNU/GCC guys.

After some googling I found this link:

The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

So it makes sense, iPad calls itself ARM64, as Apple is using LLVM, and Edge uses AARCH64, as Android is using GNU GCC toolchain.


Linux thinks they are the same;

find ./* -name aarch64./tools/testing/selftests/kvm/lib/aarch64./tools/testing/selftests/kvm/include/aarch64./tools/testing/selftests/kvm/aarch64find ./* -name arm64./arch/arm64    ./Documentation/arm64./Documentation/translations/zh_CN/arm64./drivers/acpi/arm64./include/config/crypto/ghash/arm64./include/config/crypto/crct10dif/arm64./include/config/crypto/aes/arm64./include/config/crypto/sha1/arm64./include/config/crypto/sha2/arm64./include/config/crypto/sm3/arm64./include/config/crypto/sha512/arm64./include/config/arm64./include/config/exynos/arm64./scripts/dtc/include-prefixes/arm64./tools/testing/selftests/arm64./tools/arch/arm64./tools/perf/arch/arm64./tools/perf/pmu-events/arch/arm64