程序如何知道何时在扩展指令集中使用操作码?

时间:2012-07-19 00:23:32

标签: compilation opcode instruction-set

我知道在SSE4中,有一些指令添加了益处字符串搜索,特别是xml解析。那么说我编写了一个利用这些指令的程序,当我将程序移动到另一台没有SSE4指令集的旧处理器的计算机时会发生什么?该计划刚破裂吗?

我假设编译器会生成哪些指令用作其优化过程的一部分,如果编译器在旧的i386上运行但该软件的目标是i486,那么我只丢失这六条指令吗?

如果它是如何工作的,那么我有一些音频制作软件是如何在我安装它的任何计算机上正常工作但声称利用这些扩展指令。它只是一个运行时检查和不同的代码路径吗?

如何影响java字节码或msil等中间语言?

1 个答案:

答案 0 :(得分:1)

您需要做的是:

您可以为不同的指令集编写不同版本的代码。您不需要重写整个程序,但您必须重写这些特定区域。然后在程序执行时,检查支持的内容并进行适当的分支。

基本上,您为没有此指令集的系统提供了替代代码路径。