大家都知道android里的dalvik VM是register M,据说是专为embedded device设计的。可是什么是register M呢?

看文档,你还发现还有个东东叫stack M,stack M和register M有啥区别,它们的区分标准是什么?

 

抛开上层的美景不谈,深入到instruction级别时,发现stack M的特点就是他的push/pop指令,估计这些指令经过统计之后,在program里占的比重是相当大的,register M打算从这里着手,用某种方式replace掉这些指令,提高性能。

 

问题:

  1. register M会使用stack吗?
    这个问题困扰我好久,直到找到这篇文章
  2. http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/jucs05.pdf

    看第7章,明确提到lua register M是使用runtime stack来存放register的
    这也解答了我的疑惑,只要function还在,stack就一定在,虽然可以用某种方式表面隐藏起来。
    I should have already concluded this even without this paper,but through my deduction。
Advertisements