3 ms·
A couple of issues that came up for me when porting from x86 to ARM recently: 1. The x86 architecture gives programmers a lot of memory ordering guarantees, so
by garethrees 4y ago
A couple of issues that came up for me when porting from x86 to ARM recently:
1. The x86 architecture gives programmers a lot of memory ordering guarantees, so that communication of values between threads does not usually need memory fences. ARM64 does not give so many guarantees, meaning that multi-threaded code may need additional memory fences to avoid data races. But data races due to out-of-order memory updates are hard to diagnose.
2. Page size in macOS is 4 kB on x86, but 16 kB on ARM, so if someone has hard-coded the page size rather than calling sysconf(_SC_PAGESIZE) this may need to be discovered and fixed.