一种字节码指令集的指令精简方法和系统技术方案

技术编号:33304788 阅读:68 留言:0更新日期:2022-05-06 12:13
本发明专利技术涉及一种字节码指令集的指令精简方法和系统。本发明专利技术的方法能够将初始指令中将常数赋值到寄存器的指令与使用该寄存器为操作数的指令优化为带常数操作数的指令,或直接生成带常数操作数的指令,将访问当前实例的实例域的指令转换或者生成访问当前实例的实例域的专有指令,对指令中子常量池索引操作数编码到紧邻指令的操作码,通过操作码可确定子常量池的类型,将可变长度的指令中长度可变的操作数与指令码分离,生成静态域初始化的伪指令,伪指令可替代传统的静态域组件,将重复使用寄存器的指令优化为复用寄存器的指令,将一组功能类似且不常用的指令复合为一条指令。采用本发明专利技术所述的方法,可减少字节码的长度,提升字节码的执行性能。升字节码的执行性能。升字节码的执行性能。

【技术实现步骤摘要】
一种字节码指令集的指令精简方法和系统


[0001]本专利技术属于指令集精简的
,具体涉及一种字节码指令集的指令精简方法和系统。

技术介绍

[0002]虚拟机是由一种被处理器执行的软件应用程序或指令序列产生的抽象计算机,虚拟机可以执行虚拟机支持的指令集,指令集有基于操作数栈和基于寄存器两类指令集。基于操作数栈的指令集,相比基于寄存器的指令集,采用了栈帧结构,方法调用过程中涉及入栈和出栈,字节码执行过程中也涉及操作数栈的入栈和出栈,虽然RAM开销较小,但是执行效率较低。

技术实现思路

[0003]针对现有技术中存在的缺陷,本专利技术的目的是提供一种基于寄存器的字节码指令集的指令精简方法和系统。本专利技术的方法能够将初始指令中将常数赋值到寄存器的指令与使用寄存器为操作数的指令优化为精简指令,或直接生成带常数的精简指令,将访问当前实例域的指令转换为访问当前实例域专有指令,对指令中常量池索引操作数编码到紧邻指令的操作码位置,将每一指令中长度可变的操作数与指令码分离,生成静态域初始化的伪指令,伪指令可替代传统的静态域组件,将重复使用寄本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种字节码指令集的指令精简方法,其特征在于,包括以下步骤:对所述初始指令中将常数赋值到寄存器的指令与使用该寄存器为操作数的指令进行优化处理,得到直接使用常数操作数的指令,或者直接生成使用常数操作数的指令;将所述初始指令中访问实例域的实例为方法的this参数对应寄存器的指令按预置指令格式进行转换,得到访问当前实例的实例域专有指令;将常量池拆分为多个子常量池,指令中的常量池索引为子常量池索引;将所述初始指令的每一指令中常量池索引操作数编码到紧邻指令的操作码位置;从而通过常量池索引的位置得到使用所述常量池索引的指令的操作码,通过所述操作码可定子常量池的类型;将所述长度可变的指令中长度可变的操作数与指令码分离;获取所述静态域的静态域类型及初始配置值,生成与每一静态域声明对应的伪指令,伪指令可替代传统的静态域组件;对重复使用寄存器的指令进行优化处理,得到复用寄存器的指令;将一组功能类似且不常用的指令复合到一条指令,使用指令中操作类型操作数指定复合后指令的操作类型,得到对应的复合多操作指令。2.如权利要求1所述的一种字节码指令集的指令精简方法,其特征在于,所述将常数赋值到寄存器的指令包括算术运算和逻辑运算指令、和字面常量的比较后跳转指令、访问数组成员指令。3.如权利要求1所述的一种字节码指令集的指令精简方法,其特征在于,所述将所访问实例域的实例为方法的this参数对应寄存器的指令按预置指令格式进行转换,得到访问当前实例的实例域专有指令,包括:将访问实例域的实例为方法的this参数对应寄存器的指令按预置指令格式删除指定实例的操作数,得到访问当前实例的实例域专有指令;当前实例的实例域专有指令可进一步优化,可缺省指定待设置或者返回结果的寄存器。4.如权利要求1所述的一种字节码指令集的指令精简方法,其特征在于,将所述每一带常量池索引的指令中常量池索引操作数编码到紧邻指令的操作码的位置,包括:将指令中常量池索引操作数统一编码至指定码的后面;或者是,将指令中常量池索引操作数统一编码至指令码的前面。5.一种字节码指令集的指令精简系统,其特征在于,包括以下装置:第一合并处理装置,用于对所述初始指令中...

【专利技术属性】
技术研发人员:石玉平郑江东王幼君
申请(专利权)人:北京握奇数据股份有限公司
类型:发明
国别省市:

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

1