jvm方法返回相关指令ireturn,areturn,return等分析

正文

看图:

做的事情如下:

复制代码
1:弹出当前的方法栈帧
2:获取上一个方法
3:从当前方法的操作数栈中获取执行结果,并推送到上一个方法的操作数栈中

对应的伪代码:

java 复制代码
@Override
public void execute(Frame frame) {
    Thread thread = frame.thread();
    Frame currentFrame = thread.popFrame();
    Frame invokerFrame = thread.topFrame();
    long val = currentFrame.operandStack().popLong();
    invokerFrame.operandStack().pushLong(val);
}

这样执行之后,上一个方法就可以通过store指令,将方法执行的结果存储到自己的局部变量表对应的slot中。就比如下边的例子

相关推荐
Hgfdsaqwr15 小时前
实战:用Python开发一个简单的区块链
jvm·数据库·python
乂爻yiyao1 天前
1.1 JVM 内存区域划分
java·jvm
dyyx1111 天前
如何从Python初学者进阶为专家?
jvm·数据库·python
尽兴-1 天前
JVM垃圾收集器深度解析:G1与ZGC
jvm·gc·zgc·g1·垃圾收集器java
qingwufeiyang_5301 天前
JVM调优实战
jvm
u0109272711 天前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
m0_706653231 天前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
qq_423233901 天前
实战:用Python开发一个简单的区块链
jvm·数据库·python
编程(变成)小辣鸡1 天前
JVM、JRE和JDK 的关系
java·开发语言·jvm
hello 早上好1 天前
02_JVM 架构模型中“栈式”与“寄存器式”指令集架构
jvm·架构