本发明专利技术实施例提供一种标志位模拟方法、装置和处理器,其中,该方法包括:根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果,所述第一运算为第一系统下影响标志位的运算,所述第二运算为第二系统下产生与所述第一系统下的分支跳转指令中所使用的标志位具有相同语义的运算;将所述运算结果存储至预设寄存器中;根据所述第一系统下的分支跳转指令,利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。从而实现第一系统中的标志位在第二系统中的模拟过程,进而根据模拟的标志位实现分支跳转指令。
【技术实现步骤摘要】
本专利技术实施例涉及计算机
,尤其涉及一种标志位模拟方法、装置和处理器。
技术介绍
无内部互锁流水级的微处理器(Microprocessorwithout interlocked piped,简称:MIPS)系统是一种米取精简指令集计算机(Reduced Instruct1n Set Computer,简称:RISC)的处理系统,MIPS系统对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译效率更高。X86系统是当前广泛应用的复杂指令集计算机(Complex Instruct1n Set Computer,简称:CISC)的处理系统,X86系统的指令系统庞大,指令功能复杂,指令格式、寻址方式多,有专用指令来完成特定功能,目前大量的软件运行在X86系统上。如果需要将基于X86系统上的软件移植至基于MIPS系统,需要实现X86系统与MIPS系统兼容,也即将X86系统下的指令翻译成语义上等价的MIPS系统下的指令,但是,X86系统下的一些影响状态标志位的指令所跟随的跳转指令在MIPS系统下并不存在等价的指令,同时X86系统下的标志寄存器(eflags)在MIPS系统下并不存在对应的寄存器,不能对状态标志位进行标识,从而无法直接根据状态标志位执行分支跳转,实现分支跳转指令。
技术实现思路
本专利技术实施例提供一种标志位模拟方法、装置和处理器,可以解决在X86系统下影响状态标志位的指令跟随的分支跳转指令在MIPS系统下的兼容性问题,在MIPS系统下实现影响状态标志位的指令跟随的分支跳转指令。第一方面,本专利技术实施例提供一种标志位模拟方法,包括:根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果,所述第一运算为第一系统下影响标志位的运算,所述第二运算为第二系统下产生与所述第一系统下的分支跳转指令中所使用的标志位具有相同语义的运算;将所述运算结果存储至预设寄存器中;根据所述第一系统下的分支跳转指令,利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。第二方面,本专利技术实施例提供一种标志位模拟装置,包括:运算单元,用于根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果,所述第一运算为第一系统下影响标志位的运算,所述第二运算为第二系统下产生与所述第一系统下的分支跳转指令中所使用的标志位具有相同语义的运算;存储单元,用于将所述运算单元获得的所述运算结果存储至预设寄存器中;处理单元,用于根据所述第一系统下的分支跳转指令,利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。第三方面,本专利技术实施例提供一种处理器,包括如上所述的标志位模拟装置。本专利技术实施例提供的标志位模拟方法、装置和处理器,通过根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行运算,获得运算结果;将所述运算结果存储至预设寄存器中;利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。从而实现第一系统中的标志位在第二系统中的模拟过程,进而根据模拟的标志位实现分支跳转指令。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术标志位模拟方法实施例一的流程图;图2为本专利技术标志位模拟方法实施例二的流程图;图3为本专利技术标志位模拟方法实施例三的流程图;图4为本专利技术标志位模拟方法实施例四的流程图;图5为本专利技术标志位模拟方法实施例五的流程图;图6为本专利技术标志位模拟方法实施例六的流程图;图7为本专利技术标志位模拟装置实施例一的结构示意图;图8为本专利技术处理器实施例的结构示意图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术标志位模拟方法实施例一的流程图,如图1所示,本实施例的方法可以包括:S101、根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果,所述第一运算为第一系统下影响标志位的运算,所述第二运算为第二系统下产生与所述第一系统下的分支跳转指令中所使用的标志位具有相同语义的运算。S102、将所述运算结果存储至预设寄存器中。S103、根据所述第一系统下的分支跳转指令,利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。本实施例中,可选地,第一系统为X86系统,第二系统为MIPS系统,可以通过虚拟机在MIPS系统下运行X86系统下的指令,或者,手动将X86系统下的指令移植为MIPS系统下相应的指令。对于X86系统下的一些指令,例如cmp指令和test指令会根据指令运算结果设置标志寄存器(eflags)中相关的标志位。在随后的分支跳转指令中,会根据标志寄存器中相关标志位是否设置进行跳转。而在MIPS系统下没有专门的标志寄存器,虽然cmp指令可由减法指令进行兼容,但是运算结果对标志位产生的影响无法明确进行保存。为使上述指令正确运行于MIPS结构下,需要对标志位进行模拟操作。本实施例中可以获取参与运算的两个操作数,分别为第一操作数和第二操作数,根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果。所述第一系统下的分支跳转指令是指跟随在算术运算或逻辑运算等指令之后的条件转移指令,该条件转移指令是在算术运算或逻辑运算等指令对标志位的影响之后,根据标志位的影响结果进行跳转的指令。例如:cmp a, bjz label上述两条指令是在X86系统下的指令,其中,“cmp a, b”这一逻辑运算指令会对各个状态标志位产生影响,包括零标志位ZF、进位标志位CF、符号标志位SF、溢出标志位0F、奇偶标志位PF等。“JZ label”这一条件转移指令是在X86系统下的分支跳转指令,它表示根据零标志位ZF的结果进行跳转,当ZF的结果为O时,跳转至label所指的地址。在SlOl中,根据第一系统下所使用的标志位,对执行第一运算的第一操作数与第二操作数进行第二运算。根据上述例子“JZ label”中使用的是零标志位,对执行X86系统下“cmp a,b”这一算术运算(第一运算)的第一操作数“a”与第二操作数“b”进行相减运算(第二运算),得到相减结果。将这一运算结果存储至预设寄存器中,然后根据第一系统下的分支跳转指令,利用该预设寄存器中存储的该运算结果生成该第二系统下对应的分支跳转指令序列,从而可以执行该第二系统下的分支跳转指令。例如本文档来自技高网...
【技术保护点】
一种标志位模拟方法,其特征在于,包括:根据第一系统下的分支跳转指令,对执行第一运算的第一操作数与第二操作数进行第二运算,获得运算结果,所述第一运算为第一系统下影响标志位的运算,所述第二运算为第二系统下产生与所述第一系统下的分支跳转指令中所使用的标志位具有相同语义的运算;将所述运算结果存储至预设寄存器中;根据所述第一系统下的分支跳转指令,利用所述预设寄存器中存储的所述运算结果生成所述第二系统下对应的分支跳转指令序列,以执行所述第二系统下的分支跳转指令。
【技术特征摘要】
【专利技术属性】
技术研发人员:魏振伟,屈秋雯,王策,汪清,黄文君,
申请(专利权)人:龙芯中科技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。