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

相关推荐
tudficdew17 分钟前
实战:用Python分析某电商销售数据
jvm·数据库·python
sjjhd65239 分钟前
Python日志记录(Logging)最佳实践
jvm·数据库·python
2301_821369611 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
2401_832131952 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
shengli7224 小时前
机器学习与人工智能
jvm·数据库·python
2301_765703144 小时前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
2301_821369614 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
m0_561359674 小时前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
qq_423233905 小时前
如何用FastAPI构建高性能的现代API
jvm·数据库·python
weixin_499771556 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python