История изменений
Исправление vbr, (текущая версия) :
Ну собственно я на это вышел через изучение https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html где написано
-mcx16
This option enables GCC to generate CMPXCHG16B instructions in 64-bit code to implement compare-and-exchange operations on 16-byte aligned 128-bit objects. This is useful for atomic updates of data structures exceeding one machine word in size. The compiler uses this instruction to implement Legacy __sync Built-in Functions for Atomic Memory Access. However, for Built-in Functions for Memory Model Aware Atomic Operations operating on 128-bit integers, a library call is always used.
Так что вот так.
Также замечу, что там написано legacy, а не deprecated. Есть основания полагать, что это разные вещи в плане вероятности выкидывания в обозримом будущем.
Исходная версия vbr, :
Ну собственно я на это вышел через изучение https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html где написано
-mcx16
This option enables GCC to generate CMPXCHG16B instructions in 64-bit code to implement compare-and-exchange operations on 16-byte aligned 128-bit objects. This is useful for atomic updates of data structures exceeding one machine word in size. The compiler uses this instruction to implement Legacy __sync Built-in Functions for Atomic Memory Access. However, for Built-in Functions for Memory Model Aware Atomic Operations operating on 128-bit integers, a library call is always used.
Так что вот так.