ARM CPU Architecture#

There are a number of considerations when porting applications from x86_64 to ARM:

  • The instruction set differs. In particular, assembly- or compiler-intrinsics-based SIMD code needs to use the appropriate ARM extensions instead.

  • The memory ordering differs. Memory accesses between threads within the same process are weakly ordered on ARM, while x86_64 implements total store order. Correctly written multi-threaded programs behave the same on both architectures. But faulty code can result in unexpected behavior when porting to ARM.