LINUX.ORG.RU

История изменений

Исправление deadplace, (текущая версия) :

(defun foo (x)
  (declare (type single-float x)
           (optimize (speed 3)))
  (* 2 x))

(defun bar (x)
  (declare (type number x)
           (optimize (speed 3)))
  (* 2 x))

(disassemble 'foo)
; disassembly for FOO
; Size: 23 bytes. Origin: #x2273805F                          ; FOO
; 5F:       F30F58C9         ADDSS XMM1, XMM1
; 63:       660F7ECA         MOVD EDX, XMM1
; 67:       48C1E220         SHL RDX, 32
; 6B:       80CA19           OR DL, 25
; 6E:       488BE5           MOV RSP, RBP
; 71:       F8               CLC
; 72:       5D               POP RBP
; 73:       C3               RET
; 74:       CC10             INT3 16                          ; Invalid argument count trap
NIL
* (disassemble 'bar)
; disassembly for BAR
; Size: 20 bytes. Origin: #x227380F7                          ; BAR
; 0F7:       BF04000000       MOV EDI, 4
; 0FC:       FF1425B800B021   CALL QWORD PTR [#x21B000B8]     ; GENERIC-*
; 103:       488BE5           MOV RSP, RBP
; 106:       F8               CLC
; 107:       5D               POP RBP
; 108:       C3               RET
; 109:       CC10             INT3 16                         ; Invalid argument count trap
NIL
* 

Нет разницы по твоему?

Исходная версия deadplace, :

[code] (defun foo (x) (declare (type single-float x) (optimize (speed 3))) (* 2 x))

(defun bar (x) (declare (type number x) (optimize (speed 3))) (* 2 x))

(disassemble ’foo) ; disassembly for FOO ; Size: 23 bytes. Origin: #x2273805F ; FOO ; 5F: F30F58C9 ADDSS XMM1, XMM1 ; 63: 660F7ECA MOVD EDX, XMM1 ; 67: 48C1E220 SHL RDX, 32 ; 6B: 80CA19 OR DL, 25 ; 6E: 488BE5 MOV RSP, RBP ; 71: F8 CLC ; 72: 5D POP RBP ; 73: C3 RET ; 74: CC10 INT3 16 ; Invalid argument count trap NIL

  • (disassemble ’bar) ; disassembly for BAR ; Size: 20 bytes. Origin: #x227380F7 ; BAR ; 0F7: BF04000000 MOV EDI, 4 ; 0FC: FF1425B800B021 CALL QWORD PTR [#x21B000B8] ; GENERIC-* ; 103: 488BE5 MOV RSP, RBP ; 106: F8 CLC ; 107: 5D POP RBP ; 108: C3 RET ; 109: CC10 INT3 16 ; Invalid argument count trap NIL

[/code]

Нет разницы по твоему?