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

相关推荐
用户094248568035 小时前
第3章:OpenJDK从源码到字节码——Class 文件与 javac 管线
java·jvm
YUJIANYUE5 小时前
查立得万用查分电脑版(web环境+查询系统免安装单文件一键运行包)
前端·jvm
疯狂打码的少年6 小时前
【数据库技术】复习日:关系代数 + SQL + 规范化(整理对比表)
jvm·数据库·笔记·sql
liangbo78 小时前
06-JVM垃圾回收器之CMS
java·jvm
落魄大学生之流水线上谋生计2 天前
JVM程序计数器详解
jvm
嘻哈baby2 天前
Go 函数中的参数为什么不支持默认值?
java·开发语言·jvm
wuminyu2 天前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
hfywmsj2 天前
广州餐饮铺位招租的选址架构:流量入口与成本函数分析
java·大数据·jvm·广州餐饮铺位招租
Tingjct3 天前
线程详细讲解---聚焦linux
linux·服务器·jvm
myy-learn3 天前
32 SQLITE数据库
jvm·数据库·sqlite