gpt4 book ai didi

android - Dalvik VM 如何在方法调用之间保存和恢复其寄存器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:53:33 24 4
gpt4 key购买 nike

在语义上,Dalvik VM 为每个方法都有一组新的寄存器,并且没有访问调用堆栈的指令。但就其实现而言,寄存器应该以某种方式在方法调用时保存并在方法返回时恢复。 (Google 的)Dalvik 是如何做到这一点的?

最佳答案

dalvik 字节码引用的寄存器根本不是机器寄存器,但它们实际上是调用堆栈上的位置。每当您调用一个方法时,dalvik 都会在该方法的栈帧上分配足够的内存来保存该方法所需的所有寄存器。

请注意,并非所有计算都会立即修改堆栈上的值,虚拟机显然必须将值加载到机器寄存器中才能进行计算。结果可以保存在机器寄存器中供以后使用,而无需立即将其写回相应的堆栈位置,由 VM 自行决定。这些值将在需要时刷新回调用堆栈(即,当您调用另一个方法、使用各种同步结构,或者它需要寄存器进行另一个计算等时)。

关于android - Dalvik VM 如何在方法调用之间保存和恢复其寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com