基于中间表示规则替换的二进制翻译中间代码优化方法
2021-08-24庞建民
国防科技大学学报 2021年4期
李 男,庞建民
(1. 战略支援部队信息工程大学, 河南 郑州 450001;2. 数学工程与先进计算国家重点实验室, 河南 郑州 450002)
二进制翻译技术[1-2]是作为程序等价变换工具产生并发展起来的,被定义为一种机器上的指令序列到另一种机器上指令序列的等价转换过程。它在丰富国产平台软件生态的过程中,发挥了重要作用。
二进制翻译按照实现方式主要包含静态翻译和动态翻译[3]。静态翻译采用的是一种先翻译后执行的“离线翻译”方式,实现了“一次翻译,多次执行”,其翻译过程与执行过程彼此独立,翻译时间不计入系统时间。动态翻译采用的是一种边翻译、边执行的“捆绑式”工作方式,可以实现多源到多目标的程序翻译,由于可以获得运行时信息,因此动态翻译能够解决静态翻译难以解决的动态地址发现和自修改代码的问题。但是,动态翻译本身需要占用部分系统时间。翻译优化问题一直是动态翻译的研究热点[4-6]。本文在不引起歧义的情况下,将待翻译二进制文件的生成平台称为源平台,将动态二进制翻译器运行的平台称本地平台或目标平台。
1 问题的提出
动态二进制翻译在实现多源到多目标的程序翻译过程中,为了屏蔽不同源平台间的硬件差异,引入了中间代码,可以将任何源平台的指令先转化成中间代码,再转化成目标平台指令。在中间代码生成过程中,动态二进制翻译采用了内存虚拟机制,借助临时变量和环境变量,将对源平台特定寄存器的访问操作转化为与寄存器无关的内存访问操作。……
登录APP查看全文
