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

相关推荐
没有bug.的程序员8 小时前
高频IO服务优化实战指南
java·jvm·spring·容器
Donald_brian14 小时前
线程同步
java·开发语言·jvm
喵了meme14 小时前
Linux学习日记19:线程同步与互斥锁
java·jvm·学习
小小Fred14 小时前
Cortex-M3 LR寄存器的特殊值EXC_RETURN
java·开发语言·jvm
YANshangqian17 小时前
家具设计软件Room Arranger Portable
jvm
219918 小时前
Embabel:JVM上的AI Agent框架深度技术分析
java·jvm·人工智能·spring·ai·开源
Arva .19 小时前
G1收集器
java·jvm·算法
没有bug.的程序员19 小时前
高并发电商场景:JVM资源规划实战
java·jvm·电商·资源规划
dddaidai12319 小时前
深入JVM(一):对象创建和内存分配
java·jvm
by__csdn19 小时前
javascript 性能优化实战:垃圾回收优化
java·开发语言·javascript·jvm·vue.js·性能优化·typescript