-mtune = i486和-arch = i486之间有什么不同

时间:2012-10-17 07:18:14

标签: c linux gcc compiler-construction

我需要在-m486中使用GCC标记编译旧代码。 但没有那面旗帜。然后我找到了-mtune=i486-arch=i486
我看过这个page。 但是仍然不知道-m486哪个是最好的?

1 个答案:

答案 0 :(得分:10)

-march选项定义了可能使用的指令列表,-mtune选项后来修改了优化过程。

您通常会使用-march来指定最低要求,并使用-mtune来优化大多数用户的用途。

例如,IA32架构定义了字符串处理和指令重复的各种指令。在386和486上,它们比显式汇编程序代码更快更小,因为可以跳过指令获取和解码阶段,而在较新的模型上,这些指令会阻塞指令管道,因为每个处理步骤都立即依赖于前一个,所以CPU的并行执行功能变得浪费。

Linux发行版通常使用-march=i486 -mtune=i686来确保您仍然可以在486上安装和运行,但由于大多数用户拥有现代CPU,因此重点是让它以最佳方式运行。