1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| SSO> (disassemble (lambda () (+ 2 3)))
; disassembly for (LAMBDA ())
; 0DF56D64: BA0A000000 MOV EDX, 10 ; noargparsing entry point
; 69: 488BE5 MOV RSP, RBP
; 6C: F8 CLC
; 6D: 5D POP RBP
; 6E: C3 RET
; 6F: CC0A BREAK 10 ; error trap
; 71: 02 BYTE #X02
; 72: 18 BYTE #X18 ; INVALIDARGCOUNTERROR
; 73: 54 BYTE #X54 ; RCX
NIL
SSO> (disassemble (lambda () (+ 666 (random))))
; in: DISASSEMBLE (LAMBDA () (+ 666 (RANDOM)))
; (RANDOM)
;
; caught WARNING:
; The function was called with zero arguments, but wants at least one.
;
; compilation unit finished
; caught 1 WARNING condition
; disassembly for (LAMBDA ())
; 0DF89124: 488D5424F0 LEA RDX, [RSP16] ; noargparsing entry point
; 29: 4883EC18 SUB RSP, 24
; 2D: 488B059CFFFFFF MOV RAX, [RIP100] ; #<FDEFINITION object for RANDOM>
; 34: 31C9 XOR ECX, ECX
; 36: 48892A MOV [RDX], RBP
; 39: 488BEA MOV RBP, RDX
; 3C: FF5009 CALL QWORD PTR [RAX+9]
; 3F: 480F42E3 CMOVB RSP, RBX
; 43: BF34050000 MOV EDI, 1332
; 48: 4C8D1C25E0010020 LEA R11, [#x200001E0] ; GENERIC-+
; 50: 41FFD3 CALL R11
; 53: 480F42E3 CMOVB RSP, RBX
; 57: 488BE5 MOV RSP, RBP
; 5A: F8 CLC
; 5B: 5D POP RBP
; 5C: C3 RET
; 5D: CC0A BREAK 10 ; error trap
; 5F: 02 BYTE #X02
; 60: 18 BYTE #X18 ; INVALIDARGCOUNTERROR
; 61: 54 BYTE #X54 ; RCX
NIL |