Jen upozornění, 68k má k dispozici 8 datových a 8 adresových registrů (chybně uvedeno 7). Důvod, proč se občas kreslí jako 8 + 7 a SSP/USP zvlášť, je právě ten, že registr A7 je jako jediný s implicitní funkcí zásobníku v několika málo operacích (BSR - volání podprogramu, PEA - uložení operandu/efektivní adresy na vrchol zásobníku).
Co se týče nulování horních 32-bitů 64-bit registrů, tak v každém případě zachování původního obsahu (tak jak je to při 16-operacích na 32 x86) je ta nejhorší možní volba. Znamená buď zduplikovat logiku přejmenovávání registrů na každou půlku zvlášť a řešit instrukce tak, jako by měly dvojnásobný počet vstupních závislostí anebo ponechat regsitru v rámci přejmenovávání v celku a řešit každou 32-bitovou operaci, která zapisuje výsledek do jiného registru než jsou vstupy, jako operaci s další vstupní závislostí na předchozím obsahu výstupního registru. Efekt přerušení závislostí/přejmenování v daném výstupním registru se tedy nekoná.
Jestli rozšiřovat vždy znaménkově nebo nulami může být sporné. Možnost volby je nejlepší, ale zabírá prostor pro zakódování jiných užitečných instrukcí. Společnost ARM zároveň tvrdí, že volitelné omezení výpočtu na 32-bitů může mít využité k snížení spotřeby. Když si pak představíme i jednu z nezákladnějších ALU operací, sčítání ADD, tak pro výpočet spodních 32-bitů je potřeba opravdu o mnoho méně tranzistorů/hradel než pro celých 64-bitů. Komplexnost logické funkce CLA (předvýpočet přenosů) roste nelineárně (nejspíš exponenciálně nekontroloval jsem to teď) s počtem výstupních bitů. Vzhledem k tomu, že velikost spotřebované energie na instrukci pro CMOS architekturu je daná především počtem signálů/spojů, na kterých dojde ke změně logické úrovně, tak zafixování vstupů horní půlky sčítačky (především CLA) na nule může vést k podstatné úspoře.
To je samozřejmě pravda, ale nesmí se zapomínat, že A7 se přece jenom chová zvláštně. Například na rozdíl od A0-A6 se inkrementuje o dva bajty i při osmibitových operacích. Od ostatních se liší i tím, že M68k má dva stack pointery, USP a SSP, a A7 se vždycky mapuje na jeden z nich podle toho, v jakém režimu procesor zeovna beží.
Naopak A6 je adresový registr jako jiný, i když tradičně slouží jako frame pointer.
To je samozřejmě pravda, ale nesmí se zapomínat, že A7 se přece jenom chová zvláštně. Například na rozdíl od A0-A6 se inkrementuje o dva bajty i při osmibitových operacích. Od ostatních se liší i tím, že M68k má dva stack pointery, USP a SSP, a A7 se vždycky mapuje na jeden z nich podle toho, v jakém režimu procesor zeovna beží.
Naopak A6 je adresový registr jako jiný, i když tradičně slouží jako frame pointer.