Gcc

在另一個架構上執行 -march 優化軟體?

  • January 29, 2013

我正在使用 LFS 執行 Athlon64 伺服器,並希望在虛擬機中擁有伺服器的本地副本,用於測試目的和建構軟體。

我的 PC 使用 i7,現有的伺服器軟體是使用 -march=athlon64 建構的。儘管進行了優化,我能否在我的硬體上執行它?

-march標誌允許編譯器使用其他 CPU 不支持的指令。有一些-march=athlon64您的 i7 不支持的合法使用說明。這些是 3DNow!和增強的 3DNow!未包含在 MMX 或整數 SSE 中的指令。如果程式碼使用PFPNACC之類的指令,它將在您的 i7 上出現故障。

也就是說,它實際上不太可能使用任何此類指令,因為通常發現這些指令幾乎沒有用 - 有用的 3DNow!指令已合併到您的 CPU 支持的 MMX 或 iSSE 中。

所以它不能保證工作,但它可能會。

-march=cpu-type:為機器類型生成指令cpu-type。…-march=cpu-type允許 GCC 生成可能根本無法在指定處理器以外的處理器上執行的程式碼。

引用自:https://unix.stackexchange.com/questions/63019