发明名称 中间语言的延迟跳转指令二进制翻译实现的方法
摘要 本发明涉及的是一种电信技术领域的中间语言的延迟跳转指令二进制翻译实现的方法。当二进制翻译器遇到延迟跳转指令时,保存跳转的目的地址为addr,值为用当前PC值加上指令中对应位表示的跳转偏移值;当annul bit为0时,先翻译延迟槽中的指令为对应的中间指令,再翻译当前的这条Branch指令;当annul bit为1,即不跳转则忽略延迟槽中的指令时,先以相反的条件翻译Branch指令,目的地址为延迟槽后的第一条指令;然后翻译延迟槽中的指令为中间指令;最后再在中间指令基本块中添加一条直接跳转指令,目的地址为先前保存的addr;将中间指令基本块提交给二进制翻译器后端翻译为后端指令执行。本发明执行准确,效率高,在二进制翻译领域具有通用性。
申请公布号 CN101604255A 申请公布日期 2009.12.16
申请号 CN200910055218.6 申请日期 2009.07.23
申请人 上海交通大学 发明人 管海兵;梁阿磊;左保京;章一超;孙廷韬
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 上海交达专利事务所 代理人 王锡麟;王桂忠
主权项 1、一种中间语言的延迟跳转指令二进制翻译实现的方法,其特征在于,利用独立于源机器语言和目标机器语言的中间语言来正确地表达源平台延迟跳转指令的语义,然后提交给后端翻译为目标机器语言执行,当二进制翻译器遇到延迟跳转指令时,翻译中间指令的步骤如下:步骤一,保存跳转的目的地址为addr,值为用当前PC值加上指令中对应位表示的跳转偏移值;步骤二,当annul bit为0时,先翻译延迟槽中的指令为对应的中间指令,再翻译当前的这条Branch指令;步骤三,当annul bit为1,即不跳转则忽略延迟槽中的指令时,先以相反的条件翻译Branch指令,目的地址为延迟槽后的第一条指令;然后翻译延迟槽中的指令为中间指令;最后再在中间指令基本块中添加一条直接跳转指令,目的地址为先前保存的addr;步骤四,将中间指令基本块提交给二进制翻译器后端翻译为后端指令执行。
地址 200240上海市闵行区东川路800号