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

相关推荐
7ioik4 小时前
jvm内存结构深入
jvm
1001101_QIA6 小时前
C++多线程并发学习路线
jvm
隔山打牛牛7 小时前
击穿式理解“JAVA栈帧”
jvm
AI云原生9 小时前
在 openEuler 上使用 x86_64 环境编译 ARM64 应用的完整实践
java·运维·开发语言·jvm·开源·开源软件·开源协议
隔山打牛牛16 小时前
击穿式理解JVM结构
jvm
刘 大 望16 小时前
JVM(Java虚拟机)
java·开发语言·jvm·数据结构·后端·java-ee
超级种码16 小时前
JVM 字节码指令活用手册(基于 Java 17 SE 规范)
java·jvm·python
丸码16 小时前
JVM演进史:从诞生到革新
jvm
笃行客从不躺平17 小时前
JVM 参数
jvm
Tan_Ying_Y17 小时前
JVM内存结构,什么是栈桢?
java·jvm