[发明专利]指令翻译方法和装置在审
申请号: | 201711099249.2 | 申请日: | 2017-11-09 |
公开(公告)号: | CN109766129A | 公开(公告)日: | 2019-05-17 |
发明(设计)人: | 刘倩 | 申请(专利权)人: | 北京君正集成电路股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京智为时代知识产权代理事务所(普通合伙) 11498 | 代理人: | 王加岭;杨静 |
地址: | 100094 北京市海淀区西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 状态寄存器 指令翻译 全局变量 翻译 方法和装置 影响状态寄存器 指令 方案解决 技术效果 记录指令 有效减少 运行影响 指令运行 记录 保证 | ||
本发明提供了一种指令翻译方法和装置,其中,该方法包括:定义MIPS状态寄存器,其中,MIPS状态寄存器用于记录指令运行影响状态;定义影响所述MIPS状态寄存器的MIPS指令;通过所述MIPS状态寄存器进行ARM指令翻译。通过上述方案解决了现有的MIPS中不存在指令运行影响状态寄存器的机制,从而导致magicode在翻译指令时,不得不定义一个全局变量记录下此时ARM APSR状态寄存器的值,并在翻译过程中不断的修改这个全局变量,以保证ARM指令翻译的正确性,而导致在翻译过程中就会有大量的代码来记录和修改这个全局变量,从而延长了翻译时间的技术问题,达到了有效减少指令翻译时间的技术效果。
技术领域
本发明涉及计算机技术领域,特别涉及一种指令翻译方法和装置。
背景技术
通过magicode可以实现在MIPS((Microprocessor without interlocked pipedstages,无内部互锁流水级的微处理器)平台上的Android系统中解释执行ARM(Acorn RISCMachine)可执行程序和动态库的功能。
在magicode翻译ARM指令的过程中,由于很多ARM指令不仅可以实现这条指令的功能,同时会在运行时影响状态寄存器的值,并会在后面的运行中使用到这个状态寄存器中的值。
例如,指令’movs rd,imm’,不仅可以将立即数imm放到寄存器rd中,还会影响到ARM状态寄存器APSR的c位。而MIPS中不存在这种指令运行影响状态寄存器的机制。因此,magicode在翻译这类指令时,不得不定义一个全局变量记录下此时ARM APSR状态寄存器的值,并在翻译过程中不断的修改这个全局变量,以保证ARM指令翻译的正确性。这样,在翻译过程中就会有大量的代码来记录和修改这个全局变量,从而延长了翻译时间。
针对上述问题,目前尚未提出有效的解决方案
发明内容
本发明实施例提供了一种指令翻译方法,以达到减少翻译时间的目的,该方法包括:
定义MIPS状态寄存器,其中,MIPS状态寄存器用于记录指令运行影响状态;
定义影响所述MIPS状态寄存器的MIPS指令;
通过所述MIPS状态寄存器进行ARM指令翻译。
在一个实施方式中,在定义MIPS状态寄存器之后,所述方法还包括:
定义所述MIPS状态寄存器中每个位置的含义和修改方式。
在一个实施方式中,通过所述MIPS状态寄存器进行ARM指令翻译,包括:
通过MIPS指令影响所述MIPS状态寄存器的值,以使得所述MIPS状态寄存器与ARM状态寄存器的值保持一致。
在一个实施方式中,定义所述MIPS状态寄存器中每个位置的含义,包括:
定义位置0为V,定义位置1为C,定义位置2为Z,定义位置3为N,定义位置4为UGT,定义位置5为SGE,定义位置6为SGT,定义位置8为F,定义位置9为A。
在一个实施方式中,在通过所述MIPS状态寄存器进行ARM指令翻译之后,所述方法还包括:
确定指令翻译的效率。
在一个实施方式中,所述确定指令翻译的效率包括:
通过翻译一条ARM指令所需的MIPS条数,确定指令翻译的效率。
本发明实施例还提供了一种指令翻译装置,以达到减少翻译时间的目的,该装置包括:
第一定义模块,用于定义MIPS状态寄存器其中,MIPS状态寄存器用于记录指令运行影响状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京君正集成电路股份有限公司,未经北京君正集成电路股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711099249.2/2.html,转载请声明来源钻瓜专利网。