-
-
Save jasom/6f16cfb84cddab784db494e230acd13f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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