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

相关推荐
2301_822366354 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
阿猿收手吧!4 小时前
【C++】C++原子操作:compare_exchange_weak详解
java·jvm·c++
tb_first6 小时前
万字超详细苍穹外卖学习笔记2
java·jvm·数据库·spring·tomcat·maven
2301_822363607 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
tb_first8 小时前
万字超详细苍穹外卖学习笔记1
java·jvm·spring boot·笔记·学习·tomcat·mybatis
闻哥9 小时前
深入理解 Spring @Conditional 注解:原理与实战
java·jvm·后端·python·spring
zhihuaba11 小时前
构建一个基于命令行的待办事项应用
jvm·数据库·python
马猴烧酒.14 小时前
【DDD重构|第十三天】DDD 领域驱动设计详解+实战
java·jvm·ide·重构·tomcat·maven·团队开发
筷乐老六喝旺仔14 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
C+-C资深大佬14 小时前
C++多态
java·jvm·c++