Такие вещи, как "spin_wait", не переносимы и должны быть (пере) записаны в соответствии с целевой платформой.Прошло много времени с тех пор, как я рассмотрел ужасный синтаксис GAS, но xorq означает, что фрагмент предназначен для x86-64, верно?Компиляторы Microsoft не поддерживают встроенную сборку для 64-битных целей.
Будет ли _AcquireSpinLock , возможно, справиться?
Для больших блоков сборки (частей, которые обычно * 1007)* имеет смысл писать в сборке), я бы посоветовал вам использовать внешний модуль сборки с кроссплатформенным ассемблером с нормальным синтаксисом и хорошим набором функций (например, yasm, fasm или nasm).Конечно, это не жизнеспособно для чего-то столь же важного и обязательного для исполнения, как спин-блокировка, хотя:)