(declaim (ftype (function (fixnum fixnum) fixnum) add-fixnums)) (defun add-fixnums (x y) (declare (optimize speed (safety 0))) (+ x y)) (declaim (ftype (function (single-float single-float) single-float) add-floats)) (defun add-floats (x y) (declare (optimize speed (safety 0))) (+ x y)) (declaim (ftype (function (double-float double-float) double-float) add-doubles)) (defun add-doubles (x y) (declare (optimize speed (safety 0))) (+ x y)) (disassemble #'add-fixnums) ; ; disassembly for ADD-FIXNUMS ; ; Size: 9 bytes. Origin: #x536B9306 ; ADD-FIXNUMS ; ; 6: 4801FA ADD RDX, RDI ; ; 9: 488BE5 MOV RSP, RBP ; ; C: F8 CLC ; ; D: 5D POP RBP ; ; E: C3 RET ; => NIL (disassemble #'add-floats) ; ; disassembly for ADD-FLOATS ; ; Size: 21 bytes. Origin: #x536CAFF8 ; ADD-FLOATS ; ; AFF8: F30F58D1 ADDSS XMM2, XMM1 ; ; AFFC: 660F7ED2 MOVD EDX, XMM2 ; ; B000: 48C1E220 SHL RDX, 32 ; ; B004: 80CA19 OR DL, 25 ; ; B007: 488BE5 MOV RSP, RBP ; ; B00A: F8 CLC ; ; B00B: 5D POP RBP ; ; B00C: C3 RET ; => NIL (disassemble #'add-doubles) ; ; disassembly for ADD-DOUBLES ; ; Size: 74 bytes. Origin: #x535394D0 ; ADD-DOUBLES ; ; 4D0: F20F58D1 ADDSD XMM2, XMM1 ; ; 4D4: 4D896D28 MOV [R13+40], R13 ; thread.pseudo-atomic-bits ; ; 4D8: 498B5570 MOV RDX, [R13+112] ; thread.mixed-tlab ; ; 4DC: 4883C210 ADD RDX, 16 ; ; 4E0: 493B5578 CMP RDX, [R13+120] ; ; 4E4: 7727 JNBE L3 ; ; 4E6: 49895570 MOV [R13+112], RDX ; thread.mixed-tlab ; ; 4EA: 48FFCA DEC RDX ; ; 4ED: L0: 66C742F11D01 MOV WORD PTR [RDX-15], 285 ; ; 4F3: 4D316D28 XOR [R13+40], R13 ; thread.pseudo-atomic-bits ; ; 4F7: 7402 JEQ L1 ; ; 4F9: CC09 INT3 9 ; pending interrupt trap ; ; 4FB: L1: F20F1152F9 MOVSD [RDX-7], XMM2 ; ; 500: 488BE5 MOV RSP, RBP ; ; 503: F8 CLC ; ; 504: 5D POP RBP ; ; 505: C3 RET ; ; 506: L2: FF24256800A052 JMP QWORD PTR [#x52A00068] ; ALLOC-TRAMP ; ; 50D: L3: 6A10 PUSH 16 ; ; 50F: E8F2FFFFFF CALL L2 ; ; 514: 5A POP RDX ; ; 515: 80CA0F OR DL, 15 ; ; 518: EBD3 JMP L0 ; => NIL