Как бы вы достигли 128-битных атомных операций в x86?x86 128-битные атомы ops
Руководство по системному программированию Intel, часть 1, 8.1 Заблокированные атомные операции определяют гарантированные 16-, 32- и 64-разрядные атомные операции. Итак, можете ли вы выполнить 128-битные атомные операции, выполнив 2 64-битных опса с префиксом LOCK? Что-то вроде ...
LOCK mov 64bits->addr
LOCK mov 64bits->addr+64bits
Aparently SSE имеет 128-битные регистры XMM. Можете ли вы просто сделать 128-битный метод сравнения и замены с помощью этих регистров?
Вы можете выполнить атомный 16-байтовый обмен по обмену ('CMPXCHG16B'). –
Вы пытаетесь сделать это в 32-разрядной версии x86 или в x64? – user200783
x86_64, 64-разрядный режим – brooksbp