【技术实现步骤摘要】
模式跳转方法、装置、电子设备及存储介质
[0001]本申请实施例涉及计算机
,特别是涉及一种模式跳转方法
、
装置
、
电子设备及存储介质
。
技术介绍
[0002]分层编译是通过编译策略对解释器和不同优化程度的即时编译器混合使用,以实现对解释型语言编写的程序的运行时优化
。
在此过程中,需要通过修改调用的目标地址,实现程序的执行模式在解释执行模式到即时编译模式的跳转,以及程序的执行模式在不同优化程度的即时编译模式之间的跳转
。
当需要通过修改多条指令实现对调用的目标地址修改时,修改过程中存在其他线程同时在执行调用目标地址的模式跳转操作,导致其他线程跳转到错误的地址
。
技术实现思路
[0003]鉴于上述问题,本申请实施例提出一种模式跳转方法
、
装置
、
电子设备及存储介质,以便解决通过修改多条指令实现对调用的目标地址修改时,修改过程中其他线程跳转到错误的目标地址的问题
。
[0004]第一方面,本申请实施例提供了一种模式跳转方法,该方法包括以下步骤:
[0005]在程序进行执行模式跳转时,获取第一目标地址,所述第一目标地址为待执行模式对应的指令序列所在的地址,所述程序为解释型语言编写的程序;
[0006]根据所述第一目标地址以及当前模式跳转操作对应的第一指令序列,生成用于跳转到所述待执行模式对应的指令序列的第二指令序列,所述第二指令序列包括最后生成的 ...
【技术保护点】
【技术特征摘要】
1.
一种模式跳转方法,其特征在于,所述方法包括:在程序进行执行模式跳转时,获取第一目标地址,所述第一目标地址为待执行模式对应的指令序列所在的地址,所述程序为解释型语言编写的程序;根据所述第一目标地址以及当前模式跳转操作对应的第一指令序列,生成用于跳转到所述待执行模式对应的指令序列的第二指令序列,所述第二指令序列包括最后生成的第一指令,所述第一指令存储于所述第一指令序列中第一条被执行的指令所在的位置,以使得第二指令序列全部生成完毕后,通过所述第一指令执行所述第二指令序列中的其他指令
。2.
根据权利要求1所述的方法,其特征在于,所述根据所述第一目标地址以及当前模式跳转操作对应的第一指令序列,生成用于跳转到所述待执行模式对应的指令序列的第二指令序列,包括:复制所述第一指令序列中的调用指令,并根据所述第一目标地址修改复制后的调用指令的跳转目标地址,得到所述其他指令;生成所述第一指令,并将所述第一指令序列中第一条被执行的指令修改为所述第一指令;根据所述第一指令与所述其他指令生成所述第二指令序列,所述第二指令序列与所述第一指令序列各自的存储地址通过所述第一指令完成跳转,所述第一指令为原子指令
。3.
根据权利要求2所述的方法,其特征在于,所述第一指令序列包括多条调用指令;所述根据所述第一目标地址修改复制后的调用指令的跳转目标地址,得到所述其他指令,包括:对于任一目标调用指令,根据所述第一目标地址获取所述目标调用指令对应的目标子地址,所述目标调用指令是通过复制所述多条调用指令中的一条调用指令得到的;根据所述目标子地址对所述目标调用指令中的跳转子地址进行修改,得到修改后的目标调用指令;将各所述修改后的目标调用指令确定为所述其他指令
。4.
根据权利要求1所述的方法,其特征在于,所述根据所述第一目标地址以及当前模式跳转操作对应的第一指令序列,生成用于跳转到所述待执行模式对应的指令序列的第二指令序列,包括:复制所述第一指令序列中的调用指令,并根据所述第一目标地址修改复制后的调用指令中第二指令的跳转目标地址,以及将修改后的第二指令确定为所述其他指令,所述第二指令包括所述复制后的调用指令中除第一条被执行的指令以外的调用指令;根据所述第一目标地址修改所述复制后的调用指令中第一条被执行的指令,得到所述第一指令;根据所述第一指令和所述其他指令生成所述第二指令序列
。5.
根据权利要求4所述的方法,其特征在于...
【专利技术属性】
技术研发人员:王雪,敖琪,
申请(专利权)人:龙芯中科技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。