ARM should use LDREX/STREX not SWPW for arch >= 6, including Rpi2
Issue #328
new
Newer multiprocessor ARMs use LDREX/STREX for interlocking, and SWP is either an illegal op or valid but ineffective on a multicore (depending how a control bit is set). As with VFP support, there needs to be a way to configure a few relevant differences between ARM models.
Maybe the Plan 9 implementation for Tegra 2 might be useful?