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

相关推荐
weixin_586061464 小时前
JavaScript中Redux-Thunk处理异步Action的任务流
jvm·数据库·python
2401_897190555 小时前
Golang怎么写TODO待办应用_Golang TODO应用教程【深入】
jvm·数据库·python
m0_678485455 小时前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python
2401_887724505 小时前
uni-app动画效果实现 uni-app如何使用animation API
jvm·数据库·python
m0_748839495 小时前
mysql如何处理不走索引的OR查询_使用UNION ALL优化重写
jvm·数据库·python
2401_887724505 小时前
在 Ubuntu Core 上部署 Go Web 服务的完整实践指南
jvm·数据库·python
Polar__Star5 小时前
C#怎么实现Redis分布式缓存 C#如何在ASP.NET Core中集成Redis实现分布式缓存方案【架构】
jvm·数据库·python
qq_206901395 小时前
如何在 WordPress 中通过邮箱获取用户 ID(PHP 实现)
jvm·数据库·python
俺不要写代码6 小时前
C++并发基本概念及实现、进程、基本概念
网络·jvm
Polar__Star6 小时前
HTML函数在多GPU系统中如何调用_显卡切换机制说明【汇总】
jvm·数据库·python