Skip to content

Instantly share code, notes, and snippets.

@jasom
Created January 17, 2018 21:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasom/6f16cfb84cddab784db494e230acd13f to your computer and use it in GitHub Desktop.
Save jasom/6f16cfb84cddab784db494e230acd13f to your computer and use it in GitHub Desktop.
(declaim (optimize (speed 3)))
(defun foo () (the single-float 1f0))
(defun bar () (+ 1f0 (foo)))
(defun baz () (+ 1f0 (quux)))
; disassembly for BAR
; Size: 47 bytes. Origin: #x22820EBB
; BB: 4883EC10 SUB RSP, 16 ; no-arg-parsing entry point
; BF: 31C9 XOR ECX, ECX
; C1: 48892C24 MOV [RSP], RBP
; C5: 488BEC MOV RBP, RSP
; C8: E8AB46CFFD CALL #x20515578 ; #<FDEFN FOO>
; CD: 480F42E3 CMOVB RSP, RBX
; D1: 80FA19 CMP DL, 25
; D4: 750D JNE L0
; D6: 488B1593FFFFFF MOV RDX, [RIP-109] ; 2.0
; DD: 488BE5 MOV RSP, RBP
; E0: F8 CLC
; E1: 5D POP RBP
; E2: C3 RET
; E3: L0: CC0A BREAK 10 ; error trap
; E5: 0A BYTE #X0A ; OBJECT-NOT-TYPE-ERROR
; E6: 10 BYTE #X10 ; RDX
; E7: 17 BYTE #X17 ; '(SINGLE-FLOAT
; 1.0 1.0)
; E8: CC10 BREAK 16 ; Invalid argument count trap
; disassembly for BAZ
; Size: 42 bytes. Origin: #x22820F5B
; 5B: 4883EC10 SUB RSP, 16 ; no-arg-parsing entry point
; 5F: 31C9 XOR ECX, ECX
; 61: 48892C24 MOV [RSP], RBP
; 65: 488BEC MOV RBP, RSP
; 68: E8EB45CFFD CALL #x20515558 ; #<FDEFN QUUX>
; 6D: 480F42E3 CMOVB RSP, RBX
; 71: 488B3DA0FFFFFF MOV RDI, [RIP-96] ; 1.0
; 78: E803F52DFF CALL #x21B00480 ; GENERIC-+
; 7D: 488BE5 MOV RSP, RBP
; 80: F8 CLC
; 81: 5D POP RBP
; 82: C3 RET
; 83: CC10 BREAK 16 ; Invalid argument count trap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment