在另一个架构上运行 -march 优化的软件?

thp*_*rus 3 64bit gcc x86 virtualization

我正在运行带有 LFS 的 Athlon64 服务器,并希望在虚拟机中拥有该服务器的本地副本,以用于测试目的和构建软件。

我的电脑使用 i7,现有的服务器软件是用 -march=athlon64 构建的。尽管进行了优化,我能否在我的硬件上运行它?

Dav*_*rtz 6

-march标志允许编译器使用不受其他CPU支持的指令。-march=athlon64i7 不支持一些合法使用的指令。这些是 3DNow!和增强的 3DNow!未包含在 MMX 或整数 SSE 中的指令。如果代码使用像PFPNACC这样的指令,它会在你的 i7 上出错

也就是说,它实际上使用任何此类指令的可能性极小,因为通常发现这些指令几乎没有用——有用的 3DNow! 指令已合并到您的 CPU 支持的 MMX 或 iSSE 中。

所以它不能保证工作,但它可能会。

-march=cpu-type:为机器类型生成指令cpu-type。...-march=cpu-type允许 GCC 生成在指定处理器以外的处理器上可能根本无法运行的代码。