Tämä on nyt eri asia, kuin vaikka MMX. Siellä voi jonkun osan piilastusta sille allokoida ja/tai toteuttaa ne mikrokoodilla. ARM on kai RISC, ja sen takia sitä pidetään tehokkaampana, mutta ei se nyt niin paljon tehokkaampaa ole. Ongelmaksi muodostuu ainakin OoOE, jossa käskyjä suoritetaan niin monimutkaisten algoritmien kautta , että sinne syntyy bugeja, joka kaataa koko p**kan ja ominaisuuksia joudutaan kytkemään pois päältä tai mitigoimaan muulla suorituskyvyn romauttavalla tavalla: katso vaikka Spectre ja Meltdown.
Spectrellä ja meltdownilla ei ollut mitään tekemistä RISCin vs CISCin kanssa. Meltdown oli seurausta siitä, että muistinsuojaus toteutettiin tavalla, joka oli yksinkertaisin ja suorituskyvyn kannalta tehokkain, mutta energiatehokkuuden kannalta ei niin tehokas eikä ottanut huomioon sivukanavahyökkäyksiä. AMD ehkä Ryzenissä välttyi Meltdownilta koska optimoi hiukan enemmän energiatehokkuutta. Ja tosiaan osa RISC-prossuista toimi tämän suhteen ihan samalla tavalla kuin Intelin prossut ja oli Meltdown-alttiita.
Tuo 16- ja 32- bittisten sovellusten tuki tarkoittaa, että meillä on käskyjä, jotka operoivat nyt 64-bittisten rekistereiden alimpia bittejä. Sitten niiden yläosissa voi olla mitä vaan ja tämmöinen koodi on testaajan painajainen.
Tässä vaan ei poisteta tukea 32-bittisiltä softilta, vaan vain 32-bittisiltä käyttiksiltä.
Ja oleellista on muistinosoitusmuodot ja virtuaalimuistin rakenne, ei rekisterien bittimäärä.
Eli esim. tuo alkuperäinen 8086-moodin segmentointi jossa segmenttiosoitetta shiftattiin 4 bittiä ja lisättiin toiseen rekisteriin voidaan nyt pudottaa kokonaan pois.
Samoin voidaan pudottaa pois 286-malliset segment descriptorit, ja tarvii tukea vain 386-mallisia segment descriptoreita.
Koko segmentoinnin poistaminen olisi ollut kiva asia, mutta siihen ei vielä kuitenkaan päästy. Mutta neljästä eri segmentointimoodista (3 varsinaista moodia + ei käytössä) kahteen (1 moodi + ei käytössä) siirtyminen kuitenkin yksinkertaistaa.
Lisäksi toimintatilat ring 1 ja ring 2 voidaan poistaa kokonaan. Nämä olivat normaalin käyttäjätilan ja käyttöjärjestelmätilan välissä olevia toimintatiloja, joita hyvin harvoin käytettiin.
Ja sitten prossun käskydekooderi helpottuu hiukan kun voi pudottaa muinaisia vain 16-bittisessä tilassa olevia enkoodaussääntöjä pois. Valitettavasti vaan 386n user-modessa on tuettu melkein kaikki 8086n käskyt joten tämä yksinkertaistus jää melko pieneksi. x86-64ssa on sitten pudotettu enemmän legacy-tauhkaa pois, esim. BCD-käskyt (binary coded decimal), jotka on aivan älytöntä 1970-luvun roskaa joilla operoidaan datatyypeillä joita ei käytetä missään muussa kuin jossain (yli) 50 vuotta sitten koodatussa COBOL-koodissa.