Инструкции SSE4 в VS2005? - PullRequest
       27

Инструкции SSE4 в VS2005?

3 голосов
/ 12 декабря 2008

Мне нужно использовать команду popcnt в проекте, который скомпилирован с использованием Visual Stdio 2005
Встроенный __popcnt() работает только с VS2008, и компилятор, похоже, не распознает инструкцию, даже когда я пишу в блоке __asm {}.

Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2008

Ладно, это дикая догадка, но ... если вы настроили VS2005, например, this для работы на ассемблере, то вы можете получить руководство SSE4.1 от Intel и код макроса для каждого необходимого кода операции SSE4.1 в соответствии с этим потоком на masm32.com (где обсуждается аналогичная проблема с SSE2.)

Например, вот код из одной из загрузок по ссылке masm32:

;SSE2 macros for MASM 6.14 by daydreamer aka Magnus Svensson

ADDPD MACRO M1,M2
    db 066h
    ADDPS M1,M2
ENDM

ADDSD MACRO M1,M2
    DB 0F2H
    ADDPS M1,M2
ENDM
2 голосов
/ 03 февраля 2009

В качестве небольшой заметки вы можете использовать __emit для помещения байтов в блоки __asm ​​в VC ++. Во многих случаях это проще, чем связывание с объектами, созданными с помощью masm. Я использовал это в прошлом, когда SSE3 был новым (и коды операций не поддерживались в VS 2003).

Все коды операций хорошо документированы Intel .

...