I'm curious why Sun decided to make a stack-based JVM and Google decided to make a case-based DalvikVM?
I believe that the JVM cannot assume that a certain number of registers are available on the target platform, since it must be platform independent. Therefore, it simply postpones the allocation of registers, etc. To the JIT compiler. (Correct me if I am wrong.)
So the Android guys thought, βHey, this is inefficient, let go of vm-based registration right away ...β? But wait, there are several different Android devices, how many registers did the Dalvik target do? Are Dalvik codecs hardcoded for a certain number of registers?
Do all current Android devices on the market have approximately the same number of registers? Or, is there a registry redistribution performed during dex boot? How does it all fit together?
cpu-registers jvm dalvik computer-architecture vm-implementation
aioobe Apr 27 '10 at 7:37 2010-04-27 07:37
source share