每次发布新处理器时,处理器支持的指令集都会发生变化。例如,Haswell 具有高级矢量扩展。但是,当我在配备 Haswell 处理器的 PC 上运行程序时,我通常会运行通用的 AMD64 二进制文件:编译器不知道这些指令可用。这些二进制文件如何仍然利用新架构中添加的新指令?
答案1
除非二进制文件经过编译以检查扩展并在存在扩展时使用它们,否则它们不会利用指令集扩展中的新指令。
每次发布新处理器时,处理器支持的指令集都会发生变化。例如,Haswell 具有高级矢量扩展。但是,当我在配备 Haswell 处理器的 PC 上运行程序时,我通常会运行通用的 AMD64 二进制文件:编译器不知道这些指令可用。这些二进制文件如何仍然利用新架构中添加的新指令?
除非二进制文件经过编译以检查扩展并在存在扩展时使用它们,否则它们不会利用指令集扩展中的新指令。