【技术实现步骤摘要】
二进制翻译方法、装置、电子设备及存储介质
[0001]本专利技术涉及计算机
,特别是涉及一种二进制翻译方法
、
装置
、
电子设备以及存储介质
。
技术介绍
[0002]二进制翻译可以将运行在一种体系结构平台的源程序转换为运行在另一种体系结构平台的目标程序,以解决二进制层面的应用程序跨指令集架构运行的问题
。
二进制翻译是近年来计算机
的研究热点之一
。
[0003]二进制翻译过程中,由于两种架构指令集的差异,导致指令集语义表达层面的差距,如果将指令一条一条的对应翻译,可能会产生较多的冗余指令,从而影响翻译后程序的效率
。
[0004]通过指令优化可以减少冗余指令,提高翻译后程序的效率
。
指令优化指的是在翻译过程中识别多条指令组成的指令序列,替换为相同语义的目标指令,以减少冗余指令的产生
。
然而,指令优化通常是根据语义进行翻译,并不能覆盖指令的所有表达,因此优化过程中可能会丢失一部分信息
。
这样,如果在翻译过程中出现异常,将无法恢复至异常发生前的状态,可能导致程序崩溃
。
技术实现思路
[0005]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种二进制翻译方法,在指令优化过程中保留指令优化产生的差异信息,在出现异常等情况时可以根据记录的差异信息实现指令修正,以提高翻译后程序运行的正确性
。< ...
【技术保护点】
【技术特征摘要】
1.
一种二进制翻译方法,其特征在于,所述方法包括:在对基本块进行翻译的过程中,在所述基本块的指定区域记录优化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对应的位置信息,所述位置信息包括被优化指令的入口地址;在执行翻译后的基本块的过程中捕获目标消息,并根据触发所述目标消息的指令位置确定目标位置;所述目标消息包括用于指示出现异常或自修改的消息;根据所述目标位置对应的差异信息,对所述目标位置的优化后的指令序列进行修正
。2.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现异常的消息的情况下,所述对所述目标位置的优化后的指令序列进行修正,包括:对所述目标位置的优化后的指令序列的运行状态进行恢复;在所述目标消息为用于指示出现自修改的消息的情况下,所述对所述目标位置的优化后的指令序列进行修正,包括:对所述目标位置的优化后的指令序列的运行状态进行恢复,以及将所述目标位置的优化后的指令序列恢复为优化前的指令序列
。3.
根据权利要求2所述的方法,其特征在于,所述差异信息包括所述优化前的指令序列的运行状态,所述运行状态包括目标环境和目标现场;所述目标环境包括优化前的内存数据和操作系统状态,所述目标现场包括优化前的寄存器数据和处理器状态;所述对所述目标位置的优化后的指令序列的运行状态进行恢复,包括:将所述目标位置的优化后的指令序列的运行状态恢复至优化前的指令序列的运行状态
。4.
根据权利要求3所述的方法,其特征在于,所述差异信息还包括差异指令,所述差异指令包括所述优化后的指令序列相对于所述优化前的指令序列缺失的指令,所述将所述目标位置的优化后的指令序列恢复为优化前的指令序列,包括:在所述目标环境和所述目标现场下,在所述目标位置处恢复所述差异指令,得到优化前的指令序列
。5.
根据权利要求4所述的方法,其特征在于,所述在所述目标位置处恢复所述差异指令,包括:若所述目标位置满足原位修正条件,则在所述目标位置处插入所述差异指令;若所述目标位置不满足原位修正条件,则对所述目标位置的后续指令进行移位改写后在所述目标位置处插入所述差异指令,或者,对所述目标位置所在的基本块进行重新翻译
。6.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现异常的消息的情况下,所述根据触发所述目标消息的指令位置确定目标位置,包括:确定触发所述目标消息的指令位置以及该指令位置所在基本块内的前序指令位置为目标位置
。7.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现自修改的消息的情况下,所述根据触发所述目标消息的指令位置确定目标位置,包括:确定触发所述目标消息的基本块的前序基本块中各指令位置为目标位置
。8.
一种二进制翻译装置,其特征在于,所述装置包括:差异记录模块,用于在对基本块进行翻译的过程中,在所述基本块的指定区域记录优
化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对...
【专利技术属性】
技术研发人员:胡起,兰彦志,曾露,
申请(专利权)人:龙芯中科技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。