Использование инструкции сборки bts с компилятором gcc

Я хочу использовать инструкции по сборке bts и bt x86 для ускорения битовых операций в моем коде C ++ на Mac. В Windows встроенные функции _bittestandset и _bittest работают хорошо и обеспечивают значительный прирост производительности. На Mac компилятор gcc некажется, не поддерживаю их, поэтому яЯ пытаюсь сделать это прямо в ассемблере.

Вот'мой код C ++ (обратите внимание, что 'немного' может быть>= 32):

typedef unsigned long LongWord;
#define DivLongWord(w) ((unsigned)w >> 5)
#define ModLongWord(w) ((unsigned)w & (32-1))

inline void SetBit(LongWord array[], const int bit)
{
   array[DivLongWord(bit)] |= 1 < ModLongWord(bit);
}

inline bool TestBit(const LongWord array[], const int bit)
{
    return (array[DivLongWord(bit)] & (1 < ModLongWord(bit))) != 0;
}

Ответы на вопрос(3)

Ваш ответ на вопрос