二进制翻译方法技术

技术编号:39591398 阅读:7 留言:0更新日期:2023-12-03 19:45
本发明专利技术实施例提供了一种二进制翻译方法

【技术实现步骤摘要】
二进制翻译方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,特别是涉及一种二进制翻译方法

一种二进制翻译装置

一种电子设备以及一种存储介质


技术介绍

[0002]二进制翻译可以将运行在一种体系结构平台的源程序转换为运行在另一种体系结构平台的目标程序

在二进制翻译的应用场景下,源程序运行的体系结构平台被称作
GUEST(
客户
)
平台,目标程序运行的体系结构平台被称作
HOST(
宿主
)
平台

由于宿主平台与客户平台的架构特性差异,宿主平台在对客户平台的指令进行翻译时,若指令对应的访存地址不满足宿主平台支持的对齐访问状态的要求,在宿主平台中则为非对齐访问状态

这样,就无法保证将客户平台的指令翻译到宿主平台后运行结果的一致性,进而影响源程序指令翻译的准确性


技术实现思路

[0003]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种二进制翻译方法,以提高宿主平台对客户平台的目标指令进行翻译的准确性

[0004]相应的,本专利技术实施例还提供了一种二进制翻译装置

一种电子设备以及一种存储介质,用以保证上述方法的实现及应用

[0005]为了解决上述问题,本专利技术实施例公开了一种二进制翻译方法,应用于宿主平台,所述方法包括:
[0006]在对客户平台的目标指令进行翻译的情况下,基于目标掩码数据以及原始内存数据,确定第一目标数据;所述原始内存数据是基于所述目标指令指示的目标内存地址读取到的,所述目标掩码数据是基于所述原始内存数据确定的,所述原始内存数据中包含有效字段以及非有效字段,所述第一目标数据中包含所述非有效字段;
[0007]基于所述目标指令对应的计算语义,获取其有效字段经逻辑右移处理后的所述原始内存数据对应的计算结果,得到第一计算结果;所述第一计算结果中包含所述有效字段对应的目标字段,所述目标字段用于表征所述目标指令在所述客户平台运行时对应的真实计算结果;
[0008]基于其目标字段经逻辑左移处理后的所述第一计算结果以及所述第一目标数据,确定目标运算结果;所述目标运算结果包括所述目标字段以及所述非有效字段;
[0009]将所述目标运算结果存储至所述目标指令指示的指定内存地址

[0010]可选地,所述方法还包括:
[0011]确定所述原始内存数据中有效字段对应的第一值位以及非有效字段对应的第二值位;
[0012]将所述原始内存数据中第一值位对应的字段内容填充为第一数值,以及,将所述
原始内存数据中第二值位对应的字段内容填充为第二数值;
[0013]确定包含所述第一数值以及所述第二数值的原始内存数据为所述目标掩码数据

[0014]可选地,所述基于目标掩码数据以及原始内存数据,确定第一目标数据,包括:
[0015]获取所述目标掩码数据,以及从所述目标指令指示的目标内存地址中获取原始内存数据;
[0016]对所述目标掩码数据以及所述原始内存数据进行逻辑与操作,得到第一目标数据;
[0017]所述第一目标数据中与所述第一值位对应的字段内容为所述第一数值,所述第一目标数据中与所述第二值位对应的字段内容为所述非有效字段

[0018]可选地,所述基于所述目标指令对应的计算语义,获取其有效字段经逻辑右移处理后的所述原始内存数据对应的计算结果,得到第一计算结果,包括:
[0019]对所述原始内存数据中的有效字段进行逻辑右移,确定第二目标数据;所述第二目标数据的指定值位对应的字段内容为所述有效字段;
[0020]基于所述目标指令对应的计算语义,获取所述第二目标数据对应的计算结果,得到所述第一计算结果;所述第一计算结果的指定值位对应的字段内容为所述有效字段对应的目标字段

[0021]可选地,所述基于其目标字段经逻辑左移处理后的所述第一计算结果以及所述第一目标数据,确定目标运算结果,包括:
[0022]对所述第一计算结果中的目标字段进行逻辑左移,并将所述第一计算结果的非目标字段替换为第一数值,得到第三目标数据;所述第三目标数据中的目标字段对应的值位与所述原始内存数据中有效字段对应的值位一致;
[0023]对所述第三目标数据以及所述第一目标数据执行逻辑或操作,得到所述目标运算结果

[0024]可选地,在所述目标指令为原子指令的情况下,所述方法还包括:
[0025]基于所述原子指令,生成目标指令序列;
[0026]基于所述目标指令序列中的链接加载指令,从所述原子指令指示的目标内存地址中获取原始内存数据,并将所述原始内存数据分别存储至第一寄存器以及第二寄存器,得到第一内存数据以及第二内存数据;
[0027]所述第一内存数据用于进行计算,所述第二内存数据用于使得所述目标运算结果中的非有效字段保持不变

[0028]可选地,所述将所述目标运算结果存储至所述原子指令指示的指定内存地址,包括:
[0029]基于所述目标指令序列中的条件存储指令,在检测到不存在其他访问目标内存地址的操作的情况下,将所述目标运算结果写入所述目标内存地址;
[0030]在检测到存在其他访问目标内存地址的操作的情况下,重新执行所述基于所述目标指令序列中的链接加载指令,从所述原子指令指示的目标内存地址中获取原始内存数据的操作

[0031]本专利技术实施例还公开了一种二进制翻译装置,应用于宿主平台,包括:
[0032]第一确定模块,用于在对客户平台的目标指令进行翻译的情况下,基于目标掩码
数据以及原始内存数据,确定第一目标数据;所述原始内存数据是基于所述目标指令指示的目标内存地址读取到的,所述目标掩码数据是基于所述原始内存数据确定的,所述原始内存数据中包含有效字段以及非有效字段,所述第一目标数据中包含所述非有效字段;
[0033]第一获取模块,用于基于所述目标指令对应的计算语义,获取其有效字段经逻辑右移处理后的所述原始内存数据对应的计算结果,得到第一计算结果;所述第一计算结果中包含所述有效字段对应的目标字段,所述目标字段用于表征所述目标指令在所述客户平台运行时对应的真实计算结果;
[0034]第二确定模块,用于基于其目标字段经逻辑左移处理后的所述第一计算结果以及所述第一目标数据,确定目标运算结果;所述目标运算结果包括所述目标字段以及所述非有效字段;
[0035]第一存储模块,用于将所述目标运算结果存储至所述目标指令指示的指定内存地址

[0036]可选地,所述装置还包括:
[0037]第三确定模块,用于确定所述原始内存数据中有效字段对应的第一值位以及非有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种二进制翻译方法,其特征在于,应用于宿主平台,所述方法包括:在对客户平台的目标指令进行翻译的情况下,基于目标掩码数据以及原始内存数据,确定第一目标数据;所述原始内存数据是基于所述目标指令指示的目标内存地址读取到的,所述目标掩码数据是基于所述原始内存数据确定的,所述原始内存数据中包含有效字段以及非有效字段,所述第一目标数据中包含所述非有效字段;基于所述目标指令对应的计算语义,获取其有效字段经逻辑右移处理后的所述原始内存数据对应的计算结果,得到第一计算结果;所述第一计算结果中包含所述有效字段对应的目标字段,所述目标字段用于表征所述目标指令在所述客户平台运行时对应的真实计算结果;基于其目标字段经逻辑左移处理后的所述第一计算结果以及所述第一目标数据,确定目标运算结果;所述目标运算结果包括所述目标字段以及所述非有效字段;将所述目标运算结果存储至所述目标指令指示的指定内存地址
。2.
根据权利要求1所述的方法,其特征在于,所述方法还包括:确定所述原始内存数据中有效字段对应的第一值位以及非有效字段对应的第二值位;将所述原始内存数据中第一值位对应的字段内容填充为第一数值,以及,将所述原始内存数据中第二值位对应的字段内容填充为第二数值;确定包含所述第一数值以及所述第二数值的原始内存数据为所述目标掩码数据
。3.
根据权利要求2所述的方法,其特征在于,所述基于目标掩码数据以及所述原始内存数据,确定第一目标数据,包括:获取所述目标掩码数据,以及从所述目标指令指示的目标内存地址中获取原始内存数据;对所述目标掩码数据以及所述原始内存数据进行逻辑与操作,得到第一目标数据;所述第一目标数据中与所述第一值位对应的字段内容为所述第一数值,所述第一目标数据中与所述第二值位对应的字段内容为所述非有效字段
。4.
根据权利要求1所述的方法,其特征在于,所述基于所述目标指令对应的计算语义,获取其有效字段经逻辑右移处理后的所述原始内存数据对应的计算结果,得到第一计算结果,包括:对所述原始内存数据中的有效字段进行逻辑右移,确定第二目标数据;所述第二目标数据的指定值位对应的字段内容为所述有效字段;基于所述目标指令对应的计算语义,获取所述第二目标数据对应的计算结果,得到所述第一计算结果;所述第一计算结果的指定值位对应的字段内容为所述有效字段对应的目标字段
。5.
根据权利要求1所述的方法,其特征在于,所述基于其目标字段经逻辑左移处理后的所述第一计算结果以及所述第一目标数据,确定目标运算结果,包括:对所述第一计算结果中的目标字段进行逻辑左移,并将所述第一计算结果的非目标字段替换为第一数值,得到第三目标数据;所述第三目标数据中的目标字段对应的值位与所述原始内存数据中有效字段对应的值位一致;对所述第三目标数据以及所述第一目标数据执行逻辑或操作,得到所述目标运算结果

6.
根据权利要求1‑5任一项所述的方法,其特征在于,在所述目标指令为原子指令的情况下,所述方法还包括:基于所述原子指令,生成目标指令序列;基于所述目标指令...

【专利技术属性】
技术研发人员:岳仍安李晗璐曾露
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1