AArch64 je právě ukázka toho, že fixní délka instrukce nemusí být vůbec na škodu. Kód zkompilovaný pro AArch64 není nějak větší než třeba X86. AArch64 je v tomto ohledu celkem promyšlená instrukční sada.
Právě THUMB byl průser - komplikuje to ARM32 dekodér a celkově úspora není nic moc. RISC-V je na tom trochu líp, protože ty 16-bit instrukce jsou navržené celkově mnohem systematičněji, ale na druhou stranu RISC-V je celkem jednoduchý a nemá nějaké praktické instrukce, které má AArch64, takže třeba prolog/epilog ve funkci je u RISC-V zbytečně dlouhý (AArch64 má instrukce pro register pair, takže jedna 32-bit instrukce udělá jakoby 2x load/store, což se u prologu/epilogu funkcí hodí).
Jinak u RISC-V se mi líbí, jakým způsobem je ta instrukční sada navržená a jakým způsobem se navrhují různé rozšíření. Jde fakt vidět, že ti lidi přemýšlí a chcou z toho vytěžit maximum.
Třeba bitmanip: https://courses.cs.washington.edu/courses/cse481a/20sp/notes/bitmanip.pdf
19. 2. 2022, 10:52 editováno autorem komentáře