Sono curioso, perché Sun ha deciso di rendere la JVM basata sullo stack e Google ha deciso di rendere la DalvikVM basata sul registro?
Suppongo che la JVM non possa davvero presumere che un certo numero di registri sia disponibile sulla piattaforma di destinazione, poiché dovrebbe essere indipendente dalla piattaforma. Quindi rimanda semplicemente l'allocazione dei registri, ecc., Al compilatore JIT. (Correggimi se sbaglio.)
Quindi i ragazzi di Android hanno pensato, "ehi, è inefficiente, andiamo subito per un vm basato su registri ..."? Ma aspetta, ci sono più dispositivi Android diversi, quale numero di registri ha preso di mira il Dalvik? Gli opcode Dalvik sono codificati per un certo numero di registri?
Tutti gli attuali dispositivi Android sul mercato hanno circa lo stesso numero di registri? Oppure, è stata eseguita una riallocazione del registro durante il caricamento del dex? Come funziona tutto questo insieme?