DN-USER> (lambda (x)
(declare (optimize speed))
(sin x))
; (Compiler) Macro of
; #<POLYMORPHIC-FUNCTIONS:POLYMORPHIC-FUNCTION DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT (15)>
; is unable to optimize
; (DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT 'SIN DENSE-NUMERICALS.IMPL::X
; :BROADCAST
; DENSE-NUMERICALS.IMPL::BROADCAST)
; because:
;
; Type of
; DENSE-NUMERICALS.IMPL::BROADCAST
; could not be determined
; Type of
; DENSE-NUMERICALS.IMPL::X
; could not be determined
#<FUNCTION (COMMON-LISP:LAMBDA (X)) {5527BD0B}>
DN-USER> (lambda (x)
(declare (optimize speed)
(type (simple-array single-float) x))
(sin x))
; (Compiler) Macro of
; #<POLYMORPHIC-FUNCTIONS:POLYMORPHIC-FUNCTION DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT (15)>
; is unable to optimize
; (DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT 'SIN DENSE-NUMERICALS.IMPL::X
; :BROADCAST
; DENSE-NUMERICALS.IMPL::BROADCAST)
; because:
;
; Unable to avoid array allocation at run time. Consider supplying
; the OUT argument, and/or ensuring all the appropriate arguments are
; arrays of appropriate types.
#<FUNCTION (COMMON-LISP:LAMBDA (X)) {548CFE1B}>
DN-USER> (lambda (x)
(declare (optimize speed)
(type (simple-array single-float) x))
(sin x :out x))
; (Compiler) Macro of
; #<POLYMORPHIC-FUNCTIONS:POLYMORPHIC-FUNCTION DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT (15)>
; is unable to optimize
; (DENSE-NUMERICALS.IMPL::ONE-ARG-FN/FLOAT 'SIN DENSE-NUMERICALS.IMPL::X :OUT
; DENSE-NUMERICALS.IMPL::OUT
; :BROADCAST
; DENSE-NUMERICALS.IMPL::BROADCAST)
; because:
;
; More optimal POLYMORPH with TYPE-LIST
; (SYMBOL (SIMPLE-ARRAY SINGLE-FLOAT) &KEY
; (:OUT (SIMPLE-ARRAY SINGLE-FLOAT)) (:BROADCAST NULL))
; was found to be inapplicable
#<FUNCTION (COMMON-LISP:LAMBDA (X)) {5535922B}>
DN-USER> (lambda (x)
(declare (optimize speed)
(type (simple-array single-float) x))
(sin x :out x :broadcast nil))
#<FUNCTION (COMMON-LISP:LAMBDA (X)) {559A71CB}>
DN-USER> (disassemble *)
; disassembly for (COMMON-LISP:LAMBDA (X))
; Size: 1238 bytes. Origin: #x559A71CB ; (COMMON-LISP:LAMBDA
(X))
; 7BCF: 90 NOP
; 7BD0: L0: 458D77FD LEA R14D, [R15-3]
; 7BD4: 41F6C60F TEST R14B, 15
; 7BD8: 0F859D040000 JNE L43
; 7BDE: 498B4705 MOV RAX, [R15+5]
; 7BE2: 488378F902 CMP QWORD PTR [RAX-7], 2
; 7BE7: 0F869C040000 JBE L44
; 7BED: 4C8B4009 MOV R8, [RAX+9]
; 7BF1: 458D70F9 LEA R14D, [R8-7]
; 7BF5: 41F6C60F TEST R14B, 15
; 7BF9: 0F8579040000 JNE L42
; 7BFF: 458D77FD LEA R14D, [R15-3]
; 7C03: 41F6C60F TEST R14B, 15
; 7C07: 0F8568040000 JNE L41
; 7C0D: 498B4F05 MOV RCX, [R15+5]
; 7C11: 488379F902 CMP QWORD PTR [RCX-7], 2
; 7C16: 0F8674040000 JBE L45
; 7C1C: 4C8B4909 MOV R9, [RCX+9]
; 7C20: 458D71F9 LEA R14D, [R9-7]
; 7C24: 41F6C60F TEST R14B, 15
; 7C28: 0F8544040000 JNE L40
; 7C2E: 4C897DD8 MOV [RBP-40], R15
; 7C32: 4C8945F0 MOV [RBP-16], R8
; 7C36: 4C894DE8 MOV [RBP-24], R9
; 7C3A: 4883EC10 SUB RSP, 16
; 7C3E: 498BD0 MOV RDX, R8
; 7C41: 498BF9 MOV RDI, R9
; 7C44: B904000000 MOV ECX, 4
; 7C49: 48892C24 MOV [RSP], RBP
; 7C4D: 488BEC MOV RBP, RSP
; 7C50: B8027C3450 MOV EAX, #x50347C02 ; #<FDEFN EQUALP>
; 7C55: FFD0 CALL RAX
; 7C57: 4C8B7DD8 MOV R15, [RBP-40]
; 7C5B: 4C8B4DE8 MOV R9, [RBP-24]
; 7C5F: 4C8B45F0 MOV R8, [RBP-16]
; 7C63: 80FA17 CMP DL, 23
; 7C66: 754E JNE L1
; 7C68: 4C897DD8 MOV [RBP-40], R15
; 7C6C: 488D4424F0 LEA RAX, [RSP-16]
; 7C71: 4883EC30 SUB RSP, 48
; 7C75: 488B15DCFCFFFF MOV RDX, [RIP-804] ; '(EQUALP
; (NARRAY-DIMENSIONS ..))
; 7C7C: BF04000000 MOV EDI, 4
; 7C81: 488B35D8FCFFFF MOV RSI, [RIP-808] ; '(NARRAY-DIMENSIONS
; DENSE-NUMERICALS.IMPL::X)
; 7C88: 4C8940F0 MOV [RAX-16], R8
; 7C8C: 488B0DD5FCFFFF MOV RCX, [RIP-811] ; '(NARRAY-DIMENSIONS
; DENSE-NUMERICALS.IMPL::OUT)
; 7C93: 488948E8 MOV [RAX-24], RCX
; 7C97: 4C8948E0 MOV [RAX-32], R9
; 7C9B: B90C000000 MOV ECX, 12
; 7CA0: 488928 MOV [RAX], RBP
; 7CA3: 488BE8 MOV RBP, RAX
; 7CA6: B882793450 MOV EAX, #x50347982 ; #<FDEFN SB-KERNEL:ASSERT-ERROR>
; 7CAB: FFD0 CALL RAX
; 7CAD: 4C8B7DD8 MOV R15, [RBP-40]
; 7CB1: E91AFFFFFF JMP L0
; 7CB6: L1: 458D77FD LEA R14D, [R15-3]
; 7CBA: 41F6C60F TEST R14B, 15
; 7CBE: 0F85AB030000 JNE L39
; 7CC4: 498B4705 MOV RAX, [R15+5]
; 7CC8: 488378F900 CMP QWORD PTR [RAX-7], 0
; 7CCD: 0F86C4030000 JBE L46
; 7CD3: 488B7001 MOV RSI, [RAX+1]
; 7CD7: 458D77FD LEA R14D, [R15-3]
; 7CDB: 41F6C60F TEST R14B, 15
; 7CDF: 0F8587030000 JNE L38
; 7CE5: 498B4705 MOV RAX, [R15+5]
; 7CE9: 488378F900 CMP QWORD PTR [RAX-7], 0
; 7CEE: 0F86AA030000 JBE L47
; 7CF4: 488B4001 MOV RAX, [RAX+1]
; 7CF8: 488945E8 MOV [RBP-24], RAX
; 7CFC: 488975E0 MOV [RBP-32], RSI
; 7D00: 4C897DD8 MOV [RBP-40], R15
; 7D04: 488BD6 MOV RDX, RSI
; 7D07: 4883EC10 SUB RSP, 16
; 7D0B: B902000000 MOV ECX, 2
; 7D10: 48892C24 MOV [RSP], RBP
; 7D14: 488BEC MOV RBP, RSP
; 7D17: B802C43650 MOV EAX, #x5036C402 ; #<FDEFN SB-KERNEL:VECTOR-SINGLE-FLOAT-P>
; 7D1C: FFD0 CALL RAX
; 7D1E: 4C8B7DD8 MOV R15, [RBP-40]
; 7D22: 488B75E0 MOV RSI, [RBP-32]
; 7D26: 80FA17 CMP DL, 23
; 7D29: 0F8439030000 JEQ L37
; 7D2F: 4C897DD8 MOV [RBP-40], R15
; 7D33: 488975E0 MOV [RBP-32], RSI
; 7D37: 488B55E8 MOV RDX, [RBP-24]
; 7D3B: 4883EC10 SUB RSP, 16
; 7D3F: B902000000 MOV ECX, 2
; 7D44: 48892C24 MOV [RSP], RBP
; 7D48: 488BEC MOV RBP, RSP
; 7D4B: B802C43650 MOV EAX, #x5036C402 ; #<FDEFN SB-KERNEL:VECTOR-SINGLE-FLOAT-P>
; 7D50: FFD0 CALL RAX
; 7D52: 488B75E0 MOV RSI, [RBP-32]
; 7D56: 4C8B7DD8 MOV R15, [RBP-40]
; 7D5A: 80FA17 CMP DL, 23
; 7D5D: 0F84FD020000 JEQ L36
; 7D63: 488975F0 MOV [RBP-16], RSI
; 7D67: 488B7DE8 MOV RDI, [RBP-24]
; 7D6B: 488BD6 MOV RDX, RSI
; 7D6E: EB3B JMP L5
; 7D70: L2: 4C8D72F1 LEA R14, [RDX-15]
; 7D74: 41F6C60F TEST R14B, 15
; 7D78: 750B JNE L3
; 7D7A: 458A36 MOV R14B, [R14]
; 7D7D: 4180EE81 SUB R14B, -127
; 7D81: 4180FE65 CMP R14B, 101
; 7D85: L3: 0F82A6020000 JB L35
; 7D8B: 80FA17 CMP DL, 23
; 7D8E: 0F8495020000 JEQ L34
; 7D94: 488B4A19 MOV RCX, [RDX+25]
; 7D98: 4881F917011050 CMP RCX, #x50100117 ; NIL
; 7D9F: 0F857B020000 JNE L33
; 7DA5: 488BC1 MOV RAX, RCX
; 7DA8: L4: 488BD0 MOV RDX, RAX
; 7DAB: L5: 4C8D72F1 LEA R14, [RDX-15]
; 7DAF: 41F6C60F TEST R14B, 15
; 7DB3: 750B JNE L6
; 7DB5: 458A36 MOV R14B, [R14]
; 7DB8: 4180EE85 SUB R14B, -123
; 7DBC: 4180FE61 CMP R14B, 97
; 7DC0: L6: 73AE JNB L2
; 7DC2: 488BC2 MOV RAX, RDX
; 7DC5: L7: 448B70F1 MOV R14D, [RAX-15]
; 7DC9: 4180EE8D SUB R14B, -115
; 7DCD: 4180FE58 CMP R14B, 88
; 7DD1: 0F8746020000 JNBE L32
; 7DD7: 488945E8 MOV [RBP-24], RAX
; 7DDB: 4883C001 ADD RAX, 1
; 7DDF: 488BF0 MOV RSI, RAX
; 7DE2: 488BD7 MOV RDX, RDI
; 7DE5: EB44 JMP L11
; 7DE7: 660F1F840000000000 NOP
; 7DF0: L8: 4C8D72F1 LEA R14, [RDX-15]
; 7DF4: 41F6C60F TEST R14B, 15
; 7DF8: 750B JNE L9
; 7DFA: 458A36 MOV R14B, [R14]
; 7DFD: 4180EE81 SUB R14B, -127
; 7E01: 4180FE65 CMP R14B, 101
; 7E05: L9: 0F82DB010000 JB L31
; 7E0B: 80FA17 CMP DL, 23
; 7E0E: 0F84CA010000 JEQ L30
; 7E14: 488B4A19 MOV RCX, [RDX+25]
; 7E18: 4881F917011050 CMP RCX, #x50100117 ; NIL
; 7E1F: 0F85B0010000 JNE L29
; 7E25: 488BC1 MOV RAX, RCX
; 7E28: L10: 488BD0 MOV RDX, RAX
; 7E2B: L11: 4C8D72F1 LEA R14, [RDX-15]
; 7E2F: 41F6C60F TEST R14B, 15
; 7E33: 750B JNE L12
; 7E35: 458A36 MOV R14B, [R14]
; 7E38: 4180EE85 SUB R14B, -123
; 7E3C: 4180FE61 CMP R14B, 97
; 7E40: L12: 73AE JNB L8
; 7E42: 488BC2 MOV RAX, RDX
; 7E45: L13: 448B70F1 MOV R14D, [RAX-15]
; 7E49: 4180EE8D SUB R14B, -115
; 7E4D: 4180FE58 CMP R14B, 88
; 7E51: 0F877B010000 JNBE L28
; 7E57: 488945E0 MOV [RBP-32], RAX
; 7E5B: 4883C001 ADD RAX, 1
; 7E5F: 4C8BC0 MOV R8, RAX
; 7E62: 488B45F0 MOV RAX, [RBP-16]
; 7E66: 31DB XOR EBX, EBX
; 7E68: EB5D JMP L16
; 7E6A: 660F1F440000 NOP
; 7E70: L14: 488B4819 MOV RCX, [RAX+25]
; 7E74: 4881F917011050 CMP RCX, #x50100117 ; NIL
; 7E7B: 0F8447010000 JEQ L27
; 7E81: 488B4809 MOV RCX, [RAX+9]
; 7E85: 488B4011 MOV RAX, [RAX+17]
; 7E89: 488BD1 MOV RDX, RCX
; 7E8C: L15: 48D1F8 SAR RAX, 1
; 7E8F: 488BCB MOV RCX, RBX
; 7E92: 48D1F9 SAR RCX, 1
; 7E95: 4801C8 ADD RAX, RCX
; 7E98: 4C8BF0 MOV R14, RAX
; 7E9B: 49D1E6 SHL R14, 1
; 7E9E: 0F8020010000 JO L26
; 7EA4: 488D0C00 LEA RCX, [RAX+RAX]
; 7EA8: 483B0DF1FAFFFF CMP RCX, [RIP-1295] ; [#x559A79A0] = #x1FFFFFFFFFFFFFFE
; 7EAF: 0F8F0F010000 JNLE L26
; 7EB5: 48D1E0 SHL RAX, 1
; 7EB8: 488BD8 MOV RBX, RAX
; 7EBB: 80FA17 CMP DL, 23
; 7EBE: 0F84F8000000 JEQ L25
; 7EC4: 488BC2 MOV RAX, RDX
; 7EC7: L16: 448A70F1 MOV R14B, [RAX-15]
; 7ECB: 4180EE81 SUB R14B, -127
; 7ECF: 4180FE65 CMP R14B, 101
; 7ED3: 739B JNB L14
; 7ED5: 488D0C9D00000000 LEA RCX, [RBX*4]
; 7EDD: 48D1F9 SAR RCX, 1
; 7EE0: 488D040E LEA RAX, [RSI+RCX]
; 7EE4: 488BF0 MOV RSI, RAX
; 7EE7: 488BC7 MOV RAX, RDI
; 7EEA: 31DB XOR EBX, EBX
; 7EEC: EB51 JMP L19
; 7EEE: 6690 NOP
; 7EF0: L17: 488B4819 MOV RCX, [RAX+25]
; 7EF4: 4881F917011050 CMP RCX, #x50100117 ; NIL
; 7EFB: 0F84B1000000 JEQ L24
; 7F01: 488B4809 MOV RCX, [RAX+9]
; 7F05: 488B4011 MOV RAX, [RAX+17]
; 7F09: 488BD1 MOV RDX, RCX
; 7F0C: L18: 48D1F8 SAR RAX, 1
; 7F0F: 488BCB MOV RCX, RBX
; 7F12: 48D1F9 SAR RCX, 1
; 7F15: 4801C8 ADD RAX, RCX
; 7F18: 4C8BF0 MOV R14, RAX
; 7F1B: 49D1E6 SHL R14, 1
; 7F1E: 0F808A000000 JO L23
; 7F24: 488D0C00 LEA RCX, [RAX+RAX]
; 7F28: 483B0D71FAFFFF CMP RCX, [RIP-1423] ; [#x559A79A0] = #x1FFFFFFFFFFFFFFE
; 7F2F: 7F7D JNLE L23
; 7F31: 48D1E0 SHL RAX, 1
; 7F34: 488BD8 MOV RBX, RAX
; 7F37: 80FA17 CMP DL, 23
; 7F3A: 746A JEQ L22
; 7F3C: 488BC2 MOV RAX, RDX
; 7F3F: L19: 448A70F1 MOV R14B, [RAX-15]
; 7F43: 4180EE81 SUB R14B, -127
; 7F47: 4180FE65 CMP R14B, 101
; 7F4B: 73A3 JNB L17
; 7F4D: 488D0C9D00000000 LEA RCX, [RBX*4]
; 7F55: 48D1F9 SAR RCX, 1
; 7F58: 498D0408 LEA RAX, [R8+RCX]
; 7F5C: 4C8BC0 MOV R8, RAX
; 7F5F: 448B77F1 MOV R14D, [RDI-15]
; 7F63: 4180FE81 CMP R14B, -127
; 7F67: 7437 JEQ L21
; 7F69: 4180FEE9 CMP R14B, -23
; 7F6D: 7331 JNB L21
; 7F6F: 488B7FF9 MOV RDI, [RDI-7]
; 7F73: L20: 488BDC MOV RBX, RSP
; 7F76: 4883E4F0 AND RSP, -16
; 7F7A: 48D1FF SAR RDI, 1
; 7F7D: BA01000000 MOV EDX, 1
; 7F82: 498BC8 MOV RCX, R8
; 7F85: 41B801000000 MOV R8D, 1
; 7F8B: 31C0 XOR EAX, EAX
; 7F8D: FF142558230050 CALL QWORD PTR [#x50002358] ; BMAS_ssin
; 7F94: 488BE3 MOV RSP, RBX
; 7F97: 498BD7 MOV RDX, R15
; 7F9A: 488BE5 MOV RSP, RBP
; 7F9D: F8 CLC
; 7F9E: 5D POP RBP
; 7F9F: C3 RET
; 7FA0: L21: 488B7F29 MOV RDI, [RDI+41]
; 7FA4: EBCD JMP L20
; 7FA6: L22: B817011050 MOV EAX, #x50100117 ; NIL
; 7FAB: CC59 INT3 89 ; OBJECT-NOT-ARRAY-ERROR
; 7FAD: 00 BYTE #X00 ; RAX(d)
; 7FAE: L23: CC1E INT3 30 ; OBJECT-NOT-TYPE-ERROR
; 7FB0: 02 BYTE #X02 ; RAX(s)
; 7FB1: 73 BYTE #X73 ; '(SIGNED-BYTE
; 61)
; 7FB2: L24: 488BD1 MOV RDX, RCX
; 7FB5: 31C0 XOR EAX, EAX
; 7FB7: E950FFFFFF JMP L18
; 7FBC: L25: B817011050 MOV EAX, #x50100117 ; NIL
; 7FC1: CC59 INT3 89 ; OBJECT-NOT-ARRAY-ERROR
; 7FC3: 00 BYTE #X00 ; RAX(d)
; 7FC4: L26: CC1E INT3 30 ; OBJECT-NOT-TYPE-ERROR
; 7FC6: 02 BYTE #X02 ; RAX(s)
; 7FC7: 77 BYTE #X77 ; '(SIGNED-BYTE
; 61)
; 7FC8: L27: 488BD1 MOV RDX, RCX
; 7FCB: 31C0 XOR EAX, EAX
; 7FCD: E9BAFEFFFF JMP L15
; 7FD2: L28: CC49 INT3 73 ; OBJECT-NOT-SIMPLE-SPECIALIZED-VECTOR-ERROR
; 7FD4: 00 BYTE #X00 ; RAX(d)
; 7FD5: L29: 488B4209 MOV RAX, [RDX+9]
; 7FD9: E94AFEFFFF JMP L10
; 7FDE: L30: B817011050 MOV EAX, #x50100117 ; NIL
; 7FE3: CC59 INT3 89 ; OBJECT-NOT-ARRAY-ERROR
; 7FE5: 00 BYTE #X00 ; RAX(d)
; 7FE6: L31: 488975C8 MOV [RBP-56], RSI
; 7FEA: 4C897DD8 MOV [RBP-40], R15
; 7FEE: 48897DD0 MOV [RBP-48], RDI
; 7FF2: 4883EC10 SUB RSP, 16
; 7FF6: B902000000 MOV ECX, 2
; 7FFB: 48892C24 MOV [RSP], RBP
; 7FFF: 488BEC MOV RBP, RSP
; 8002: B8E24E3650 MOV EAX, #x50364EE2 ; #<FDEFN SB-EXT:ARRAY-STORAGE-VECTOR>
; 8007: FFD0 CALL RAX
; 8009: 488B7DD0 MOV RDI, [RBP-48]
; 800D: 4C8B7DD8 MOV R15, [RBP-40]
; 8011: 488B75C8 MOV RSI, [RBP-56]
; 8015: 488BC2 MOV RAX, RDX
; 8018: E928FEFFFF JMP L13
; 801D: L32: CC49 INT3 73 ; OBJECT-NOT-SIMPLE-SPECIALIZED-VECTOR-ERROR
; 801F: 00 BYTE #X00 ; RAX(d)
; 8020: L33: 488B4209 MOV RAX, [RDX+9]
; 8024: E97FFDFFFF JMP L4
; 8029: L34: B817011050 MOV EAX, #x50100117 ; NIL
; 802E: CC59 INT3 89 ; OBJECT-NOT-ARRAY-ERROR
; 8030: 00 BYTE #X00 ; RAX(d)
; 8031: L35: 4C897DD8 MOV [RBP-40], R15
; 8035: 48897DD0 MOV [RBP-48], RDI
; 8039: 4883EC10 SUB RSP, 16
; 803D: B902000000 MOV ECX, 2
; 8042: 48892C24 MOV [RSP], RBP
; 8046: 488BEC MOV RBP, RSP
; 8049: B8E24E3650 MOV EAX, #x50364EE2 ; #<FDEFN SB-EXT:ARRAY-STORAGE-VECTOR>
; 804E: FFD0 CALL RAX
; 8050: 488B7DD0 MOV RDI, [RBP-48]
; 8054: 4C8B7DD8 MOV R15, [RBP-40]
; 8058: 488BC2 MOV RAX, RDX
; 805B: E965FDFFFF JMP L7
; 8060: L36: 488B45E8 MOV RAX, [RBP-24]
; 8064: CC1E INT3 30 ; OBJECT-NOT-TYPE-ERROR
; 8066: 00 BYTE #X00 ; RAX(d)
; 8067: 7B BYTE #X7B ; '(VECTOR
; SINGLE-FLOAT)
; 8068: L37: CC1E INT3 30 ; OBJECT-NOT-TYPE-ERROR
; 806A: 18 BYTE #X18 ; RSI(d)
; 806B: 7F BYTE #X7F ; '(VECTOR
; SINGLE-FLOAT)
; 806C: L38: CC72 INT3 114 ; OBJECT-NOT-INSTANCE-ERROR
; 806E: 3C BYTE #X3C ; R15(d)
; 806F: L39: CC72 INT3 114 ; OBJECT-NOT-INSTANCE-ERROR
; 8071: 3C BYTE #X3C ; R15(d)
; 8072: L40: CC4C INT3 76 ; OBJECT-NOT-LIST-ERROR
; 8074: 24 BYTE #X24 ; R9(d)
; 8075: L41: CC72 INT3 114 ; OBJECT-NOT-INSTANCE-ERROR
; 8077: 3C BYTE #X3C ; R15(d)
; 8078: L42: CC4C INT3 76 ; OBJECT-NOT-LIST-ERROR
; 807A: 20 BYTE #X20 ; R8(d)
; 807B: L43: CC72 INT3 114 ; OBJECT-NOT-INSTANCE-ERROR
; 807D: 3C BYTE #X3C ; R15(d)
; 807E: CC10 INT3 16 ; Invalid argument count trap
; 8080: CC10 INT3 16 ; Invalid argument count trap
; 8082: CC24 INT3 36 ; INVALID-VECTOR-INDEX-ERROR
; 8084: 00 BYTE #X00 ; RAX(d)
; 8085: 8A808010 BYTE #X8A, #X80, #X80, #X10 ; 2
; 8089: L44: CC24 INT3 36 ; INVALID-VECTOR-INDEX-ERROR
; 808B: 00 BYTE #X00 ; RAX(d)
; 808C: 86808010 BYTE #X86, #X80, #X80, #X10 ; 1
; 8090: L45: CC24 INT3 36 ; INVALID-VECTOR-INDEX-ERROR
; 8092: 04 BYTE #X04 ; RCX(d)
; 8093: 86808010 BYTE #X86, #X80, #X80, #X10 ; 1
; 8097: L46: CC24 INT3 36 ; INVALID-VECTOR-INDEX-ERROR
; 8099: 00 BYTE #X00 ; RAX(d)
; 809A: 82808010 BYTE #X82, #X80, #X80, #X10 ; 0
; 809E: L47: CC24 INT3 36 ; INVALID-VECTOR-INDEX-ERROR
; 80A0: 00 BYTE #X00 ; RAX(d)
; 80A1: 82808010 BYTE #X82, #X80, #X80, #X10 ; 0
NIL
DN-USER> (disassemble (lambda (x) ; in place operator
(declare (optimize speed)
(type (simple-array single-float) x))
(sin! x)))
; disassembly for (COMMON-LISP:LAMBDA (X))
; Size: 1238 bytes. Origin: #x559A83FF ; (COMMON-LISP:LAMBDA
(X))
;; identical disassembly
NIL
DN-USER> (disassemble (lambda (x)
(declare (optimize speed (safety 0)) ; even shorter disassembly foregoing type-checks
(type (simple-array single-float) x))
(sin! x)))
; disassembly for (COMMON-LISP:LAMBDA (X))
; Size: 562 bytes. Origin: #x5527EA9B ; (COMMON-LISP:LAMBDA
(X))
; A9B: 488B45F0 MOV RAX, [RBP-16]
; A9F: 488B4005 MOV RAX, [RAX+5]
; AA3: 488B4001 MOV RAX, [RAX+1]
; AA7: 488B4DF0 MOV RCX, [RBP-16]
; AAB: 488B4905 MOV RCX, [RCX+5]
; AAF: 488B7901 MOV RDI, [RCX+1]
; AB3: 488945E8 MOV [RBP-24], RAX
; AB7: 488BD0 MOV RDX, RAX
; ABA: EB36 JMP L3
; ABC: 0F1F4000 NOP
; AC0: L0: 4C8D72F1 LEA R14, [RDX-15]
; AC4: 41F6C60F TEST R14B, 15
; AC8: 750B JNE L1
; ACA: 458A36 MOV R14B, [R14]
; ACD: 4180EE81 SUB R14B, -127
; AD1: 4180FE65 CMP R14B, 101
; AD5: L1: 0F82C9010000 JB L25
; ADB: 488B4A19 MOV RCX, [RDX+25]
; ADF: 4881F917011050 CMP RCX, #x50100117 ; NIL
; AE6: 0F85AF010000 JNE L24
; AEC: 488BC1 MOV RAX, RCX
; AEF: L2: 488BD0 MOV RDX, RAX
; AF2: L3: 4C8D72F1 LEA R14, [RDX-15]
; AF6: 41F6C60F TEST R14B, 15
; AFA: 750B JNE L4
; AFC: 458A36 MOV R14B, [R14]
; AFF: 4180EE85 SUB R14B, -123
; B03: 4180FE61 CMP R14B, 97
; B07: L4: 73B7 JNB L0
; B09: 488BC2 MOV RAX, RDX
; B0C: L5: 488945E0 MOV [RBP-32], RAX
; B10: 4883C001 ADD RAX, 1
; B14: 488BF0 MOV RSI, RAX
; B17: 488BD7 MOV RDX, RDI
; B1A: EB36 JMP L9
; B1C: 0F1F4000 NOP
; B20: L6: 4C8D72F1 LEA R14, [RDX-15]
; B24: 41F6C60F TEST R14B, 15
; B28: 750B JNE L7
; B2A: 458A36 MOV R14B, [R14]
; B2D: 4180EE81 SUB R14B, -127
; B31: 4180FE65 CMP R14B, 101
; B35: L7: 0F8231010000 JB L23
; B3B: 488B4A19 MOV RCX, [RDX+25]
; B3F: 4881F917011050 CMP RCX, #x50100117 ; NIL
; B46: 0F8517010000 JNE L22
; B4C: 488BC1 MOV RAX, RCX
; B4F: L8: 488BD0 MOV RDX, RAX
; B52: L9: 4C8D72F1 LEA R14, [RDX-15]
; B56: 41F6C60F TEST R14B, 15
; B5A: 750B JNE L10
; B5C: 458A36 MOV R14B, [R14]
; B5F: 4180EE85 SUB R14B, -123
; B63: 4180FE61 CMP R14B, 97
; B67: L10: 73B7 JNB L6
; B69: 488BC2 MOV RAX, RDX
; B6C: L11: 4C8BF8 MOV R15, RAX
; B6F: 4883C001 ADD RAX, 1
; B73: 4C8BC0 MOV R8, RAX
; B76: 488B45E8 MOV RAX, [RBP-24]
; B7A: 31D2 XOR EDX, EDX
; B7C: EB24 JMP L14
; B7E: 6690 NOP
; B80: L12: 488B4819 MOV RCX, [RAX+25]
; B84: 4881F917011050 CMP RCX, #x50100117 ; NIL
; B8B: 0F84C8000000 JEQ L21
; B91: 488B5809 MOV RBX, [RAX+9]
; B95: 488B4011 MOV RAX, [RAX+17]
; B99: L13: 4801D0 ADD RAX, RDX
; B9C: 488BD0 MOV RDX, RAX
; B9F: 488BC3 MOV RAX, RBX
; BA2: L14: 448A70F1 MOV R14B, [RAX-15]
; BA6: 4180EE81 SUB R14B, -127
; BAA: 4180FE65 CMP R14B, 101
; BAE: 73D0 JNB L12
; BB0: 48C1E202 SHL RDX, 2
; BB4: 48D1FA SAR RDX, 1
; BB7: 488D0416 LEA RAX, [RSI+RDX]
; BBB: 488BF0 MOV RSI, RAX
; BBE: 488BC7 MOV RAX, RDI
; BC1: 31D2 XOR EDX, EDX
; BC3: EB29 JMP L17
; BC5: 660F1F840000000000 NOP
; BCE: 6690 NOP
; BD0: L15: 488B4819 MOV RCX, [RAX+25]
; BD4: 4881F917011050 CMP RCX, #x50100117 ; NIL
; BDB: 7475 JEQ L20
; BDD: 488B5809 MOV RBX, [RAX+9]
; BE1: 488B4011 MOV RAX, [RAX+17]
; BE5: L16: 4801D0 ADD RAX, RDX
; BE8: 488BD0 MOV RDX, RAX
; BEB: 488BC3 MOV RAX, RBX
; BEE: L17: 448A70F1 MOV R14B, [RAX-15]
; BF2: 4180EE81 SUB R14B, -127
; BF6: 4180FE65 CMP R14B, 101
; BFA: 73D4 JNB L15
; BFC: 48C1E202 SHL RDX, 2
; C00: 48D1FA SAR RDX, 1
; C03: 498D0410 LEA RAX, [R8+RDX]
; C07: 4C8BC0 MOV R8, RAX
; C0A: 448B77F1 MOV R14D, [RDI-15]
; C0E: 4180FE81 CMP R14B, -127
; C12: 7438 JEQ L19
; C14: 4180FEE9 CMP R14B, -23
; C18: 7332 JNB L19
; C1A: 488B7FF9 MOV RDI, [RDI-7]
; C1E: L18: 488BDC MOV RBX, RSP
; C21: 4883E4F0 AND RSP, -16
; C25: 48D1FF SAR RDI, 1
; C28: BA01000000 MOV EDX, 1
; C2D: 498BC8 MOV RCX, R8
; C30: 41B801000000 MOV R8D, 1
; C36: 31C0 XOR EAX, EAX
; C38: FF142558230050 CALL QWORD PTR [#x50002358] ; BMAS_ssin
; C3F: 488BE3 MOV RSP, RBX
; C42: 488B55F0 MOV RDX, [RBP-16]
; C46: 488BE5 MOV RSP, RBP
; C49: F8 CLC
; C4A: 5D POP RBP
; C4B: C3 RET
; C4C: L19: 488B7F29 MOV RDI, [RDI+41]
; C50: EBCC JMP L18
; C52: L20: 488BD9 MOV RBX, RCX
; C55: 31C0 XOR EAX, EAX
; C57: EB8C JMP L16
; C59: L21: 488BD9 MOV RBX, RCX
; C5C: 31C0 XOR EAX, EAX
; C5E: E936FFFFFF JMP L13
; C63: L22: 488B4209 MOV RAX, [RDX+9]
; C67: E9E3FEFFFF JMP L8
; C6C: L23: 48897DD8 MOV [RBP-40], RDI
; C70: 488975D0 MOV [RBP-48], RSI
; C74: 4883EC10 SUB RSP, 16
; C78: B902000000 MOV ECX, 2
; C7D: 48892C24 MOV [RSP], RBP
; C81: 488BEC MOV RBP, RSP
; C84: B8E24E3650 MOV EAX, #x50364EE2 ; #<FDEFN SB-EXT:ARRAY-STORAGE-VECTOR>
; C89: FFD0 CALL RAX
; C8B: 488B75D0 MOV RSI, [RBP-48]
; C8F: 488B7DD8 MOV RDI, [RBP-40]
; C93: 488BC2 MOV RAX, RDX
; C96: E9D1FEFFFF JMP L11
; C9B: L24: 488B4209 MOV RAX, [RDX+9]
; C9F: E94BFEFFFF JMP L2
; CA4: L25: 48897DD8 MOV [RBP-40], RDI
; CA8: 4883EC10 SUB RSP, 16
; CAC: B902000000 MOV ECX, 2
; CB1: 48892C24 MOV [RSP], RBP
; CB5: 488BEC MOV RBP, RSP
; CB8: B8E24E3650 MOV EAX, #x50364EE2 ; #<FDEFN SB-EXT:ARRAY-STORAGE-VECTOR>
; CBD: FFD0 CALL RAX
; CBF: 488B7DD8 MOV RDI, [RBP-40]
; CC3: 488BC2 MOV RAX, RDX
; CC6: E941FEFFFF JMP L5
; CCB: CC10 INT3 16 ; Invalid argument count trap
NIL