Visual Stdio 2005 を使用してコンパイルされたプロジェクトで popcnt 命令を使用する必要があります
。組み込み関数は VS2008 でのみ機能し、ブロック__popcnt()
に記述してもコンパイラは命令を認識しないようです。__asm {}
これを行う方法はありますか?
Visual Stdio 2005 を使用してコンパイルされたプロジェクトで popcnt 命令を使用する必要があります
。組み込み関数は VS2008 でのみ機能し、ブロック__popcnt()
に記述してもコンパイラは命令を認識しないようです。__asm {}
これを行う方法はありますか?
さて、これは大げさな推測ですが...アセンブリ言語を実行するためにこのようにVS2005を設定したと仮定すると、IntelからSSE4.1マニュアルを入手し、各SSE4.1オペコードのマクロをコーディングできます。 masm32.comのこのスレッド(SSE2と同様の問題について説明しています)に従って必要なものです。
たとえば、masm32リンクからのダウンロードの1つからのコードを次に示します。
;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
ちょっとした注意として、__emit を使用して、バイトを VC++ の __asm ブロックに入れることができます。これは多くの場合、masm で生成されたオブジェクトとリンクするよりも簡単です。以前、SSE3 が新しくなったときにこれを使用しました (そして、VS 2003 ではオペコードがサポートされていませんでした)。
すべてのオペコードは、Intel によって詳細に文書化されています。