为什么编译器不生成微指令而不是汇编代码?

Fel*_*ida 4 architecture compiler-construction optimization assembly low-level

我想知道为什么在现实世界中,编译器会生成汇编代码,而不是微指令.

如果您已经绑定了一个架构,那么为什么不进一步让处理器免于在运行时将汇编代码转换为微指令

我想也许某个地方存在实施瓶颈,但我在谷歌上找不到任何东西.

通过微指令编辑我的意思是:如果汇编指令是ADD(R1,R2),那么微指令就是.将R1加载到ALU,将R2加载到ALU,执行操作,将结果加载回R1.另一种看待这种情况的方法是将一个微指令等同于一个时钟周期.

我的印象是微指令是"官方"名称.显然这里有一些里程变化.

F A

Ned*_*der 16

编译器不生成微指令,因为处理器不执行微指令.它们是芯片的实现细节,而不是芯片外部暴露的东西.没有办法向芯片提供微指令.


Mar*_*tin 8

因为x86 CPU不执行微操作,所以它执行操作码.您无法创建包含微操作的二进制映像,因为无法以CPU理解的方式对它们进行编码.

你的建议基本上是一个新的RISC风格的x86 CPU指令集.没有发生的原因是因为它会破坏与为x86指令集编写的大量应用程序和操作系统的兼容性.