一种二进制翻译中库函数调用的处理方法

    公开(公告)号:CN1892602A

    公开(公告)日:2007-01-10

    申请号:CN200510080339.8

    申请日:2005-07-01

    Abstract: 本发明公开了一种二进制翻译中库函数调用的处理方法,尽可能地对源X86二进制程序中的库函数调用进行识别和提升;对于可包装库函数,用目标机本地的约定进行传参和返回值处理,这样省去了对X86参数压栈和从堆栈中取返回值的模拟,避免了频繁的内存操作,使用本地的库函数,也不会因为翻译PLT、fixup函数、库函数的源二进制代码造成代码膨胀导致的性能损失,提高了程序执行的效率;对于PLT短路库函数,虽然继续维护X86模拟堆栈,但是控制流不进入PLT和动态链接器的fixup函数,即不翻译PLT和动态链接器的fixup函数的源二进制代码,避免了因为翻译PLT、fixup函数造成代码膨胀导致的性能损失,控制流直接进入库函数的本地码,也能够较好地提高程序执行的效率。

    二进制翻译中对X86中浮点运算的处理方法

    公开(公告)号:CN1746850A

    公开(公告)日:2006-03-15

    申请号:CN200410074532.6

    申请日:2004-09-07

    Abstract: 本发明公开了一种二进制翻译中对X86中浮点运算的处理方法,包括以下步骤:在运行时环境中设置一个浮点栈,用于仿真X86中的物理浮点栈;通过浮点寄存器映射的处理和归一方法依次对源二进制程序中的每个基本块进行处理。本发明通过用目标机器的寄存器来映射X86的源寄存器,保证了X86的浮点运算在目标机器上也是由寄存器来实现,确保运算的效率;采用归一的方法,确保每个基本块的入口满足每次top的值相同的假设,从本质上来讲,将Intel的运行过程中对投机假设的判别,用归一的方法进行了保证。本发明使得基本块不需要每次都去判别是否投机假设成立,省去了这一部分开销,提高了系统翻译效率,从而提高了系统性能。

    二进制翻译中局部变量识别和提升的处理方法

    公开(公告)号:CN100377088C

    公开(公告)日:2008-03-26

    申请号:CN200510051448.7

    申请日:2005-03-04

    Abstract: 本发明公开了一种二进制翻译中对局部变量识别和提升的方法包括以下步骤:a、对翻译单元进行条件判别,判断在此翻译单元内能否进行局部变量的提升;b、依次对可处理翻译单元的每个基本块进行处理,对每条指令的局部变量进行识别;c、将b步骤中识别出来的局部变量进行提升,将识别出来的信息传播到整个翻译单元,并在必要的时候进行同步;本发明克服现有二进制翻译技术中局部变量不能和其他内存操作数区别对待的缺陷,通过对局部变量识别和提升,提高翻译质量和效果,从而提高二进制翻译的性能。

    二进制翻译中的库函数调用处理方法

    公开(公告)号:CN1755631A

    公开(公告)日:2006-04-05

    申请号:CN200410081020.2

    申请日:2004-09-30

    Abstract: 本发明公开了一种二进制翻译中的库函数调用处理方法,包括在目标机中用内存模拟原系统的寄存器和堆栈;应用目标机本地的约定进行传参和返回值处理,依次对原系统二进制程序中的每个基本块进行处理。本发明通过用目标机本地的约定进行传参和返回值处理,而不是去模拟原机器的调用约定,省去了将参数压入模拟原系统的模拟堆栈或寄存器,然后又从堆栈或寄存器中取出放入到目标机传参寄存器或堆栈中过程中频繁对内存的操作,提高了程序执行的效率,进而提高了系统翻译效率,提高了系统性能。

    二进制翻译中标志位的优化处理方法

    公开(公告)号:CN1529229A

    公开(公告)日:2004-09-15

    申请号:CN200310102443.3

    申请日:2003-10-21

    Abstract: 本发明涉及指令集体系结构、二进制翻译技术领域,本发明针对二进制翻译中的解释执行提出了即时计算与延迟计算相结合的解决方法,用于优化解释执行中的标志位处理。对二进制翻译中的动态翻译提出了数据流分析和延迟计算相结合的解决方法,优化动态翻译时的标志位处理,该方法在基本翻译单元内采用数据流分析方法删除处理冗余标志位的目标代码,而在翻译单元之间采用延迟计算方法减少翻译单元之间处理冗余标志位而生成的冗余目标代码。以下简称DFADC法。通过上述两种方法,可以使翻译时减少用于仿真源ISA的标志位而产生的目标代码数量,提高了翻译代码的质量,从而使翻译执行速度得到提高。

    二进制翻译中的库函数调用处理方法

    公开(公告)号:CN100359471C

    公开(公告)日:2008-01-02

    申请号:CN200410081020.2

    申请日:2004-09-30

    Abstract: 本发明公开了一种二进制翻译中的库函数调用处理方法,包括在目标机中用内存模拟原系统的寄存器和堆栈;应用目标机本地的约定进行传参和返回值处理,依次对原系统二进制程序中的每个基本块进行处理。本发明通过用目标机本地的约定进行传参和返回值处理,而不是去模拟原机器的调用约定,省去了将参数压入模拟原系统的模拟堆栈或寄存器,然后又从堆栈或寄存器中取出放入到目标机传参寄存器或堆栈中过程中频繁对内存的操作,提高了程序执行的效率,进而提高了系统翻译效率,提高了系统性能。

Patent Agency Ranking