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

相关推荐
m0_5913647310 小时前
SQL提升开发效率_使用CTE重构嵌套子查询逻辑
jvm·数据库·python
2401_8314194410 小时前
JavaScript 中实现基于分组的前端产品筛选功能
jvm·数据库·python
yexuhgu10 小时前
CSS实现盒子阴影扩散效果_调整box-shadow的模糊半径
jvm·数据库·python
Jetev10 小时前
CSS如何实现优雅的间距_使用CSS Grid控制盒模型间隙
jvm·数据库·python
qq_4142565710 小时前
HTML函数开发需要独立显卡吗_HTML函数与显卡关系详解【说明】
jvm·数据库·python
qq_3926906611 小时前
CSS如何利用-disabled伪类禁用交互元素_通过灰度效果提升界面逻辑清晰度
jvm·数据库·python
u01102251211 小时前
c++怎么将两个有序的文本文件合并成一个新的有序文件【实战】
jvm·数据库·python
_3762715311 小时前
CSS如何控制全屏显示的元素样式
jvm·数据库·python
iAm_Ike11 小时前
c++如何利用std--chrono计算文件操作的微秒级耗时性能分析【详解】
jvm·数据库·python
2401_8800714011 小时前
如何检查SQL注入漏洞覆盖率_使用漏洞管理平台监控
jvm·数据库·python