【技术实现步骤摘要】
跳转源列表处理方法、装置及编译器
本专利技术涉及计算机技术,尤其涉及一种跳转源列表处理方法、装置及编译器。
技术介绍
在编译器的实现过程中,需向指令缓存(buffer)序列中发射跳转指令编码,由于当前无法获得跳转目标地址,从而无法确定确切的跳转指令编码。因此,只有当编译过程结束,并且所有指令位置都确定后,才能确定跳转目标地址,而对于例如分支跳转、绝对跳转、寄存器跳转等跳转目标一致的跳转指令,需要根据该些跳转指令的地址生成跳转源列表,以实现跳转目标地址确定后,根据跳转源列表对这些指令进行统一修改。现有技术通过在内存设置专用链表空间存储跳转目标一致的跳转指令的地址以生成跳转源列表。然而,现有技术存在内存开销较大,对指令进行统一修改的执行效率低的问题。
技术实现思路
本专利技术提供一种跳转源列表的处理方法、装置及编译器,可以实现通过延迟槽存储跳转源列表信息,避免在内存上设置专用空间以链表结构方式用来存储跳转源列表信息所造成的内存开销,在跳转目标的地址确定后,通过对代码缓冲区的一次遍历即可完成对η条跳转指令的目标地址的修改,相对于现有技术可以减少根据跳转目标的地址修改η条跳转指令的遍历次数,提高对η条指令进行修改的执行效率。本专利技术第一方面,提供一种跳转源列表的处理方法,包括:获取跳转目标的标识,所述跳转目标对应η条跳转指令,所述η为大于等于2的正整数;以所述标识为指针指向所述η条跳转指令中每条跳转指令后的延迟槽,并在所述指针指向所述延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息。本专利技术第二方面,提供一种跳转源列表处理装置,包括:获取模块,用于获 ...
【技术保护点】
一种跳转源列表处理方法,其特征在于,包括:获取跳转目标的标识,所述跳转目标对应n条跳转指令,所述n为大于等于2的正整数;以所述标识为指针指向所述n条跳转指令中每条跳转指令后的延迟槽,并在所述指针指向所述延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息。
【技术特征摘要】
1.一种跳转源列表处理方法,其特征在于,包括: 获取跳转目标的标识,所述跳转目标对应η条跳转指令,所述η为大于等于2的正整数; 以所述标识为指针指向所述η条跳转指 令中每条跳转指令后的延迟槽,并在所述指针指向所述延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息。2.根据权利要求1所述的方法,其特征在于,所述以所述标识为指针指向所述η条跳转指令中每条跳转指令后的延迟槽,并在所述指针指向延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息之后,还包括: 若确定出所述跳转目标的地址,则根据所述标识确定所述η条跳转指令的存储地址,根据所述跳转目标的地址修改所述η条跳转指令的目标地址。3.根据权利要求1或2所述的方法,其特征在于,所述以所述标识为指针指向所述η条跳转指令中每条跳转指令后的延迟槽,并在所述指针指向延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息,包括: 以所述标识为指针按顺序指向所述η条跳转指令中第k条跳转指令后的延迟槽,以使所述延时槽存储所述第k-Ι条跳转指令在代码缓冲区中的地址信息,其中,I < k < n,且第O条跳转指令在代码缓冲区中的地址信息为空值。4.根据权利要求1或2所述的方法,其特征在于,所述以所述标识为指针指向所述η条跳转指令中每条跳转指令后的延迟槽,并在所述指针指向延迟槽时存储对应的跳转指令在代码缓冲区中的地址信息,包括: 以所述标识为指针按顺序指向所述η条跳转指令中第k条跳转指令后的延迟槽,以使所述延时槽存储所述第k+Ι条跳转指令在代码缓冲区中的地址信息,其中,I < k < n,且第n+1条跳转指令在代码缓冲区中的地址信息为空值。5.根据权利要求3所述的方法,其特征在于,所述根据所述标识确定所述η条跳转指令的存储地址,根据所述跳转目标的地址修改所述η条跳转指令的目标地址,包括: 根据所述标识确定所述第η条跳转指令的存储地址,根据所述跳转目标的地址修改所述第η条跳转指令的目标地址; 根据所述标识按顺序指向的所述η条跳转指令中第ρ条跳转指令后的延迟槽中存储的地址信息,确定第P-1条跳转指令的存储地址,根据所述跳转目标的地址修改所述第P-1条跳转指令的目标地址,其中,1〈Ρ ( η ; 当标识指向的内容为空值时,完成修改。6.根据权利要求5所述的方法,其特征在于,在所述当标识指向的内容为空值时,完成修改之前,还包括: 将所述第P条跳转指令后的延迟槽中存储的地址信息恢复为原值。7.根据权利要求4所述的方法,其特征在于,所述根据所述标识确定所述η条跳转指令的存储地址,根据所述跳转目标的地址修改所述η条跳转指令的目标地址,包括: 以所述标识为指针指向第I条跳转指令后的延迟槽; 根据所述标识确定所述第I条跳转指令的存储地址,根据所述跳转目标的地址修改所述第I条跳转指令的目标地址; 根据所述标识按顺序指向的所述η条跳转指令中第q条跳转指令后的延迟槽中存储的地址信息,确定第q+Ι条跳转指令的存储地址,根据所述跳转目标的地址修改所述第q+Ι条跳转指令的目标地址,其中,I < q<n ; 当标识指向的内容为空值时,完成修改。8.根据权利要求7所述的方法,其特征在于,在所述当标识指向的内容为空值时,完成修改之前,还包括: 将所述第q条跳转指令后的延迟槽中存储的地址信息恢复...
【专利技术属性】
技术研发人员:黄文君,薛双百,汪清,王策,
申请(专利权)人:龙芯中科技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。