« CLSQL 3.0 | Main | Nikon D2H »

SBCL-AMD64 Disassembly

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                                                     

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on December 4, 2004 1:56 AM.

The previous post in this blog was CLSQL 3.0.

The next post in this blog is Nikon D2H.

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.