With Dan Barlow's SBCL AMD64 initial backend and Juho Snellman's fixes, I took some time to work on its disassembler. It's been interesting to read the AMD64 technical documentation as well as see the wide registers being used by SBCL.
CL-USER(1): (disassemble 'car) ; 0109DB80: .ENTRY "top level local call CAR"(LIST) ; (FUNCTION # *) ; B0: 488F45F0 POP QWORD PTR [RBP-16] ; B4: 488D65C0 LEA RSP, [RBP-64] ; B8: 488BD9 MOV RBX, RCX ; BB: 488BF2 MOV RSI, RDX ; BE: 4883FB08 CMP RBX, 8 ; C2: 752C JNE L0 ; C4: 488BC6 MOV RAX, RSI ; C7: 40240F AND AL, 15 ; CA: 403C07 CMP AL, 7 ; CD: 7526 JNE L1 ; CF: 488BC6 MOV RAX, RSI ; D2: 488B50F9 MOV RDX, [RAX-7] ; D6: 488B4DF0 MOV RCX, [RBP-16] ; DA: 488B45F8 MOV RAX, [RBP-8] ; DE: 4883C103 ADD RCX, 3 ; E2: 488BE5 MOV RSP, RBP ; E5: 488BE8 MOV RBP, RAX ; E8: FFE1 JMP ECX
