[发明专利]超长分支跳转处理方法及装置有效
申请号: | 201410240536.0 | 申请日: | 2014-05-30 |
公开(公告)号: | CN103984531A | 公开(公告)日: | 2014-08-13 |
发明(设计)人: | 靳国杰;高翔;李森;胡伟武 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 超长 分支 跳转 处理 方法 装置 | ||
技术领域
本发明涉及网络技术,尤其涉及一种超长分支跳转处理方法及装置。
背景技术
面向对象程序设计语言,如Java中引入了虚拟机的概念,即在机器和程序代码之间加入了一层抽象的虚拟的机器。虚拟机获取程序代码之后,将该程序代码翻译成特定机器上的机器码,然后在特定的机器上执行。
在现有技术中,编译器中加入了针对超长远跳转的检查机制:在生成分支跳转指令时,检查是否超过指令集支持的范围。如果编译器在翻译一个包含分支跳转逻辑的函数时,为每个包含分支跳转逻辑的函数选择一套远跳转指令模板。
然而,远跳转指令中包括多条指令,因此增大了在执行超长分支跳转处理时的开销。
发明内容
本发明提供一种超长分支跳转处理方法及装置,用以减少执行超长分支跳转处理的开销。
本发明的第一个方面是提供一种超长分支跳转处理方法,包括:
在编译到源代码段中的第一分支指令时,根据所述第一分支指令,确定所述第一分支指令与目标指令之间的地址跨度是否超过跨度阈值;
在所述第一分支指令与所述目标指令之间的地址跨度超过所述跨度阈值时,对所述第一分支指令所在的源代码段进行解释执行。
本发明的另一个方面是提供一种超长分支跳转处理装置,包括:
处理模块,用于在编译到源代码段中的第一分支指令时,根据所述第一分支指令,确定所述第一分支指令与目标指令之间的地址跨度是否超过跨度阈值;
发送模块,用于在所述第一分支指令与所述目标指令之间的地址跨度超过所述跨度阈值时,对所述第一分支指令所在的源代码段进行解释执行。
本发明提供的超长分支跳转处理方法及其装置,通过在编译到源代码段中的第一分支指令时,根据第一分支指令,确定第一分支指令与目标指令之间的地址跨度是否超过跨度阈值,在第一跳转指令与目标指令之间的地址跨度超过跨度阈值时,对第一分支指令所在的源代码段进行解释执行。从而实现在虚拟机对源代码段的超长分支跳转的处理,并在处理该超长分支跳转的同时无需引入新的指令模块,进而减少了编译器在执行过程中的开销。
附图说明
图1为本发明一实施例超长分支跳转处理方法的流程图;
图2为本发明另一实施例超长分支跳转处理方法的流程图;
图3为本发明一实施例超长分支跳转处理装置的结构示意图;
图4为本发明另一实施例超长分支跳转处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的超长分支跳转处理方法适用于虚拟机对源代码段进行翻译的过程中,其中,该源代码段的跳转范围超过预设范围。本实施例提供的超长分支跳转处理方法具体可以通过超长分支跳转处理装置来执行,该超长分支跳转处理装置可以设置在虚拟机中,并可以采用软件和/或硬件的方式来实现。以下对本实施例提供的超长分支跳转处理方法及其装置进行详细地说明。
图1为本发明一实施例超长分支跳转处理方法的流程图,如图1所示,本发明实施例中的执行主体可以为虚拟机,该超长分支跳转处理方法包括:
步骤101、在编译到源代码段中的第一分支指令时,根据第一分支指令,确定第一分支指令与目标指令之间的地址跨度是否超过跨度阈值。
在本实施例中,地址跨度为存储该第一分支指令的地址与第一分支指令准备跳转的目的地址之间的跨度,跨度阈值为跳转指令最大的跳转范围,如,X86_64指令集中的分支跳转指令(JMP)能够达到的相对跳转范围为±231字节;Sparc指令集中的分支跳转指令(br)能够达到的相对跳转范围为±222字节;MIPS指令集中的分支跳转指令(jr)能够达到的相对跳转范围为±215字节。
本实施例适用于,虚拟机在进行解释执行时,根据源代码段的执行次数,确定该执行次数大于预设执行值时,将该源代码段进行编译执行。
步骤102、在第一跳转指令与目标指令之间的地址跨度超过跨度阈值时,对第一分支指令所在的源代码段进行解释执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410240536.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种ABS线束固定夹
- 下一篇:一种砼管组件及塔布两用机