我需要在-m486
中使用GCC
标记编译旧代码。
但没有那面旗帜。然后我找到了-mtune=i486
和-arch=i486
我看过这个page。
但是仍然不知道-m486
哪个是最好的?
答案 0 :(得分:10)
-march
选项定义了可能使用的指令列表,-mtune
选项后来修改了优化过程。
您通常会使用-march
来指定最低要求,并使用-mtune
来优化大多数用户的用途。
例如,IA32架构定义了字符串处理和指令重复的各种指令。在386和486上,它们比显式汇编程序代码更快更小,因为可以跳过指令获取和解码阶段,而在较新的模型上,这些指令会阻塞指令管道,因为每个处理步骤都立即依赖于前一个,所以CPU的并行执行功能变得浪费。
Linux发行版通常使用-march=i486 -mtune=i686
来确保您仍然可以在486上安装和运行,但由于大多数用户拥有现代CPU,因此重点是让它以最佳方式运行。