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

相关推荐
light blue bird1 小时前
支组汇总主子节点工序路径图表
前端·jvm·.net·桌面端·gdi绘图
Access开发易登软件4 小时前
Access 用 VBA 操作 SQLite,不用装任何驱动
jvm·数据库·sqlite·vba·access·access开发
Niyy_4 小时前
WASM 的使用笔记
jvm·笔记·wasm
小L写Java5 小时前
第六章:JVM 调优实战 —— GC日志分析、内存溢出排查与线上问题定位
java·jvm
小江的记录本7 小时前
【JVM虚拟机】类加载机制:类加载器、双亲委派模型、好处、破坏双亲委派的场景(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
Devin~Y7 小时前
智慧物流+AIGC客服Java大厂面试:Spring Boot、Kafka、Redis、JVM与RAG Agent实战
java·jvm·spring boot·redis·spring cloud·kafka·rag
码上有光8 小时前
c++:多态
java·jvm·c++·多态·多态原理
搜佛说8 小时前
sfsDb 和 SQLite、InfluxDB “硬碰硬”的底层性能与技术架构对比
jvm·架构·sqlite
Javatutouhouduan8 小时前
普通Java程序员如何高效学习JVM?
java·jvm·java虚拟机·java面试·后端开发·java编程·java八股文
仙俊红8 小时前
事务消息是什么
jvm·数据库·oracle