能不能以x86指令为源码,“编译”成mips指令
gcc编译器先把c或c++ 编译成平台无关的中间指令,然后再把中间指令变成x86或mips或arm指令。
能否把x86指令,反编译成中间指令,再变成mips指令。
这个方案可行吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
gcc编译器先把c或c++ 编译成平台无关的中间指令,然后再把中间指令变成x86或mips或arm指令。
能否把x86指令,反编译成中间指令,再变成mips指令。
这个方案可行吗
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
可行,二进制翻译。
原理上自然可以,虚拟机就是这样的.但翻译为别的汇编码呈现在你的面前的程序,这个我还不知道有没有现成的
动态二进制翻译后的执行效率损失大吗? 这个是关键。
如果二进制翻译能够消除CPU架构差异带来的性能损失,加上wine
那龙芯的linux, 是否能够跑x86上的windows程序
在龙芯+Linux上跑Windows,和SPARC+Linux上跑Windows,原理上都是一样的,用QEMU就完全可以做到。
QEMU的效率怎么样。
比如一个不依赖其他库的纯计算的程序,在x86平台与mips平台上用qemu模拟的,性能差多少。
如果是把QEMU运行在x86平台与运行在Mips平台相比,那就和各自的CPU性能有关了。
如果你的意思是说,把这个纯计算程序运行在QEMU中,与运行在真实机中相比,QEMU的性能大概相当于真实机的40%,加上KVM模块的话,能达到70-80%。
不知道你说的是指什么,例如在x86上通过QEMU再跑一个x86版本的Linux,和跑一个PowerPC的Linux效率上不同吧?对于同构的情况虚拟机能做许多优化,但对于跨体系结构,则多数会慢许多。
qemu确实很强,用了动态二进制翻译。target支持的架构很多, host就不支持mips, 不过相信不久就可以了。
http://www.qemu.org/status.html
kvm 是不是只能仿真x86指令?
有空研究一下,有点意思。
[ 本帖最后由 ninesunqian 于 2009-8-20 16:53 编辑 ]