Skip to content

Prevent the use of ISB on ARM platforms that don't support it

Aiden Grossman requested to merge arm-isb-patch into master

Currently, vtkAtomicMutex's definition of SSE's _mm_pause function for ARM platforms uses the ISB instruction inserted through inline assembly. However, some older platforms don't support this instruction (ie anything that doesn't support thumbs2), including the arm1176 core used on the original Raspberry Pi. This patch adds a preprocessor check to make sure that the ARM target being built for also has support for thumbs2 to avoid an assembler error at build time. This shouldn't impact any functionality as the intention of the _mm_pause function is solely to increase power efficiency and performance in spin wait loops. We're currently using this patch in Alpine Linux to make sure that our builds work on one of our older arm configurations.

Merge request reports