I'm interested if ARM assembly common for all types of ARM's? For example if I write some function in ARM
assembly will it works the same on Cortex, Nvidia Tegra, Qualcomm etc? Can I use the same instruction set or SIMD
engines or NEON
on different ARM processors (like in x86-64 assembly)?
You list Cortex, Nvidia Tegra, and Qualcomm in one sentence which is sort of mixing concepts - Cortex is the name of the CPU core family developed by ARM, while Tegra names a system-on-chip using ARM CPU, e.g. Tegra 2/3 chips use Cortex-A9 cores.
What's important for you is the instruction set supported by each of the target chips, which in turn depends on ARM core used. This overview of existing ARM cores can be a good starting point. Also, this diagram from ARM's page gives a great, quick overview.
Another good document to check is ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition (you need to register for a free account to access it).
As of NEON, according to ARM web page, Cortex-A7, Cortex-A8 and Cortex-A15 cores are equipped with NEON by default, while for Cortex-A5 and Cortex-A9 it's optional feature (i.e. chip manufacturer decides about including it). Again, you have to consult the chip's datasheet in this case to check if NEON is supported.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With