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

相关推荐
磊 子2 小时前
C++function与bind绑定器讲解
java·jvm·c++
吴声子夜歌9 小时前
JVM——锁实现原理
jvm·
jameslogo11 小时前
JVM执行引擎
jvm
比昨天多敲两行20 小时前
linux 线程概念与控制
java·开发语言·jvm
WPF工业上位机1 天前
YXGK.FakeVM数据库示例
jvm·数据库·oracle
吴声子夜歌1 天前
JVM——线程通信原理
jvm
吴声子夜歌1 天前
JVM——线程同步机制
jvm·线程同步机制
basketball6161 天前
C++进阶:3. unique_ptr 现代C++内存管理的基石
java·jvm·c++
一只小白0001 天前
【JVM | 第四篇】—— JVM 内存分配
jvm·面试
weelinking2 天前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理