Вдохновленный недавним вопросом , я хотел бы знать, знает ли кто, как получить gcc
для генерации инструкции x86-64 bts
(бит тест и набор) на платформах x86-64 Linux, не прибегая к встроенной сборке или к нестандартным встроенным компиляторам.
Похожие вопросы:
-
Почему gcc не делает этого для простой операции
|=
, если правая часть имеет ровно 1 бит? -
Как получить
bts
с использованием встроенных компиляторов или директивыasm
Переносимость для меня важнее, чем bts
, поэтому я не буду использовать директиву и asm
, а если есть другое решение, я предпочитаю не использовать инкрементные установки компилятора.
EDIT: исходный язык C не поддерживает атомарные операции, поэтому я не особо заинтересован в получении атомарного тестирования и настройки (хотя исходная причина тестового набора чтобы существовать в первую очередь). Если я хочу что-то атомарное, я знаю, что у меня нет шансов сделать это со стандартным источником C: это должна быть внутренняя, библиотечная функция или встроенная сборка. (Я реализовал атомарные операции в компиляторах, которые поддерживают несколько потоков.)