次の問題があります。
いくつかの命令を使用して、xop チェックに関連するいくつかのテストがありBulldozer (xop)ます。
そして、このテストはBulldozerプロセッサ上でのみ実行する必要があります。プロセッサがコンパイル時に命令を
サポートしていることを確認するにはどうすればよいですか?xop
言語: C、OS: Linux ;
次の問題があります。
いくつかの命令を使用して、xop チェックに関連するいくつかのテストがありBulldozer (xop)ます。
そして、このテストはBulldozerプロセッサ上でのみ実行する必要があります。プロセッサがコンパイル時に命令を
サポートしていることを確認するにはどうすればよいですか?xop
言語: C、OS: Linux ;
CPUIDをチェックするプログラムを作成し、コンパイル中にそのプログラムの出力を使用できます。
gcc $(cpuid_test) my_prog.c
cpuid_testが返す場所'-march=bdver1'または-DXOP_SUPPORT=1
コンパイル時にテストすることはできませんが、次を使用して AMD Bulldozer 用にコンパイルできます。
$ gcc -march=bdver1 -mtune=bdver1 ...
参照: http://gcc.gnu.org/gcc-4.6/changes.html
ビルド マシンがターゲット マシンである場合は、 を調べてください/proc/cpuinfo。
ソースが-march=bdver1(特に XOP サポートを有効にする) でコンパイルされている場合、プリプロセッサ マクロ__XOP__は 1 に定義されます。
XOPのコンパイル時にテストできます
#ifdef __XOP__
...XOP code path here...
#else
...non XOP code here...
#endif