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

相关推荐
qq_192779875 小时前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
naruto_lnq5 小时前
NumPy入门:高性能科学计算的基础
jvm·数据库·python
2301_822365035 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
惊讶的猫5 小时前
多线程同步问题及解决
java·开发语言·jvm
2301_788756066 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
u0109272716 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_686041616 小时前
Python类型提示(Type Hints)详解
jvm·数据库·python
大地的一角6 小时前
(Linux)线程理解与线程控制
jvm
diediedei7 小时前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
m0_561359677 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python