System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 面向申威JavaScript引擎的多分支选择语句处理方法、装置、电子设备及存储介质制造方法及图纸_技高网

面向申威JavaScript引擎的多分支选择语句处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40532523 阅读:8 留言:0更新日期:2024-03-01 13:53
本发明专利技术公开了一种面向申威JavaScript引擎的多分支选择语句处理方法、装置、电子设备及存储介质,其方法包括对多分支选择语句进行编译,生成对应的跳转表,所述跳转表各表项中存储的是与各分支选择语句对应的无条件转移指令;获取当前PC值;根据获取到实参,找出跳转表中对应的索引,基于找到的索引和表项长度,计算出跳转表内的偏移量;获取当前PC值到跳转表之间的指令数量,将所述指令数量与指令的长度相乘,计算出跳转表外的偏移量;将所述PC值、所述跳转表内的偏移量以及跳转表外的偏移量相加,得到跳转地址;根据所述跳转地址,执行跳转表内对应的无条件转移指令,跳转到分支语句对应的程序。本发明专利技术能够降低跳转表所使用的存储空间,同时提高程序整体性能。

【技术实现步骤摘要】

本专利技术属于即时编译,具体涉及一种面向申威javascript的多分支选择语句处理方法、装置、电子设备及存储介质。


技术介绍

1、针对javascript程序中常见的多分支选择场景,javascript引擎使用跳转表数据结构来处理多分支选择语句。各处理器平台javascript引擎在跳转表的具体实现上有所不同,如申威平台javascript引擎先通过在代码生成阶段将要跳转的分支处理程序段起始地址存入跳转表,再通过加载目标地址并跳转的方式实现程序的正确处理。

2、申威平台javascript引擎现有的跳转表处理方式,通过访存指令获取跳转表中的表项(实际分支处理程序段起始地址),再跳转到对应分支语句段的位置。这种实现方式生成的跳转表代码会占用一部分内存空间,且在频繁获取跳转地址时的内存访问操作会带来较高的开销,在使用到大量多分支选择语句的javascript程序应用场景中,此种跳转表处理方式会影响程序整体性能。


技术实现思路

1、针对上述问题,本专利技术提出多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句处理方法、装置、电子设备及存储介质,能够解决跳转表的内存空间占用大以及访存开销大的技术问题。

2、为了实现上述技术目的,达到上述技术效果,本专利技术通过以下技术方案实现:

3、第一方面,本专利技术提供了多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句处理方法,包括:

4、对多分支选择语句进行编译,生成对应的跳转表,所述跳转表各表项中存储的是与各分支选择语句对应的无条件转移指令;

5、获取当前pc值;

6、根据获取到实参,找出跳转表中对应的索引,基于找到的索引和表项长度,计算出跳转表内的偏移量;

7、获取当前pc值到跳转表之间的指令数量,将所述指令数量与指令的长度相乘,计算出跳转表外的偏移量;

8、将所述pc值、所述跳转表内的偏移量以及跳转表外的偏移量相加,得到跳转地址;

9、根据所述跳转地址,执行跳转表内对应的无条件转移指令,跳转到分支语句对应的程序。

10、可选地,在所述对多分支选择语句进行编译,生成对应的跳转表步骤之前还包括:

11、获取多分支选择语句中分支判断条件的数量和case值;

12、根据多分支选择语句的分支判断条件的数量和case值,判断是否使用跳转表。

13、可选地,所述根据多分支选择语句的分支判断条件的数量和case值判断是否使用跳转表,具体包括以下步骤:

14、若所述分支判断条件的数量n<n,n为预设的数量阈值,则不使用跳转表;

15、若所述分支判断条件的数量n≥n且case值为顺序排列,则使用跳转表;

16、若所述分支判断条件的数量n≥n且case值为非顺序排列且(maxcase-mincase)≤kn,kn为预设的倍数阈值,则使用跳转表,maxcase表示最大case值,mincase表示最小case值;

17、若所述分支判断条件的数量n≥n且case值为非顺序排列且(maxcase-mincase)>kn,则不使用跳转表。

18、可选地,若不使用跳转表,则按顺序执行多分支选择语句。

19、可选地,所述无条件转移指令为4字节。

20、第二方面,本专利技术提供了一种多分支选择语句处理装置面向申威javascript引擎的多分支选择语句处理装置,包括:

21、编译模块,用于对多分支选择语句进行编译,生成对应的跳转表,所述跳转表各表项中存储的是与各分支选择语句对应的无条件转移指令;

22、获取当前pc值;

23、跳转表内的偏移量计算模块,用于根据获取到实参,找出跳转表中对应的索引,基于找到的索引和表项长度,计算出跳转表内的偏移量;

24、跳转表外的偏移量计算模块,用于获取当前pc值到跳转表之间的指令数量,将所述指令数量与指令的长度相乘,计算出跳转表外的偏移量;

25、相加模块,用于将所述pc值、所述跳转表内的偏移量以及跳转表外的偏移量相加,得到跳转地址;

26、执行模块,用于根据所述跳转地址,执行跳转表内对应的无条件转移指令,跳转到分支语句对应的程序。

27、可选地,在所述对多分支选择语句进行编译,生成对应的跳转表步骤之前还包括:

28、获取多分支选择语句中分支判断条件的数量和case值;

29、根据多分支选择语句的分支判断条件的数量和case值,判断是否使用跳转表。

30、可选地,所述根据多分支选择语句的分支判断条件的数量和case值判断是否使用跳转表,具体包括以下步骤:

31、若所述分支判断条件的数量n<n,n为预设的数量阈值,则不使用跳转表;

32、若所述分支判断条件的数量n≥n且case值为顺序排列,则使用跳转表;

33、若所述分支判断条件的数量n≥n且case值为非顺序排列且(maxcase-mincase)≤kn,kn为预设的倍数阈值,则使用跳转表,maxcase表示最大case值,mincase表示最小case值;

34、若所述分支判断条件的数量n≥n且case值为非顺序排列且(maxcase-mincase)>kn,则不使用跳转表。

35、第三方面,本专利技术提供了一种电子设备,包括处理器及存储介质;

36、所述存储介质用于存储指令;

37、所述处理器用于根据所述指令进行操作以执行根据第一方面中任一项所述的方法。

38、第四方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面任一项所述方法的步骤。

39、与现有技术相比,本专利技术的有益效果:

40、本专利技术针对javascript引擎中对多分支选择语句的编译方法进行了优化,使用非访存操作指令替换访存操作指令,实现了多分支选择语句的跳转表的生成,该跳转表中存储的是无条件转移指令,避免了因访问内存而导致更多的消耗,从而导致效率低下的问题,提高了程序整体性能,同时降低了跳转表所占用的存储空间。

本文档来自技高网...

【技术保护点】

1.一种面向申威JavaScript引擎的多分支选择语句处理方法,其特征在于,包括:

2.根据权利要求1所述的多分支选择语句处理方法一种面向申威JavaScript引擎的多分支选择语句处理方法,其特征在于,在所述对多分支选择语句进行编译,生成对应的跳转表步骤之前还包括:

3.根据权利要求2所述的多分支选择语句处理方法一种面向申威JavaScript引擎的多分支选择语句处理方法,其特征在于:所述根据多分支选择语句的分支判断条件的数量和case值判断是否使用跳转表,具体包括以下步骤:

4.根据权利要求3所述的多分支选择语句处理方法一种面向申威JavaScript引擎的多分支选择语句处理方法,其特征在于:若不使用跳转表,则按顺序执行多分支选择语句。

5.根据权利要求1所述的多分支选择语句处理方法一种面向申威JavaScript引擎的多分支选择语句处理方法,其特征在于:所述无条件转移指令为4字节。

6.一种多分支选择语句处理装置面向申威JavaScript引擎的多分支选择语句处理装置,其特征在于,包括:

7.根据权利要求6所述的一种多分支选择语句处理装置面向申威JavaScript引擎的多分支选择语句处理装置,其特征在于,在所述对多分支选择语句进行编译,生成对应的跳转表步骤之前还包括:

8.根据权利要求7所述的一种多分支选择语句处理装置面向申威JavaScript引擎的多分支选择语句处理装置,其特征在于,所述根据多分支选择语句的分支判断条件的数量和case值判断是否使用跳转表,具体包括以下步骤:

9.一种电子设备,其特征在于,包括处理器及存储介质;

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。

...

【技术特征摘要】

1.一种面向申威javascript引擎的多分支选择语句处理方法,其特征在于,包括:

2.根据权利要求1所述的多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句处理方法,其特征在于,在所述对多分支选择语句进行编译,生成对应的跳转表步骤之前还包括:

3.根据权利要求2所述的多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句处理方法,其特征在于:所述根据多分支选择语句的分支判断条件的数量和case值判断是否使用跳转表,具体包括以下步骤:

4.根据权利要求3所述的多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句处理方法,其特征在于:若不使用跳转表,则按顺序执行多分支选择语句。

5.根据权利要求1所述的多分支选择语句处理方法一种面向申威javascript引擎的多分支选择语句...

【专利技术属性】
技术研发人员:盛开陈梦雪沈重午张海军李佳
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1