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.