Skip to content

Instantly share code, notes, and snippets.

@commander-trashdin
Created June 8, 2020 07:19
Show Gist options
  • Save commander-trashdin/8c0acaca110e0f7cf3adf59861800924 to your computer and use it in GitHub Desktop.
Save commander-trashdin/8c0acaca110e0f7cf3adf59861800924 to your computer and use it in GitHub Desktop.
Disassembly for different types with +.
CL-USER> (disassemble (lambda (a b) (declare (optimize (speed 3) (safety 0) (compilation-speed 0)))
(declare (long-float a) (long-float b))
(+ a b)))
; disassembly for (LAMBDA (A B))
; Size: 65 bytes. Origin: #x52C50EE0 ; (LAMBDA (A B))
; EE0: F20F58D1 ADDSD XMM2, XMM1
; EE4: 49896D28 MOV [R13+40], RBP ; thread.pseudo-atomic-bits
; EE8: 498B5568 MOV RDX, [R13+104] ; thread.alloc-region
; EEC: 4C8D5A10 LEA R11, [RDX+16]
; EF0: 4D3B5D70 CMP R11, [R13+112]
; EF4: 771F JNBE L2
; EF6: 4D895D68 MOV [R13+104], R11 ; thread.alloc-region
; EFA: L0: 66C7021D01 MOV WORD PTR [RDX], 285
; EFF: 80CA0F OR DL, 15
; F02: 49316D28 XOR [R13+40], RBP ; thread.pseudo-atomic-bits
; F06: 7402 JEQ L1
; F08: CC09 INT3 9 ; pending interrupt trap
; F0A: L1: F20F1152F9 MOVSD [RDX-7], XMM2
; F0F: 488BE5 MOV RSP, RBP
; F12: F8 CLC
; F13: 5D POP RBP
; F14: C3 RET
; F15: L2: 6A11 PUSH 17
; F17: FF142530000052 CALL QWORD PTR [#x52000030] ; CONS->RNN
; F1E: 5A POP RDX
; F1F: EBD9 JMP L0
NIL
CL-USER> (disassemble (lambda (a b) (declare (optimize (speed 3) (safety 0) (compilation-speed 0)))
(declare (single-float a) (single-float b))
(+ a b)))
; disassembly for (LAMBDA (A B))
; Size: 21 bytes. Origin: #x52C50FA8 ; (LAMBDA (A B))
; A8: F30F58D1 ADDSS XMM2, XMM1
; AC: 660F7ED2 MOVD EDX, XMM2
; B0: 48C1E220 SHL RDX, 32
; B4: 80CA19 OR DL, 25
; B7: 488BE5 MOV RSP, RBP
; BA: F8 CLC
; BB: 5D POP RBP
; BC: C3 RET
NIL
CL-USER> (disassemble (lambda (a b) (declare (optimize (speed 3) (safety 0) (compilation-speed 0)))
(declare (fixnum a) (fixnum b))
(+ a b)))
; disassembly for (LAMBDA (A B))
; Size: 24 bytes. Origin: #x52C5103C ; (LAMBDA (A B))
; 3C: 4801FA ADD RDX, RDI
; 3F: 48D1E2 SHL RDX, 1
; 42: 710A JNO L0
; 44: 48D1DA RCR RDX, 1
; 47: FF142548010052 CALL QWORD PTR [#x52000148] ; ALLOC-SIGNED-BIGNUM-IN-RDX
; 4E: L0: 488BE5 MOV RSP, RBP
; 51: F8 CLC
; 52: 5D POP RBP
; 53: C3 RET
NIL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment