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

相关推荐
寻见90340 分钟前
Java为什么能“一次编写,到处运行”?JVM到底解决了什么核心痛点?
java·jvm·java ee
小涛不学习43 分钟前
JVM 深度解析(面试 + 实战版)
jvm·面试·职场和发展
小涛不学习1 小时前
JVM 面试核心知识全解析(从原理到实战)
jvm·面试·职场和发展
dapeng28701 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
空空kkk1 小时前
JVM面试知识点总结
java·jvm·面试
dgfhf1 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
闻哥1 小时前
MySQL三大日志深度解析:redo log、undo log、binlog 原理与实战
android·java·jvm·数据库·mysql·adb·面试
一叶飘零_sweeeet2 小时前
深挖 JVM 锁膨胀底层:从无锁到重量级锁全链路拆解与高并发调优实战
jvm·锁膨胀
qq_417695052 小时前
用Python创建一个Discord聊天机器人
jvm·数据库·python
2401_874732532 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python