Gcc
在另一個架構上執行 -march 優化軟體?
我正在使用 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 生成可能根本無法在指定處理器以外的處理器上執行的程式碼。