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中。就比如下边的例子

相关推荐
求梦8206 小时前
JVM学习
jvm·学习
姓蔡小朋友6 小时前
JVM 类加载器
jvm
姓蔡小朋友8 小时前
JVM 内存分区
jvm
成为你的宁宁9 小时前
【Zabbix运维监控实战(附图文教程):Nginx 服务可用性、连接请求状态、CPU 内存占用与 JVM(Jar 包 / Tomcat)全维度监控】
运维·jvm·nginx·zabbix
姓蔡小朋友9 小时前
JVM 垃圾回收
jvm
杨杨杨大侠11 小时前
深入理解 LLVM:从编译器原理到 JIT 实战
java·jvm·编译器
鱼跃鹰飞12 小时前
怎么排查线上CPU100%的问题
java·jvm·后端
小当家.10512 小时前
JVM/八股详解(下部):垃圾收集、JVM 调优与类加载机制
java·jvm·面试
芒克芒克13 小时前
JVM性能监控
java·jvm
码农阿豪14 小时前
远程调试不再难!Remote JVM Debug+cpolar 让内网 Java 程序调试变简单
java·开发语言·jvm