armviz

The AArch64 register file, laid out

Three views of the same architecture, wired together so you can move between them. Start at a register, see how it is encoded and who owns it; read a system register bit by bit; or disassemble real code and watch registers light up as they are read and written. A fourth takes the address side: how a virtual address becomes a physical one.

Everything is a curated local dataset. Nothing is fetched at runtime, and the register layouts were cross-checked against the ARM Architecture Reference Manual rather than written from memory.

Register explorer

The 32-entry general purpose file, with a global toggle between the 64-bit and 32-bit views and the calling convention role of each register.

System registers

Field-level bit layouts for the registers reached through MRS and MSR, with exception level access rules and enumerated field values.

Annotated disassembler

Paste hex or drop in a binary. Every operand register is marked read or write, and links into the other two views.

Address translation

How TCR_ELx carves a virtual address into table indices, and what each bit of a page table descriptor grants. Stage 1, leaf and next-level.

Documentation

Prose that connects the lot: why slot 31 is two registers, what the calling convention promises, and how exceptions move through the system registers.

The register file at a glance

31 general purpose registers plus one slot that means the stack pointer or the zero register depending on the instruction. The dataset currently covers 70 system registers.