0

我有下一个问题:我使用一些说明
进行了一些与 xop 检查相关的测试。 而且我必须只在处理器上运行这个测试。 如何在编译时检查我的处理器是否支持指令? Bulldozer (xop)
Bulldozer
xop

语言: C操作系统: Linux

4

3 回答 3

0

您可以编写一个检查 CPUID 的程序,并在编译时使用该程序的输出:
gcc $(cpuid_test) my_prog.c

cpuid_test 返回'-march=bdver1'-DXOP_SUPPORT=1

于 2012-11-08T07:28:47.950 回答
0

如果使用源编译-march=bdver1(其中启用 XOP 支持),则预处理器宏__XOP__将定义为 1。

您可以在编译时测试 XOP

#ifdef __XOP__
     ...XOP code path here...
#else
     ...non XOP code here...
#endif 
于 2012-11-09T00:22:25.940 回答
0

您无法在编译时进行测试,但您可以使用以下命令为 AMD Bulldozer 进行编译:

$ gcc -march=bdver1 -mtune=bdver1 ...

见: http: //gcc.gnu.org/gcc-4.6/changes.html

如果您的构建机器是您的目标机器,请查看/proc/cpuinfo.

于 2012-11-08T07:17:14.220 回答