Skip to content

Instantly share code, notes, and snippets.

@LiberalArtist
Last active February 15, 2023 12:22
Show Gist options
  • Save LiberalArtist/355375b5927b88f91840268b2f87b515 to your computer and use it in GitHub Desktop.
Save LiberalArtist/355375b5927b88f91840268b2f87b515 to your computer and use it in GitHub Desktop.
Fibonacci Optimization in Racket
*~
\#*
.\#*
.DS_Store
compiled/
/doc/
#lang racket/base
(define unsafe 39)
(define safe (+ unsafe 20))
(define unsafe-non-tail (+ unsafe 30))
(define safe-non-tail (+ 74 unsafe-non-tail))
(define-syntax-rule (show id ...)
(list (cons 'id id) ...))
(require rackunit)
(check-equal?
(show unsafe safe unsafe-non-tail safe-non-tail)
'((unsafe . 39)
(safe . 59)
(unsafe-non-tail . 69)
(safe-non-tail . 143)))
#lang racket/base
;; SPDX-License-Identifier: CCO-1.0
(require racket/fixnum
racket/unsafe/ops)
(define (unsafe n)
(if (fixnum? n)
(let unsafe➰ ([n n]
[prev 0]
[cur 1])
(cond
[(unsafe-fx= n 0)
prev]
[(unsafe-fx= n 1)
cur]
[else
(unsafe➰ (unsafe-fx- n 1)
cur
(unsafe-fx+/wraparound prev cur))]))
0))
(define (safe n)
;; slightly more code than `safe-extra-wraparound`
;; (one more function call)
;; about 20 lines more code than `unsafe`
(if (and (fixnum? n) (fx< 0 n))
(let safe➰ ([n n]
[prev 0]
[cur 1])
(cond
[(fx= n 0)
prev]
[(fx= n 1)
cur]
[else
(safe➰ (fx- n 1)
cur
(fx+/wraparound prev cur))]))
0))
(define (safe-extra-wraparound n)
(if (and (fixnum? n) (fx< 0 n))
(let safe-extra-wraparound➰ ([n n]
[prev 0]
[cur 1])
(cond
[(fx= n 0)
prev]
[(fx= n 1)
cur]
[else
(safe-extra-wraparound➰ (fx-/wraparound n 1)
cur
(fx+/wraparound prev cur))]))
0))
(define (safe-generic n)
(if (and (fixnum? n) (fx< 0 n))
(let safe-generic➰ ([n n]
[prev 0]
[cur 1])
(cond
[(= n 0)
prev]
[(= n 1)
cur]
[else
(safe-generic➰ (- n 1)
cur
(+ prev cur))]))
0))
(define (safe-generic-unguarded n)
(let safe-generic-unguarded➰ ([n n]
[prev 0]
[cur 1])
(cond
[(= n 0)
prev]
[(= n 1)
cur]
[else
(safe-generic-unguarded➰ (- n 1)
cur
(+ prev cur))])))
(module typed typed/racket/base
(require typed/racket/unsafe)
(unsafe-require/typed
racket/unsafe/ops
;; https://github.com/racket/typed-racket/issues/1309
[(unsafe-fx+/wraparound fx+/wraparound) (-> Fixnum Fixnum Fixnum)])
(define (typed-clever n) : Nonnegative-Fixnum
(if (and (fixnum? n) (< 0 n))
(let typed-clever➰ ([n : Nonnegative-Fixnum n]
[prev : Nonnegative-Fixnum 0]
[cur : Positive-Fixnum 1])
(cond
[(= n 0)
prev]
[(= n 1)
cur]
[else
(define next
(fx+/wraparound prev cur))
(if (< 0 next)
(typed-clever➰ (- n 1) cur next)
0)]))
0)))
(define (unsafe-clever n)
;; the same as typed-clever
;; slightly more code than `unsafe`
;; (no more function calls)
(if (and (fixnum? n) (unsafe-fx< 0 n))
(let unsafe-clever➰ ([n n]
[prev 0]
[cur 1])
(cond
[(unsafe-fx= n 0)
prev]
[(unsafe-fx= n 1)
cur]
[else
(define next
(unsafe-fx+/wraparound prev cur))
(if (unsafe-fx< 0 next)
(unsafe-clever➰ (unsafe-fx- n 1) cur next)
0)]))
0))
(define (safe-clever n)
;; slightly more code than `safe-clever-extra-wraparound`
;; (1 more function call)
;; about 20 lines more code than `unsafe-clever`
(if (and (fixnum? n) (fx< 0 n))
(let safe-clever➰ ([n n]
[prev 0]
[cur 1])
(cond
[(fx= n 0)
prev]
[(fx= n 1)
cur]
[else
(define next
(fx+/wraparound prev cur))
(if (fx< 0 next)
(safe-clever➰ (fx- n 1) cur next)
0)]))
0))
(define (safe-clever-extra-wraparound n)
(if (and (fixnum? n) (fx< 0 n))
(let safe-clever-extra-wraparound➰ ([n n]
[prev 0]
[cur 1])
(cond
[(fx= n 0)
prev]
[(fx= n 1)
cur]
[else
(define next
(fx+/wraparound prev cur))
(if (fx< 0 next)
(safe-clever-extra-wraparound➰ (fx-/wraparound n 1) cur next)
0)]))
0))
(define (safe-non-tail n)
;; 74 more lines of code than `unsafe-non-tail`
(if (and (fixnum? n) (fx< 0 n))
(let safe-non-tail➰ ([n n])
(if (< n 2)
n
(+ (safe-non-tail➰ (- n 2))
(safe-non-tail➰ (- n 1)))))
0))
(define (unsafe-non-tail n)
;; 30 more lines of code than `unsafe`
(if (and (fixnum? n) (unsafe-fx< 0 n))
(let unsafe-non-tail➰ ([n n])
(if (unsafe-fx< n 2)
n
(unsafe-fx+/wraparound (unsafe-non-tail➰ (unsafe-fx- n 2))
(unsafe-non-tail➰ (unsafe-fx- n 1)))))
0))
(module typed-again typed/racket/base
(require typed/racket/unsafe)
(unsafe-require/typed
racket/unsafe/ops
;; https://github.com/racket/typed-racket/issues/1309
;; https://github.com/racket/typed-racket/issues/1310
[(unsafe-fxabs fxabs) (-> Fixnum Nonnegative-Fixnum)]
[(unsafe-fx+/wraparound fx+/wraparound) (-> Fixnum Fixnum Fixnum)])
(define (typed-max n) : Nonnegative-Fixnum
;; the same as `typed-clever`
(if (and (fixnum? n) (< 0 n))
(let typed-max➰ ([n : Nonnegative-Fixnum n]
[prev : Nonnegative-Fixnum 0]
[cur : Positive-Fixnum 1])
(cond
[(= n 0)
prev]
[(= n 1)
cur]
[else
(define next
(max 1 (fx+/wraparound prev cur)))
(typed-max➰ (- n 1) cur next)]))
0))
(define (typed-abs n) : Nonnegative-Fixnum
;; the same as `typed-clever`
(if (and (fixnum? n) (< 0 n))
(let typed-abs➰ ([n : Nonnegative-Fixnum n]
[prev : Nonnegative-Fixnum 0]
[cur : Nonnegative-Fixnum 1])
(cond
[(= n 0)
prev]
[(= n 1)
cur]
[else
(typed-abs➰ (- n 1)
cur
(fxabs (fx+/wraparound prev cur)))]))
0)))
(module example ....
(require (lib "racket/base.rkt")
(lib "racket/fixnum.rkt")
(lib "racket/unsafe/ops.rkt"))
(provide)
(define unsafe-non-tail➰
(lambda (a0)
"/app/compiled/example.rkt:184:7"
(#%assembly-code
" 0: 4c89c5 (mov rbp r8) ; <="
" 3: 4883fd10 (cmp rbp #x10)"
" 7: 7d04 (jnl (+ rip #x4)) ; => d"
" 9: 41ff6500 (jmp (mem64+ r13 #x0))"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13) ; <="
" 11: 0f86ac000000 (jbe (+ rip #xac)) ; => c3"
" 17: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 1c: 7469 (jz (+ rip #x69)) ; => 87"
" 1e: 4c8d45f0 (lea r8 (mem+ rbp #x-10)) ; <="
" 22: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" 26: 4983c510 (add r13 #x10)"
" 2a: 488d0d16000000 (lea rcx (mem+ rip #x16)) ; => 47"
" 31: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 35: ebc9 (jmp (+ rip #x-37)) ; => 0"
" 37: 7800000000000000 (data)"
" 3f: 8b00000000000000 (data)"
" 47: 4983ed10 (sub r13 #x10) ; <="
" 4b: 4889e9 (mov rcx rbp)"
" 4e: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 52: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 56: 4c8d45f8 (lea r8 (mem+ rbp #x-8))"
" 5a: 4983c518 (add r13 #x18)"
" 5e: 488d0d16000000 (lea rcx (mem+ rip #x16)) ; => 7b"
" 65: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 69: eb95 (jmp (+ rip #x-6b)) ; => 0"
" 6b: ac00000000000000 (data)"
" 73: 0f01000000000000 (data)"
" 7b: 4983ed18 (sub r13 #x18) ; <="
" 7f: 49036d10 (add rbp (mem64+ r13 #x10))"
" 83: 41ff6500 (jmp (mem64+ r13 #x0))"
" 87: 49896d08 (mov (mem64+ r13 #x8) rbp) ; <="
" 8b: 4983c510 (add r13 #x10)"
" 8f: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b6"
" 96: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 9a: e9a1c087fa (jmp (+ rip #x-5783f5f)) ; #<code event>"
" 9f: 0f1f8000000000e7 (data)"
" a7: 0000000000000089 (data)"
" af: 00000000000000 (data)"
" b6: 4983ed10 (sub r13 #x10) ; <="
" ba: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" be: e95bffffff (jmp (+ rip #x-a5)) ; => 1e"
" c3: e8887e85fa (call (+ rip #x-57a8178)) ; #<code dooverflow> ; <="
" c8: 0f1f8000000000 (nop (mem32+ rax #x0))"
" cf: e943ffffff (jmp (+ rip #x-bd)) ; => 17"
"")))
(define unsafe-non-tail
(lambda (a0)
"/app/compiled/example.rkt:181:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 755f (jnz (+ rip #x5f)) ; => 65"
" 6: 41f6c007 (test r8b #x7)"
" a: 7552 (jnz (+ rip #x52)) ; => 5e"
" c: 4983f800 (cmp r8 #x0)"
" 10: 7e4c (jle (+ rip #x4c)) ; => 5e"
" 12: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 17: 740c (jz (+ rip #xc)) ; => 25"
" 19: e902590000 (jmp (+ rip #x5902)) ; #<code unsafe-non-tail➰> ; <="
" 1e: 0f1f8000000000 (data)"
" 25: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 29: 4983c510 (add r13 #x10)"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: e903f875fa (jmp (+ rip #x-58a07fd)) ; #<code event>"
" 3d: 0f1f800000000085 (data)"
" 45: 0000000000000089 (data)"
" 4d: 00000000000000 (data)"
" 54: 4983ed10 (sub r13 #x10) ; <="
" 58: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 5c: ebbb (jmp (+ rip #x-45)) ; => 19"
" 5e: 4831ed (xor rbp rbp) ; <="
" 61: 41ff6500 (jmp (mem64+ r13 #x0))"
" 65: e916ba73fa (jmp (+ rip #x-58c45ea)) ; #<code doargerr> ; <="
" 6a: 0f1f8000000000 (data)"
"")))
(define safe-non-tail➰
(lambda (a0)
"/app/compiled/example.rkt:174:7"
(#%assembly-code
" 0: 4c89c5 (mov rbp r8) ; <="
" 3: 40f6c507 (test bpl #x7)"
" 7: 0f85a4010000 (jnz (+ rip #x1a4)) ; => 1b1"
" d: 4883fd10 (cmp rbp #x10)"
" 11: 7d04 (jnl (+ rip #x4)) ; => 17"
" 13: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" 17: 4d396e48 (cmp (mem64+ r14 #x48) r13) ; <="
" 1b: 0f867f010000 (jbe (+ rip #x17f)) ; => 1a0"
" 21: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 26: 0f8438010000 (jz (+ rip #x138)) ; => 164"
" 2c: 40f6c507 (test bpl #x7) ; <="
" 30: 0f85e5000000 (jnz (+ rip #xe5)) ; => 11b"
" 36: 4989e8 (mov r8 rbp)"
" 39: 4983e810 (sub r8 #x10)"
" 3d: 0f80d8000000 (jo (+ rip #xd8)) ; => 11b"
" 43: 49896d08 (mov (mem64+ r13 #x8) rbp) ; <="
" 47: 4983c510 (add r13 #x10)"
" 4b: 488d0d16000000 (lea rcx (mem+ rip #x16)) ; => 68"
" 52: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 56: eba8 (jmp (+ rip #x-58)) ; => 0"
" 58: 9900000000000000 (data)"
" 60: 8b00000000000000 (data)"
" 68: 4983ed10 (sub r13 #x10) ; <="
" 6c: 4989e8 (mov r8 rbp)"
" 6f: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 73: 4d894510 (mov (mem64+ r13 #x10) r8)"
" 77: 40f6c507 (test bpl #x7)"
" 7b: 755d (jnz (+ rip #x5d)) ; => da"
" 7d: 4989e8 (mov r8 rbp)"
" 80: 4983e808 (sub r8 #x8)"
" 84: 7054 (jo (+ rip #x54)) ; => da"
" 86: 4983c518 (add r13 #x18) ; <="
" 8a: 488d0d19000000 (lea rcx (mem+ rip #x19)) ; => aa"
" 91: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 95: e966ffffff (jmp (+ rip #x-9a)) ; => 0"
" 9a: db00000000000000 (data)"
" a2: 0f01000000000000 (data)"
" aa: 4983ed18 (sub r13 #x18) ; <="
" ae: 4889ef (mov rdi rbp)"
" b1: 4889f9 (mov rcx rdi)"
" b4: 490b4d10 (or rcx (mem64+ r13 #x10))"
" b8: f6c107 (test cl #x7)"
" bb: 750d (jnz (+ rip #xd)) ; => ca"
" bd: 4889fd (mov rbp rdi)"
" c0: 49036d10 (add rbp (mem64+ r13 #x10))"
" c4: 7004 (jo (+ rip #x4)) ; => ca"
" c6: 41ff6500 (jmp (mem64+ r13 #x0))"
" ca: 4d8b4510 (mov r8 (mem64+ r13 #x10)) ; <="
" ce: e95ddf73fa (jmp (+ rip #x-58c20a3)) ; #<code +>"
" d3: 0f1f8000000000 (data)"
" da: 4989e8 (mov r8 rbp) ; <="
" dd: 48c7c708000000 (mov rdi #x8)"
" e4: 4983c518 (add r13 #x18)"
" e8: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 10f"
" ef: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" f3: e978ed73fa (jmp (+ rip #x-58c1288)) ; #<code ->"
" f8: 0f1f800000000040 (data)"
" 100: 010000000000000f (data)"
" 108: 01000000000000 (data)"
" 10f: 4983ed18 (sub r13 #x18) ; <="
" 113: 4989e8 (mov r8 rbp)"
" 116: e96bffffff (jmp (+ rip #x-95)) ; => 86"
" 11b: 4989e8 (mov r8 rbp) ; <="
" 11e: 48c7c710000000 (mov rdi #x10)"
" 125: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" 129: 4983c510 (add r13 #x10)"
" 12d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 154"
" 134: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 138: e933ed73fa (jmp (+ rip #x-58c12cd)) ; #<code ->"
" 13d: 0f1f800000000085 (data)"
" 145: 010000000000008b (data)"
" 14d: 00000000000000 (data)"
" 154: 4983ed10 (sub r13 #x10) ; <="
" 158: 4989e8 (mov r8 rbp)"
" 15b: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 15f: e9dffeffff (jmp (+ rip #x-121)) ; => 43"
" 164: 49896d08 (mov (mem64+ r13 #x8) rbp) ; <="
" 168: 4983c510 (add r13 #x10)"
" 16c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 193"
" 173: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 177: e9848174fa (jmp (+ rip #x-58b7e7c)) ; #<code event>"
" 17c: 0f1f8000000000c4 (data)"
" 184: 0100000000000089 (data)"
" 18c: 00000000000000 (data)"
" 193: 4983ed10 (sub r13 #x10) ; <="
" 197: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 19b: e98cfeffff (jmp (+ rip #x-174)) ; => 2c"
" 1a0: e86b3f72fa (call (+ rip #x-58dc095)) ; #<code dooverflow> ; <="
" 1a5: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1ac: e970feffff (jmp (+ rip #x-190)) ; => 21"
" 1b1: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 1b6: 7537 (jnz (+ rip #x37)) ; => 1ef"
" 1b8: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" 1bc: 4983c510 (add r13 #x10)"
" 1c0: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1e7"
" 1c7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1cb: e9708674fa (jmp (+ rip #x-58b7990)) ; #<code event>"
" 1d0: 0f1f800000000018 (data)"
" 1d8: 0200000000000089 (data)"
" 1e0: 00000000000000 (data)"
" 1e7: 4983ed10 (sub r13 #x10) ; <="
" 1eb: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 1ef: 4989e8 (mov r8 rbp) ; <="
" 1f2: 48c7c710000000 (mov rdi #x10)"
" 1f9: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" 1fd: 4983c510 (add r13 #x10)"
" 201: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 228"
" 208: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 20c: e96fd573fa (jmp (+ rip #x-58c2a91)) ; #<code <>"
" 211: 0f1f800000000059 (data)"
" 219: 020000000000008b (data)"
" 221: 00000000000000 (data)"
" 228: 4983ed10 (sub r13 #x10) ; <="
" 22c: 4889e9 (mov rcx rbp)"
" 22f: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 233: 4883f906 (cmp rcx #x6)"
" 237: 0f84dafdffff (jz (+ rip #x-226)) ; => 17"
" 23d: e9d1fdffff (jmp (+ rip #x-22f)) ; => 13"
"")))
(define safe-non-tail
(lambda (a0)
"/app/compiled/example.rkt:171:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 755f (jnz (+ rip #x5f)) ; => 65"
" 6: 41f6c007 (test r8b #x7)"
" a: 7552 (jnz (+ rip #x52)) ; => 5e"
" c: 4983f800 (cmp r8 #x0)"
" 10: 7e4c (jle (+ rip #x4c)) ; => 5e"
" 12: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 17: 740c (jz (+ rip #xc)) ; => 25"
" 19: e9a2cc0100 (jmp (+ rip #x1cca2)) ; #<code safe-non-tail➰> ; <="
" 1e: 0f1f8000000000 (data)"
" 25: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 29: 4983c510 (add r13 #x10)"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: e9c35476fa (jmp (+ rip #x-589ab3d)) ; #<code event>"
" 3d: 0f1f800000000085 (data)"
" 45: 0000000000000089 (data)"
" 4d: 00000000000000 (data)"
" 54: 4983ed10 (sub r13 #x10) ; <="
" 58: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 5c: ebbb (jmp (+ rip #x-45)) ; => 19"
" 5e: 4831ed (xor rbp rbp) ; <="
" 61: 41ff6500 (jmp (mem64+ r13 #x0))"
" 65: e9d61674fa (jmp (+ rip #x-58be92a)) ; #<code doargerr> ; <="
" 6a: 0f1f8000000000 (data)"
"")))
(define safe-clever-extra-wraparound
(lambda (a0)
"/app/compiled/example.rkt:153:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85ed000000 (jnz (+ rip #xed)) ; => f7"
" a: 41f6c007 (test r8b #x7)"
" e: 0f85dc000000 (jnz (+ rip #xdc)) ; => f0"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8ed2000000 (jle (+ rip #xd2)) ; => f0"
" 1e: 48c7c608000000 (mov rsi #x8)"
" 25: 4831d2 (xor rdx rdx)"
" 28: 4c89c1 (mov rcx r8)"
" 2b: 4889f5 (mov rbp rsi) ; <="
" 2e: 4989d0 (mov r8 rdx)"
" 31: 4883f900 (cmp rcx #x0)"
" 35: 0f84ae000000 (jz (+ rip #xae)) ; => e9"
" 3b: f6c107 (test cl #x7)"
" 3e: 0f8593000000 (jnz (+ rip #x93)) ; => d7"
" 44: 4883f908 (cmp rcx #x8)"
" 48: 0f8485000000 (jz (+ rip #x85)) ; => d3"
" 4e: 4889ea (mov rdx rbp)"
" 51: 4c09c2 (or rdx r8)"
" 54: f6c207 (test dl #x7)"
" 57: 756b (jnz (+ rip #x6b)) ; => c4"
" 59: 4a8d740500 (lea rsi (mem+ rbp #x0 (* r8 #x1)))"
" 5e: 4883fe00 (cmp rsi #x0)"
" 62: 7e59 (jle (+ rip #x59)) ; => bd"
" 64: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 69: 7409 (jz (+ rip #x9)) ; => 74"
" 6b: 4889ea (mov rdx rbp) ; <="
" 6e: 4883c1f8 (add rcx #xfffffffffffffff8)"
" 72: ebb7 (jmp (+ rip #x-49)) ; => 2b"
" 74: 49894d08 (mov (mem64+ r13 #x8) rcx) ; <="
" 78: 49896d10 (mov (mem64+ r13 #x10) rbp)"
" 7c: 49897518 (mov (mem64+ r13 #x18) rsi)"
" 80: 4983c520 (add r13 #x20)"
" 84: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => ab"
" 8b: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 8f: e9ac5376fa (jmp (+ rip #x-589ac54)) ; #<code event>"
" 94: 0f1f8000000000dc (data)"
" 9c: 0000000000000091 (data)"
" a4: 03000000000000 (data)"
" ab: 4983ed20 (sub r13 #x20) ; <="
" af: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" b3: 498b6d10 (mov rbp (mem64+ r13 #x10))"
" b7: 498b7518 (mov rsi (mem64+ r13 #x18))"
" bb: ebae (jmp (+ rip #x-52)) ; => 6b"
" bd: 4831ed (xor rbp rbp) ; <="
" c0: 41ff6500 (jmp (mem64+ r13 #x0))"
" c4: 4889ef (mov rdi rbp) ; <="
" c7: e9b41275fa (jmp (+ rip #x-58aed4c)) ; #<code fx+/wraparound>"
" cc: 0f1f8000000000 (data)"
" d3: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" d7: 4989c8 (mov r8 rcx) ; <="
" da: 4831ff (xor rdi rdi)"
" dd: e91e1b75fa (jmp (+ rip #x-58ae4e2)) ; #<code fx=>"
" e2: 0f1f8000000000 (data)"
" e9: 4c89c5 (mov rbp r8) ; <="
" ec: 41ff6500 (jmp (mem64+ r13 #x0))"
" f0: 4831ed (xor rbp rbp) ; <="
" f3: 41ff6500 (jmp (mem64+ r13 #x0))"
" f7: e9841574fa (jmp (+ rip #x-58bea7c)) ; #<code doargerr> ; <="
" fc: 0f1f8000000000 (data)"
"")))
(define safe-clever
(lambda (a0)
"/app/compiled/example.rkt:132:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f8510010000 (jnz (+ rip #x110)) ; => 11a"
" a: 41f6c007 (test r8b #x7)"
" e: 0f85ff000000 (jnz (+ rip #xff)) ; => 113"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8ef5000000 (jle (+ rip #xf5)) ; => 113"
" 1e: 48c7c608000000 (mov rsi #x8)"
" 25: 4831d2 (xor rdx rdx)"
" 28: 4889f5 (mov rbp rsi) ; <="
" 2b: 4889d1 (mov rcx rdx)"
" 2e: 4983f800 (cmp r8 #x0)"
" 32: 0f84d4000000 (jz (+ rip #xd4)) ; => 10c"
" 38: 41f6c007 (test r8b #x7)"
" 3c: 0f85bb000000 (jnz (+ rip #xbb)) ; => fd"
" 42: 4983f808 (cmp r8 #x8)"
" 46: 0f84ad000000 (jz (+ rip #xad)) ; => f9"
" 4c: 4889ea (mov rdx rbp)"
" 4f: 4809ca (or rdx rcx)"
" 52: f6c207 (test dl #x7)"
" 55: 0f858c000000 (jnz (+ rip #x8c)) ; => e7"
" 5b: 488d740d00 (lea rsi (mem+ rbp #x0 (* rcx #x1)))"
" 60: 4883fe00 (cmp rsi #x0)"
" 64: 7e7a (jle (+ rip #x7a)) ; => e0"
" 66: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 6b: 742a (jz (+ rip #x2a)) ; => 97"
" 6d: 4889ea (mov rdx rbp) ; <="
" 70: 41f6c007 (test r8b #x7)"
" 74: 750e (jnz (+ rip #xe)) ; => 84"
" 76: 4c89c1 (mov rcx r8)"
" 79: 4883e908 (sub rcx #x8)"
" 7d: 7005 (jo (+ rip #x5)) ; => 84"
" 7f: 4989c8 (mov r8 rcx)"
" 82: eba4 (jmp (+ rip #x-5c)) ; => 28"
" 84: 48c7c708000000 (mov rdi #x8) ; <="
" 8b: e960c674fa (jmp (+ rip #x-58b39a0)) ; #<code fx->"
" 90: 0f1f8000000000 (data)"
" 97: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 9b: 49896d10 (mov (mem64+ r13 #x10) rbp)"
" 9f: 49897518 (mov (mem64+ r13 #x18) rsi)"
" a3: 4983c520 (add r13 #x20)"
" a7: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => ce"
" ae: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b2: e9d90d76fa (jmp (+ rip #x-589f227)) ; #<code event>"
" b7: 0f1f8000000000ff (data)"
" bf: 0000000000000091 (data)"
" c7: 03000000000000 (data)"
" ce: 4983ed20 (sub r13 #x20) ; <="
" d2: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" d6: 498b6d10 (mov rbp (mem64+ r13 #x10))"
" da: 498b7518 (mov rsi (mem64+ r13 #x18))"
" de: eb8d (jmp (+ rip #x-73)) ; => 6d"
" e0: 4831ed (xor rbp rbp) ; <="
" e3: 41ff6500 (jmp (mem64+ r13 #x0))"
" e7: 4989c8 (mov r8 rcx) ; <="
" ea: 4889ef (mov rdi rbp)"
" ed: e9decc74fa (jmp (+ rip #x-58b3322)) ; #<code fx+/wraparound>"
" f2: 0f1f8000000000 (data)"
" f9: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" fd: 4831ff (xor rdi rdi) ; <="
" 100: e94bd574fa (jmp (+ rip #x-58b2ab5)) ; #<code fx=>"
" 105: 0f1f8000000000 (data)"
" 10c: 4889cd (mov rbp rcx) ; <="
" 10f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 113: 4831ed (xor rbp rbp) ; <="
" 116: 41ff6500 (jmp (mem64+ r13 #x0))"
" 11a: e9b1cf73fa (jmp (+ rip #x-58c304f)) ; #<code doargerr> ; <="
" 11f: 0f1f8000000000 (data)"
"")))
(define unsafe-clever
(lambda (a0)
"/app/compiled/example.rkt:111:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85aa000000 (jnz (+ rip #xaa)) ; => b4"
" a: 41f6c007 (test r8b #x7)"
" e: 0f8599000000 (jnz (+ rip #x99)) ; => ad"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8e8f000000 (jle (+ rip #x8f)) ; => ad"
" 1e: 48c7c208000000 (mov rdx #x8)"
" 25: 4831c9 (xor rcx rcx)"
" 28: 4889d5 (mov rbp rdx) ; <="
" 2b: 4983f800 (cmp r8 #x0)"
" 2f: 7475 (jz (+ rip #x75)) ; => a6"
" 31: 4983f808 (cmp r8 #x8)"
" 35: 746b (jz (+ rip #x6b)) ; => a2"
" 37: 488d540d00 (lea rdx (mem+ rbp #x0 (* rcx #x1)))"
" 3c: 4883fa00 (cmp rdx #x0)"
" 40: 7e59 (jle (+ rip #x59)) ; => 9b"
" 42: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 47: 7409 (jz (+ rip #x9)) ; => 52"
" 49: 4889e9 (mov rcx rbp) ; <="
" 4c: 4983c0f8 (add r8 #xfffffffffffffff8)"
" 50: ebd6 (jmp (+ rip #x-2a)) ; => 28"
" 52: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 56: 49896d10 (mov (mem64+ r13 #x10) rbp)"
" 5a: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 5e: 4983c520 (add r13 #x20)"
" 62: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 89"
" 69: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 6d: e9ae0c76fa (jmp (+ rip #x-589f352)) ; #<code event>"
" 72: 0f1f8000000000ba (data)"
" 7a: 0000000000000091 (data)"
" 82: 03000000000000 (data)"
" 89: 4983ed20 (sub r13 #x20) ; <="
" 8d: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 91: 498b6d10 (mov rbp (mem64+ r13 #x10))"
" 95: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 99: ebae (jmp (+ rip #x-52)) ; => 49"
" 9b: 4831ed (xor rbp rbp) ; <="
" 9e: 41ff6500 (jmp (mem64+ r13 #x0))"
" a2: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" a6: 4889cd (mov rbp rcx) ; <="
" a9: 41ff6500 (jmp (mem64+ r13 #x0))"
" ad: 4831ed (xor rbp rbp) ; <="
" b0: 41ff6500 (jmp (mem64+ r13 #x0))"
" b4: e9a7ce73fa (jmp (+ rip #x-58c3159)) ; #<code doargerr> ; <="
" b9: 0f1f8000000000 (data)"
"")))
(define safe-generic-unguarded
(lambda (a0)
"/app/compiled/example.rkt:73:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85b3020000 (jnz (+ rip #x2b3)) ; => 2bd"
" a: 48c7c108000000 (mov rcx #x8)"
" 11: 4831f6 (xor rsi rsi)"
" 14: 4889cd (mov rbp rcx) ; <="
" 17: 4889f1 (mov rcx rsi)"
" 1a: 4983f800 (cmp r8 #x0)"
" 1e: 0f8492020000 (jz (+ rip #x292)) ; => 2b6"
" 24: 41f6c007 (test r8b #x7)"
" 28: 0f85e3010000 (jnz (+ rip #x1e3)) ; => 211"
" 2e: 41f6c007 (test r8b #x7) ; <="
" 32: 0f852b010000 (jnz (+ rip #x12b)) ; => 163"
" 38: 4983f808 (cmp r8 #x8)"
" 3c: 0f841d010000 (jz (+ rip #x11d)) ; => 15f"
" 42: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 47: 0f84c6000000 (jz (+ rip #xc6)) ; => 113"
" 4d: 41f6c007 (test r8b #x7) ; <="
" 51: 7572 (jnz (+ rip #x72)) ; => c5"
" 53: 4c89c2 (mov rdx r8)"
" 56: 4883ea08 (sub rdx #x8)"
" 5a: 7069 (jo (+ rip #x69)) ; => c5"
" 5c: 4889ee (mov rsi rbp) ; <="
" 5f: 4809ce (or rsi rcx)"
" 62: 40f6c607 (test sil #x7)"
" 66: 7513 (jnz (+ rip #x13)) ; => 7b"
" 68: 4889ce (mov rsi rcx)"
" 6b: 4801ee (add rsi rbp)"
" 6e: 700b (jo (+ rip #xb)) ; => 7b"
" 70: 4889f1 (mov rcx rsi)"
" 73: 4889ee (mov rsi rbp) ; <="
" 76: 4989d0 (mov r8 rdx)"
" 79: eb99 (jmp (+ rip #x-67)) ; => 14"
" 7b: 4989c8 (mov r8 rcx) ; <="
" 7e: 4889ef (mov rdi rbp)"
" 81: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 85: 49895508 (mov (mem64+ r13 #x8) rdx)"
" 89: 4983c520 (add r13 #x20)"
" 8d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b4"
" 94: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 98: e9d36475fa (jmp (+ rip #x-58a9b2d)) ; #<code +>"
" 9d: 0f1f8000000000e5 (data)"
" a5: 0000000000000093 (data)"
" ad: 02000000000000 (data)"
" b4: 4983ed20 (sub r13 #x20) ; <="
" b8: 4889e9 (mov rcx rbp)"
" bb: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" bf: 498b5508 (mov rdx (mem64+ r13 #x8))"
" c3: ebae (jmp (+ rip #x-52)) ; => 73"
" c5: 48c7c708000000 (mov rdi #x8) ; <="
" cc: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" d0: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" d4: 4983c520 (add r13 #x20)"
" d8: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => ff"
" df: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" e3: e9c87275fa (jmp (+ rip #x-58a8d38)) ; #<code ->"
" e8: 0f1f800000000030 (data)"
" f0: 0100000000000013 (data)"
" f8: 03000000000000 (data)"
" ff: 4983ed20 (sub r13 #x20) ; <="
" 103: 4889ea (mov rdx rbp)"
" 106: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 10a: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 10e: e949ffffff (jmp (+ rip #x-b7)) ; => 5c"
" 113: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 117: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 11b: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 11f: 4983c520 (add r13 #x20)"
" 123: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 14a"
" 12a: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 12e: e9ed0a76fa (jmp (+ rip #x-589f513)) ; #<code event>"
" 133: 0f1f80000000007b (data)"
" 13b: 0100000000000091 (data)"
" 143: 03000000000000 (data)"
" 14a: 4983ed20 (sub r13 #x20) ; <="
" 14e: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 152: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 156: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 15a: e9eefeffff (jmp (+ rip #x-112)) ; => 4d"
" 15f: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" 163: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 168: 7547 (jnz (+ rip #x47)) ; => 1b1"
" 16a: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 16e: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 172: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 176: 4983c520 (add r13 #x20)"
" 17a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1a1"
" 181: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 185: e9960a76fa (jmp (+ rip #x-589f56a)) ; #<code event>"
" 18a: 0f1f8000000000d2 (data)"
" 192: 0100000000000091 (data)"
" 19a: 03000000000000 (data)"
" 1a1: 4983ed20 (sub r13 #x20) ; <="
" 1a5: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 1a9: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 1ad: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 1b1: 48c7c708000000 (mov rdi #x8) ; <="
" 1b8: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 1bc: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 1c0: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 1c4: 4983c520 (add r13 #x20)"
" 1c8: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1ef"
" 1cf: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1d3: e9e84f75fa (jmp (+ rip #x-58ab018)) ; #<code =>"
" 1d8: 0f1f800000000020 (data)"
" 1e0: 0200000000000093 (data)"
" 1e8: 03000000000000 (data)"
" 1ef: 4983ed20 (sub r13 #x20) ; <="
" 1f3: 4889ea (mov rdx rbp)"
" 1f6: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 1fa: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 1fe: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 202: 4883fa06 (cmp rdx #x6)"
" 206: 0f8436feffff (jz (+ rip #x-1ca)) ; => 42"
" 20c: e94effffff (jmp (+ rip #x-b2)) ; => 15f"
" 211: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 216: 7547 (jnz (+ rip #x47)) ; => 25f"
" 218: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 21c: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 220: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 224: 4983c520 (add r13 #x20)"
" 228: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 24f"
" 22f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 233: e9e80976fa (jmp (+ rip #x-589f618)) ; #<code event>"
" 238: 0f1f800000000080 (data)"
" 240: 0200000000000091 (data)"
" 248: 03000000000000 (data)"
" 24f: 4983ed20 (sub r13 #x20) ; <="
" 253: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 257: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 25b: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 25f: 4831ff (xor rdi rdi) ; <="
" 262: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 266: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 26a: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 26e: 4983c520 (add r13 #x20)"
" 272: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 299"
" 279: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 27d: e93e4f75fa (jmp (+ rip #x-58ab0c2)) ; #<code =>"
" 282: 0f1f8000000000ca (data)"
" 28a: 0200000000000093 (data)"
" 292: 03000000000000 (data)"
" 299: 4983ed20 (sub r13 #x20) ; <="
" 29d: 4889ea (mov rdx rbp)"
" 2a0: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 2a4: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 2a8: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 2ac: 4883fa06 (cmp rdx #x6)"
" 2b0: 0f8478fdffff (jz (+ rip #x-288)) ; => 2e"
" 2b6: 4889cd (mov rbp rcx) ; <="
" 2b9: 41ff6500 (jmp (mem64+ r13 #x0))"
" 2bd: e99ecb73fa (jmp (+ rip #x-58c3462)) ; #<code doargerr> ; <="
" 2c2: 0f1f8000000000 (data)"
"")))
(define safe-generic
(lambda (a0)
"/app/compiled/example.rkt:57:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85ce020000 (jnz (+ rip #x2ce)) ; => 2d8"
" a: 41f6c007 (test r8b #x7)"
" e: 0f85bd020000 (jnz (+ rip #x2bd)) ; => 2d1"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8eb3020000 (jle (+ rip #x2b3)) ; => 2d1"
" 1e: 48c7c108000000 (mov rcx #x8)"
" 25: 4831f6 (xor rsi rsi)"
" 28: 4889cd (mov rbp rcx) ; <="
" 2b: 4889f1 (mov rcx rsi)"
" 2e: 4983f800 (cmp r8 #x0)"
" 32: 0f8492020000 (jz (+ rip #x292)) ; => 2ca"
" 38: 41f6c007 (test r8b #x7)"
" 3c: 0f85e3010000 (jnz (+ rip #x1e3)) ; => 225"
" 42: 41f6c007 (test r8b #x7) ; <="
" 46: 0f852b010000 (jnz (+ rip #x12b)) ; => 177"
" 4c: 4983f808 (cmp r8 #x8)"
" 50: 0f841d010000 (jz (+ rip #x11d)) ; => 173"
" 56: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 5b: 0f84c6000000 (jz (+ rip #xc6)) ; => 127"
" 61: 41f6c007 (test r8b #x7) ; <="
" 65: 7572 (jnz (+ rip #x72)) ; => d9"
" 67: 4c89c2 (mov rdx r8)"
" 6a: 4883ea08 (sub rdx #x8)"
" 6e: 7069 (jo (+ rip #x69)) ; => d9"
" 70: 4889ee (mov rsi rbp) ; <="
" 73: 4809ce (or rsi rcx)"
" 76: 40f6c607 (test sil #x7)"
" 7a: 7513 (jnz (+ rip #x13)) ; => 8f"
" 7c: 4889ce (mov rsi rcx)"
" 7f: 4801ee (add rsi rbp)"
" 82: 700b (jo (+ rip #xb)) ; => 8f"
" 84: 4889f1 (mov rcx rsi)"
" 87: 4889ee (mov rsi rbp) ; <="
" 8a: 4989d0 (mov r8 rdx)"
" 8d: eb99 (jmp (+ rip #x-67)) ; => 28"
" 8f: 4989c8 (mov r8 rcx) ; <="
" 92: 4889ef (mov rdi rbp)"
" 95: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 99: 49895508 (mov (mem64+ r13 #x8) rdx)"
" 9d: 4983c520 (add r13 #x20)"
" a1: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => c8"
" a8: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" ac: e9af6175fa (jmp (+ rip #x-58a9e51)) ; #<code +>"
" b1: 0f1f8000000000f9 (data)"
" b9: 0000000000000093 (data)"
" c1: 02000000000000 (data)"
" c8: 4983ed20 (sub r13 #x20) ; <="
" cc: 4889e9 (mov rcx rbp)"
" cf: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" d3: 498b5508 (mov rdx (mem64+ r13 #x8))"
" d7: ebae (jmp (+ rip #x-52)) ; => 87"
" d9: 48c7c708000000 (mov rdi #x8) ; <="
" e0: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" e4: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" e8: 4983c520 (add r13 #x20)"
" ec: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 113"
" f3: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" f7: e9a46f75fa (jmp (+ rip #x-58a905c)) ; #<code ->"
" fc: 0f1f800000000044 (data)"
" 104: 0100000000000013 (data)"
" 10c: 03000000000000 (data)"
" 113: 4983ed20 (sub r13 #x20) ; <="
" 117: 4889ea (mov rdx rbp)"
" 11a: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 11e: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 122: e949ffffff (jmp (+ rip #x-b7)) ; => 70"
" 127: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 12b: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 12f: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 133: 4983c520 (add r13 #x20)"
" 137: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 15e"
" 13e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 142: e9c90776fa (jmp (+ rip #x-589f837)) ; #<code event>"
" 147: 0f1f80000000008f (data)"
" 14f: 0100000000000091 (data)"
" 157: 03000000000000 (data)"
" 15e: 4983ed20 (sub r13 #x20) ; <="
" 162: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 166: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 16a: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 16e: e9eefeffff (jmp (+ rip #x-112)) ; => 61"
" 173: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" 177: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 17c: 7547 (jnz (+ rip #x47)) ; => 1c5"
" 17e: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 182: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 186: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 18a: 4983c520 (add r13 #x20)"
" 18e: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1b5"
" 195: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 199: e9720776fa (jmp (+ rip #x-589f88e)) ; #<code event>"
" 19e: 0f1f8000000000e6 (data)"
" 1a6: 0100000000000091 (data)"
" 1ae: 03000000000000 (data)"
" 1b5: 4983ed20 (sub r13 #x20) ; <="
" 1b9: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 1bd: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 1c1: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 1c5: 48c7c708000000 (mov rdi #x8) ; <="
" 1cc: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 1d0: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 1d4: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 1d8: 4983c520 (add r13 #x20)"
" 1dc: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 203"
" 1e3: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1e7: e9c44c75fa (jmp (+ rip #x-58ab33c)) ; #<code =>"
" 1ec: 0f1f800000000034 (data)"
" 1f4: 0200000000000093 (data)"
" 1fc: 03000000000000 (data)"
" 203: 4983ed20 (sub r13 #x20) ; <="
" 207: 4889ea (mov rdx rbp)"
" 20a: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 20e: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 212: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 216: 4883fa06 (cmp rdx #x6)"
" 21a: 0f8436feffff (jz (+ rip #x-1ca)) ; => 56"
" 220: e94effffff (jmp (+ rip #x-b2)) ; => 173"
" 225: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 22a: 7547 (jnz (+ rip #x47)) ; => 273"
" 22c: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 230: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 234: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 238: 4983c520 (add r13 #x20)"
" 23c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 263"
" 243: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 247: e9c40676fa (jmp (+ rip #x-589f93c)) ; #<code event>"
" 24c: 0f1f800000000094 (data)"
" 254: 0200000000000091 (data)"
" 25c: 03000000000000 (data)"
" 263: 4983ed20 (sub r13 #x20) ; <="
" 267: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 26b: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 26f: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 273: 4831ff (xor rdi rdi) ; <="
" 276: 4d894508 (mov (mem64+ r13 #x8) r8)"
" 27a: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 27e: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 282: 4983c520 (add r13 #x20)"
" 286: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 2ad"
" 28d: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 291: e91a4c75fa (jmp (+ rip #x-58ab3e6)) ; #<code =>"
" 296: 0f1f8000000000de (data)"
" 29e: 0200000000000093 (data)"
" 2a6: 03000000000000 (data)"
" 2ad: 4983ed20 (sub r13 #x20) ; <="
" 2b1: 4889ea (mov rdx rbp)"
" 2b4: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 2b8: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 2bc: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 2c0: 4883fa06 (cmp rdx #x6)"
" 2c4: 0f8478fdffff (jz (+ rip #x-288)) ; => 42"
" 2ca: 4889cd (mov rbp rcx) ; <="
" 2cd: 41ff6500 (jmp (mem64+ r13 #x0))"
" 2d1: 4831ed (xor rbp rbp) ; <="
" 2d4: 41ff6500 (jmp (mem64+ r13 #x0))"
" 2d8: e973c873fa (jmp (+ rip #x-58c378d)) ; #<code doargerr> ; <="
" 2dd: 0f1f8000000000 (data)"
"")))
(define safe-extra-wraparound
(lambda (a0)
"/app/compiled/example.rkt:41:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85df000000 (jnz (+ rip #xdf)) ; => e9"
" a: 41f6c007 (test r8b #x7)"
" e: 0f85ce000000 (jnz (+ rip #xce)) ; => e2"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8ec4000000 (jle (+ rip #xc4)) ; => e2"
" 1e: 48c7c608000000 (mov rsi #x8)"
" 25: 4831d2 (xor rdx rdx)"
" 28: 4c89c1 (mov rcx r8)"
" 2b: 4889f5 (mov rbp rsi) ; <="
" 2e: 4989d0 (mov r8 rdx)"
" 31: 4883f900 (cmp rcx #x0)"
" 35: 0f84a0000000 (jz (+ rip #xa0)) ; => db"
" 3b: f6c107 (test cl #x7)"
" 3e: 0f8585000000 (jnz (+ rip #x85)) ; => c9"
" 44: 4883f908 (cmp rcx #x8)"
" 48: 747b (jz (+ rip #x7b)) ; => c5"
" 4a: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 4f: 742b (jz (+ rip #x2b)) ; => 7c"
" 51: 488d79f8 (lea rdi (mem+ rcx #x-8)) ; <="
" 55: 4889e9 (mov rcx rbp)"
" 58: 4c09c1 (or rcx r8)"
" 5b: f6c107 (test cl #x7)"
" 5e: 750d (jnz (+ rip #xd)) ; => 6d"
" 60: 4a8d740500 (lea rsi (mem+ rbp #x0 (* r8 #x1)))"
" 65: 4889ea (mov rdx rbp)"
" 68: 4889f9 (mov rcx rdi)"
" 6b: ebbe (jmp (+ rip #x-42)) ; => 2b"
" 6d: 4889ef (mov rdi rbp) ; <="
" 70: e9abc474fa (jmp (+ rip #x-58b3b55)) ; #<code fx+/wraparound>"
" 75: 0f1f8000000000 (data)"
" 7c: 49894d08 (mov (mem64+ r13 #x8) rcx) ; <="
" 80: 4d894510 (mov (mem64+ r13 #x10) r8)"
" 84: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 88: 4983c520 (add r13 #x20)"
" 8c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b3"
" 93: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 97: e9440576fa (jmp (+ rip #x-589fabc)) ; #<code event>"
" 9c: 0f1f8000000000e4 (data)"
" a4: 0000000000000091 (data)"
" ac: 03000000000000 (data)"
" b3: 4983ed20 (sub r13 #x20) ; <="
" b7: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" bb: 4d8b4510 (mov r8 (mem64+ r13 #x10))"
" bf: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" c3: eb8c (jmp (+ rip #x-74)) ; => 51"
" c5: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" c9: 4989c8 (mov r8 rcx) ; <="
" cc: 4831ff (xor rdi rdi)"
" cf: e9cccc74fa (jmp (+ rip #x-58b3334)) ; #<code fx=>"
" d4: 0f1f8000000000 (data)"
" db: 4c89c5 (mov rbp r8) ; <="
" de: 41ff6500 (jmp (mem64+ r13 #x0))"
" e2: 4831ed (xor rbp rbp) ; <="
" e5: 41ff6500 (jmp (mem64+ r13 #x0))"
" e9: e932c773fa (jmp (+ rip #x-58c38ce)) ; #<code doargerr> ; <="
" ee: 0f1f8000000000 (data)"
"")))
(define safe
(lambda (a0)
"/app/compiled/example.rkt:22:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f8500010000 (jnz (+ rip #x100)) ; => 10a"
" a: 41f6c007 (test r8b #x7)"
" e: 0f85ef000000 (jnz (+ rip #xef)) ; => 103"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8ee5000000 (jle (+ rip #xe5)) ; => 103"
" 1e: 48c7c608000000 (mov rsi #x8)"
" 25: 4831c9 (xor rcx rcx)"
" 28: 4889f5 (mov rbp rsi) ; <="
" 2b: 4983f800 (cmp r8 #x0)"
" 2f: 0f84c7000000 (jz (+ rip #xc7)) ; => fc"
" 35: 41f6c007 (test r8b #x7)"
" 39: 0f85ae000000 (jnz (+ rip #xae)) ; => ed"
" 3f: 4983f808 (cmp r8 #x8)"
" 43: 0f84a0000000 (jz (+ rip #xa0)) ; => e9"
" 49: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 4e: 744d (jz (+ rip #x4d)) ; => 9d"
" 50: 41f6c007 (test r8b #x7) ; <="
" 54: 7534 (jnz (+ rip #x34)) ; => 8a"
" 56: 4c89c2 (mov rdx r8)"
" 59: 4883ea08 (sub rdx #x8)"
" 5d: 702b (jo (+ rip #x2b)) ; => 8a"
" 5f: 4889ee (mov rsi rbp)"
" 62: 4809ce (or rsi rcx)"
" 65: 40f6c607 (test sil #x7)"
" 69: 750d (jnz (+ rip #xd)) ; => 78"
" 6b: 488d740d00 (lea rsi (mem+ rbp #x0 (* rcx #x1)))"
" 70: 4889e9 (mov rcx rbp)"
" 73: 4989d0 (mov r8 rdx)"
" 76: ebb0 (jmp (+ rip #x-50)) ; => 28"
" 78: 4989c8 (mov r8 rcx) ; <="
" 7b: 4889ef (mov rdi rbp)"
" 7e: e95dc374fa (jmp (+ rip #x-58b3ca3)) ; #<code fx+/wraparound>"
" 83: 0f1f8000000000 (data)"
" 8a: 48c7c708000000 (mov rdi #x8) ; <="
" 91: e96abc74fa (jmp (+ rip #x-58b4396)) ; #<code fx->"
" 96: 0f1f8000000000 (data)"
" 9d: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" a1: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" a5: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" a9: 4983c520 (add r13 #x20)"
" ad: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => d4"
" b4: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b8: e9e30376fa (jmp (+ rip #x-589fc1d)) ; #<code event>"
" bd: 0f1f800000000005 (data)"
" c5: 0100000000000091 (data)"
" cd: 03000000000000 (data)"
" d4: 4983ed20 (sub r13 #x20) ; <="
" d8: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" dc: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" e0: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" e4: e967ffffff (jmp (+ rip #x-99)) ; => 50"
" e9: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" ed: 4831ff (xor rdi rdi) ; <="
" f0: e96bcb74fa (jmp (+ rip #x-58b3495)) ; #<code fx=>"
" f5: 0f1f8000000000 (data)"
" fc: 4889cd (mov rbp rcx) ; <="
" ff: 41ff6500 (jmp (mem64+ r13 #x0))"
" 103: 4831ed (xor rbp rbp) ; <="
" 106: 41ff6500 (jmp (mem64+ r13 #x0))"
" 10a: e9d1c573fa (jmp (+ rip #x-58c3a2f)) ; #<code doargerr> ; <="
" 10f: 0f1f8000000000 (data)"
"")))
(define unsafe
(lambda (a0)
"/app/compiled/example.rkt:6:1"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f8593000000 (jnz (+ rip #x93)) ; => 9d"
" a: 41f6c007 (test r8b #x7)"
" e: 0f8582000000 (jnz (+ rip #x82)) ; => 96"
" 14: 48c7c208000000 (mov rdx #x8)"
" 1b: 4831c9 (xor rcx rcx)"
" 1e: 4889d5 (mov rbp rdx) ; <="
" 21: 4983f800 (cmp r8 #x0)"
" 25: 7468 (jz (+ rip #x68)) ; => 8f"
" 27: 4983f808 (cmp r8 #x8)"
" 2b: 745e (jz (+ rip #x5e)) ; => 8b"
" 2d: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 32: 740e (jz (+ rip #xe)) ; => 42"
" 34: 488d540d00 (lea rdx (mem+ rbp #x0 (* rcx #x1))) ; <="
" 39: 4889e9 (mov rcx rbp)"
" 3c: 4983c0f8 (add r8 #xfffffffffffffff8)"
" 40: ebdc (jmp (+ rip #x-24)) ; => 1e"
" 42: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 46: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 4a: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 4e: 4983c520 (add r13 #x20)"
" 52: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 79"
" 59: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 5d: e91ef775fa (jmp (+ rip #x-58a08e2)) ; #<code event>"
" 62: 0f1f8000000000aa (data)"
" 6a: 0000000000000091 (data)"
" 72: 03000000000000 (data)"
" 79: 4983ed20 (sub r13 #x20) ; <="
" 7d: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 81: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 85: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 89: eba9 (jmp (+ rip #x-57)) ; => 34"
" 8b: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" 8f: 4889cd (mov rbp rcx) ; <="
" 92: 41ff6500 (jmp (mem64+ r13 #x0))"
" 96: 4831ed (xor rbp rbp) ; <="
" 99: 41ff6500 (jmp (mem64+ r13 #x0))"
" 9d: e91eb973fa (jmp (+ rip #x-58c46e2)) ; #<code doargerr> ; <="
" a2: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd0d (cmp rbp #xd)"
" 4: 0f85e0010000 (jnz (+ rip #x1e0)) ; => 1ea"
" a: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" e: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 12: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 16: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 1a: 4d8b7d30 (mov r15 (mem64+ r13 #x30))"
" 1e: 4d8b5d38 (mov r11 (mem64+ r13 #x38))"
" 22: 4d8b5540 (mov r10 (mem64+ r13 #x40))"
" 26: 498b5d48 (mov rbx (mem64+ r13 #x48))"
" 2a: 498b6d50 (mov rbp (mem64+ r13 #x50))"
" 2e: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 33: 0f8435010000 (jz (+ rip #x135)) ; => 16e"
" 39: 4d8d61ff (lea r12 (mem+ r9 #x-1)) ; <="
" 3d: 4983c160 (add r9 #x60)"
" 41: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 45: 0f8211010000 (jb (+ rip #x111)) ; => 15c"
" 4b: 4c89e7 (mov rdi r12) ; <="
" 4e: 48b84d6e2a4700000000 (mov rax #x472a6e4d) ; #<procedure:unsafe>"
" 58: 48894709 (mov (mem64+ rdi #x9) rax)"
" 5c: 48b80d632a4700000000 (mov rax #x472a630d) ; #<procedure:safe>"
" 66: 48894711 (mov (mem64+ rdi #x11) rax)"
" 6a: 48b8fd622a4700000000 (mov rax #x472a62fd) ; #<procedure:safe-extra-wraparound>"
" 74: 48894719 (mov (mem64+ rdi #x19) rax)"
" 78: 48b8cd5c2a4700000000 (mov rax #x472a5ccd) ; #<procedure:safe-generic>"
" 82: 48894721 (mov (mem64+ rdi #x21) rax)"
" 86: 48b8bd5c2a4700000000 (mov rax #x472a5cbd) ; #<procedure:safe-generic-unguarded>"
" 90: 48894729 (mov (mem64+ rdi #x29) rax)"
" 94: 48b83d4a2a4700000000 (mov rax #x472a4a3d) ; #<procedure:unsafe-clever>"
" 9e: 48894731 (mov (mem64+ rdi #x31) rax)"
" a2: 48b82d4a2a4700000000 (mov rax #x472a4a2d) ; #<procedure:safe-clever>"
" ac: 48894739 (mov (mem64+ rdi #x39) rax)"
" b0: 48b88d402a4700000000 (mov rax #x472a408d) ; #<procedure:safe-clever-extra-wraparound>"
" ba: 48894741 (mov (mem64+ rdi #x41) rax)"
" be: 48b87d402a4700000000 (mov rax #x472a407d) ; #<procedure:safe-non-tail>"
" c8: 48894749 (mov (mem64+ rdi #x49) rax)"
" cc: 48b83d6e2a4700000000 (mov rax #x472a6e3d) ; #<procedure:unsafe-non-tail>"
" d6: 48894751 (mov (mem64+ rdi #x51) rax)"
" da: 48c74701a0000000 (mov (mem64+ rdi #x1) #xa0)"
" e2: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" e6: 4983c160 (add r9 #x60)"
" ea: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" ee: 725d (jb (+ rip #x5d)) ; => 14d"
" f0: 49896c2409 (mov (mem64+ r12 #x9) rbp) ; <="
" f5: 49895c2411 (mov (mem64+ r12 #x11) rbx)"
" fa: 4d89542419 (mov (mem64+ r12 #x19) r10)"
" ff: 4d895c2421 (mov (mem64+ r12 #x21) r11)"
" 104: 4d897c2429 (mov (mem64+ r12 #x29) r15)"
" 109: 4d89442431 (mov (mem64+ r12 #x31) r8)"
" 10e: 4989742439 (mov (mem64+ r12 #x39) rsi)"
" 113: 4989542441 (mov (mem64+ r12 #x41) rdx)"
" 118: 49894c2449 (mov (mem64+ r12 #x49) rcx)"
" 11d: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 121: 49894c2451 (mov (mem64+ r12 #x51) rcx)"
" 126: 49c7442401a0000000 (mov (mem64+ r12 #x1) #xa0)"
" 12f: 4d89e0 (mov r8 r12)"
" 132: 49bcab62484200000000 (mov r12 #x424862ab) ; 'set-consistent-variables!/define"
" 13c: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 141: 48c7c502000000 (mov rbp #x2)"
" 148: 41ff64240d (jmp (mem64+ r12 #xd))"
" 14d: 49e8fd3c72fa (call (+ rip #x-58dc303)) ; #<code get-room> ; <="
" 153: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 15a: eb94 (jmp (+ rip #x-6c)) ; => f0"
" 15c: 49e8ee3c72fa (call (+ rip #x-58dc312)) ; #<code get-room> ; <="
" 162: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 169: e9ddfeffff (jmp (+ rip #x-123)) ; => 4b"
" 16e: 49894d10 (mov (mem64+ r13 #x10) rcx) ; <="
" 172: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 176: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 17a: 4d894528 (mov (mem64+ r13 #x28) r8)"
" 17e: 4d897d30 (mov (mem64+ r13 #x30) r15)"
" 182: 4d895d38 (mov (mem64+ r13 #x38) r11)"
" 186: 4d895540 (mov (mem64+ r13 #x40) r10)"
" 18a: 49895d48 (mov (mem64+ r13 #x48) rbx)"
" 18e: 49896d50 (mov (mem64+ r13 #x50) rbp)"
" 192: 4983c558 (add r13 #x58)"
" 196: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1bd"
" 19d: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1a1: e9da8874fa (jmp (+ rip #x-58b7726)) ; #<code event>"
" 1a6: 0f1f8000000000ee (data)"
" 1ae: 01000000000000ad (data)"
" 1b6: ff010000000000 (data)"
" 1bd: 4983ed58 (sub r13 #x58) ; <="
" 1c1: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 1c5: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 1c9: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 1cd: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 1d1: 4d8b7d30 (mov r15 (mem64+ r13 #x30))"
" 1d5: 4d8b5d38 (mov r11 (mem64+ r13 #x38))"
" 1d9: 4d8b5540 (mov r10 (mem64+ r13 #x40))"
" 1dd: 498b5d48 (mov rbx (mem64+ r13 #x48))"
" 1e1: 498b6d50 (mov rbp (mem64+ r13 #x50))"
" 1e5: e94ffeffff (jmp (+ rip #x-1b1)) ; => 39"
" 1ea: e9d14a72fa (jmp (+ rip #x-58db52f)) ; #<code doargerr> ; <="
" 1ef: 0f1f8000000000 (data)"
"")
(module (example typed-again) ....
(require (lib "typed/racket/base.rkt")
(lib "typed/racket/unsafe.rkt")
(lib "racket/unsafe/ops.rkt")
(lib "typed/racket/base.rkt")
(lib "typed/racket/unsafe.rkt")
(lib "racket/unsafe/ops.rkt")
(for-syntax
(lib "typed-racket/utils/redirect-contract.rkt")
(submod "." #%contract-defs-reference)))
(provide)
(define typed-abs
(lambda (a0)
"/app/compiled/example.rkt:216:3"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85a6000000 (jnz (+ rip #xa6)) ; => b0"
" a: 41f6c007 (test r8b #x7)"
" e: 0f8595000000 (jnz (+ rip #x95)) ; => a9"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8e8b000000 (jle (+ rip #x8b)) ; => a9"
" 1e: 48c7c208000000 (mov rdx #x8)"
" 25: 4831c9 (xor rcx rcx)"
" 28: 4889d5 (mov rbp rdx) ; <="
" 2b: 4983f800 (cmp r8 #x0)"
" 2f: 7471 (jz (+ rip #x71)) ; => a2"
" 31: 4983f808 (cmp r8 #x8)"
" 35: 7467 (jz (+ rip #x67)) ; => 9e"
" 37: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 3c: 7417 (jz (+ rip #x17)) ; => 55"
" 3e: 488d540d00 (lea rdx (mem+ rbp #x0 (* rcx #x1))) ; <="
" 43: 4883fa00 (cmp rdx #x0)"
" 47: 7d03 (jnl (+ rip #x3)) ; => 4c"
" 49: 48f7da (neg rdx)"
" 4c: 4889e9 (mov rcx rbp) ; <="
" 4f: 4983c0f8 (add r8 #xfffffffffffffff8)"
" 53: ebd3 (jmp (+ rip #x-2d)) ; => 28"
" 55: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 59: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 5d: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 61: 4983c520 (add r13 #x20)"
" 65: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 8c"
" 6c: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 70: e93bf585f8 (jmp (+ rip #x-77a0ac5)) ; #<code event>"
" 75: 0f1f8000000000bd (data)"
" 7d: 0000000000000091 (data)"
" 85: 03000000000000 (data)"
" 8c: 4983ed20 (sub r13 #x20) ; <="
" 90: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 94: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 98: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" 9c: eba0 (jmp (+ rip #x-60)) ; => 3e"
" 9e: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" a2: 4889cd (mov rbp rcx) ; <="
" a5: 41ff6500 (jmp (mem64+ r13 #x0))"
" a9: 4831ed (xor rbp rbp) ; <="
" ac: 41ff6500 (jmp (mem64+ r13 #x0))"
" b0: e93bb783f8 (jmp (+ rip #x-77c48c5)) ; #<code doargerr> ; <="
" b5: 0f1f8000000000 (data)"
"")))
(define typed-max
(lambda (a0)
"/app/compiled/example.rkt:200:3"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85ab000000 (jnz (+ rip #xab)) ; => b5"
" a: 41f6c007 (test r8b #x7)"
" e: 0f859a000000 (jnz (+ rip #x9a)) ; => ae"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8e90000000 (jle (+ rip #x90)) ; => ae"
" 1e: 48c7c208000000 (mov rdx #x8)"
" 25: 4831c9 (xor rcx rcx)"
" 28: 4889d5 (mov rbp rdx) ; <="
" 2b: 4983f800 (cmp r8 #x0)"
" 2f: 7476 (jz (+ rip #x76)) ; => a7"
" 31: 4983f808 (cmp r8 #x8)"
" 35: 746c (jz (+ rip #x6c)) ; => a3"
" 37: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 3c: 741c (jz (+ rip #x1c)) ; => 5a"
" 3e: 4801e9 (add rcx rbp) ; <="
" 41: 4883f908 (cmp rcx #x8)"
" 45: 7d07 (jnl (+ rip #x7)) ; => 4e"
" 47: 48c7c108000000 (mov rcx #x8)"
" 4e: 4889ca (mov rdx rcx) ; <="
" 51: 4889e9 (mov rcx rbp)"
" 54: 4983c0f8 (add r8 #xfffffffffffffff8)"
" 58: ebce (jmp (+ rip #x-32)) ; => 28"
" 5a: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 5e: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" 62: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 66: 4983c520 (add r13 #x20)"
" 6a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 91"
" 71: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 75: e9863e7df8 (jmp (+ rip #x-782c17a)) ; #<code event>"
" 7a: 0f1f8000000000c2 (data)"
" 82: 0000000000000091 (data)"
" 8a: 03000000000000 (data)"
" 91: 4983ed20 (sub r13 #x20) ; <="
" 95: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 99: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 9d: 498b6d18 (mov rbp (mem64+ r13 #x18))"
" a1: eb9b (jmp (+ rip #x-65)) ; => 3e"
" a3: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" a7: 4889cd (mov rbp rcx) ; <="
" aa: 41ff6500 (jmp (mem64+ r13 #x0))"
" ae: 4831ed (xor rbp rbp) ; <="
" b1: 41ff6500 (jmp (mem64+ r13 #x0))"
" b5: e986007bf8 (jmp (+ rip #x-784ff7a)) ; #<code doargerr> ; <="
" ba: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8484000000 (jz (+ rip #x84)) ; => 8f"
" b: 4883fd00 (cmp rbp #x0)"
" f: 7572 (jnz (+ rip #x72)) ; => 83"
" 11: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 15: 765e (jbe (+ rip #x5e)) ; => 75"
" 17: 4d8b470b (mov r8 (mem64+ r15 #xb)) ; <="
" 1b: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1f: 4983c510 (add r13 #x10)"
" 23: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 27: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 4d"
" 2e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 32: 48c7c501000000 (mov rbp #x1)"
" 39: 41ff6703 (jmp (mem64+ r15 #x3))"
" 3d: 7e00000000000000 (data)"
" 45: 8b00000000000000 (data)"
" 4d: 4983ed10 (sub r13 #x10) ; <="
" 51: 4d8b7d08 (mov r15 (mem64+ r13 #x8))"
" 55: 4989e8 (mov r8 rbp)"
" 58: 48c7c726000000 (mov rdi #x26)"
" 5f: 48c7c606000000 (mov rsi #x6)"
" 66: 4d8b7f1b (mov r15 (mem64+ r15 #x1b))"
" 6a: 48c7c503000000 (mov rbp #x3)"
" 71: 41ff6703 (jmp (mem64+ r15 #x3))"
" 75: e846f67af8 (call (+ rip #x-78509ba)) ; #<code dooverflow> ; <="
" 7a: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 81: eb94 (jmp (+ rip #x-6c)) ; => 17"
" 83: e9a8ff7af8 (jmp (+ rip #x-7850058)) ; #<code doargerr> ; <="
" 88: 0f1f8000000000 (data)"
" 8f: e9cc237bf8 (jmp (+ rip #x-784dc34)) ; #<code event-detour> ; <="
" 94: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd0b (cmp rbp #xb)"
" 4: 0f857f020000 (jnz (+ rip #x27f)) ; => 289"
" a: 4c89c1 (mov rcx r8)"
" d: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 11: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 15: 498b5538 (mov rdx (mem64+ r13 #x38))"
" 19: 498b7540 (mov rsi (mem64+ r13 #x40))"
" 1d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 21: 0f8651020000 (jbe (+ rip #x251)) ; => 278"
" 27: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 2c: 0f84ea010000 (jz (+ rip #x1ea)) ; => 21c"
" 32: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 36: 4983c120 (add r9 #x20)"
" 3a: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 3e: 0f82c6010000 (jb (+ rip #x1c6)) ; => 20a"
" 44: 4d89e0 (mov r8 r12) ; <="
" 47: 49bb5019dc4700000000 (mov r11 #x47dc1950) ; #<code>"
" 51: 4d895803 (mov (mem64+ r8 #x3) r11)"
" 55: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 59: 4d897813 (mov (mem64+ r8 #x13) r15)"
" 5d: 4989781b (mov (mem64+ r8 #x1b) rdi)"
" 61: 49897548 (mov (mem64+ r13 #x48) rsi)"
" 65: 48bf19d8cf4600000000 (mov rdi #x46cfd819) ; '(blame5.1)"
" 6f: 48be09d8cf4600000000 (mov rsi #x46cfd809) ; '(constant)"
" 79: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 7d: 4983c540 (add r13 #x40)"
" 81: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 8b: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 90: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b7"
" 97: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 9b: 48c7c504000000 (mov rbp #x4)"
" a2: 41ff64240d (jmp (mem64+ r12 #xd))"
" a7: e800000000000000 (data)"
" af: 213c000000000000 (data)"
" b7: 4983ed40 (sub r13 #x40) ; <="
" bb: 498b5538 (mov rdx (mem64+ r13 #x38))"
" bf: 4989d0 (mov r8 rdx)"
" c2: 48b90039094000000000 (mov rcx #x40093900) ; 'fxabs"
" cc: 488b39 (mov rdi (mem64+ rcx))"
" cf: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" d9: 4983c538 (add r13 #x38)"
" dd: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" e7: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" ec: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 113"
" f3: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" f7: 48c7c503000000 (mov rbp #x3)"
" fe: 41ff64240d (jmp (mem64+ r12 #xd))"
" 103: 4401000000000000 (data)"
" 10b: 1d1c000000000000 (data)"
" 113: 4983ed38 (sub r13 #x38) ; <="
" 117: 4d8b4530 (mov r8 (mem64+ r13 #x30))"
" 11b: 48b980eb054000000000 (mov rcx #x4005eb80) ; 'fx+/wraparound"
" 125: 488b39 (mov rdi (mem64+ rcx))"
" 128: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" 132: 4983c530 (add r13 #x30)"
" 136: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 140: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 145: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 16c"
" 14c: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 150: 48c7c503000000 (mov rbp #x3)"
" 157: 41ff64240d (jmp (mem64+ r12 #xd))"
" 15c: 9d01000000000000 (data)"
" 164: 190c000000000000 (data)"
" 16c: 4983ed30 (sub r13 #x30) ; <="
" 170: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 174: 4983c120 (add r9 #x20)"
" 178: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 17c: 727a (jb (+ rip #x7a)) ; => 1f8"
" 17e: 4c89e7 (mov rdi r12) ; <="
" 181: 48b9adabbf4600000000 (mov rcx #x46bfabad) ; #<procedure:typed-max>"
" 18b: 48894f09 (mov (mem64+ rdi #x9) rcx)"
" 18f: 48b9bdabbf4600000000 (mov rcx #x46bfabbd) ; #<procedure:typed-abs>"
" 199: 48894f11 (mov (mem64+ rdi #x11) rcx)"
" 19d: 48c7470120000000 (mov (mem64+ rdi #x1) #x20)"
" 1a5: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 1a9: 4983c120 (add r9 #x20)"
" 1ad: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 1b1: 7236 (jb (+ rip #x36)) ; => 1e9"
" 1b3: 4d89e0 (mov r8 r12) ; <="
" 1b6: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 1ba: 49894809 (mov (mem64+ r8 #x9) rcx)"
" 1be: 498b4d20 (mov rcx (mem64+ r13 #x20))"
" 1c2: 49894811 (mov (mem64+ r8 #x11) rcx)"
" 1c6: 49c7400120000000 (mov (mem64+ r8 #x1) #x20)"
" 1ce: 49bcab62484200000000 (mov r12 #x424862ab) ; 'set-consistent-variables!/define"
" 1d8: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 1dd: 48c7c502000000 (mov rbp #x2)"
" 1e4: 41ff64240d (jmp (mem64+ r12 #xd))"
" 1e9: 49e8f1ed7af8 (call (+ rip #x-785120f)) ; #<code get-room> ; <="
" 1ef: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1f6: ebbb (jmp (+ rip #x-45)) ; => 1b3"
" 1f8: 49e8e2ed7af8 (call (+ rip #x-785121e)) ; #<code get-room> ; <="
" 1fe: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 205: e974ffffff (jmp (+ rip #x-8c)) ; => 17e"
" 20a: 49e8d0ed7af8 (call (+ rip #x-7851230)) ; #<code get-room> ; <="
" 210: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 217: e928feffff (jmp (+ rip #x-1d8)) ; => 44"
" 21c: 49894d18 (mov (mem64+ r13 #x18) rcx) ; <="
" 220: 49897d08 (mov (mem64+ r13 #x8) rdi)"
" 224: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 228: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 22c: 49897540 (mov (mem64+ r13 #x40) rsi)"
" 230: 4983c548 (add r13 #x48)"
" 234: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 25b"
" 23b: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 23f: e98c347df8 (jmp (+ rip #x-782cb74)) ; #<code event>"
" 244: 0f1f80000000008c (data)"
" 24c: 02000000000000a5 (data)"
" 254: 7f000000000000 (data)"
" 25b: 4983ed48 (sub r13 #x48) ; <="
" 25f: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 263: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 267: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 26b: 498b5538 (mov rdx (mem64+ r13 #x38))"
" 26f: 498b7540 (mov rsi (mem64+ r13 #x40))"
" 273: e9bafdffff (jmp (+ rip #x-246)) ; => 32"
" 278: e863f27af8 (call (+ rip #x-7850d9d)) ; #<code dooverflow> ; <="
" 27d: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 284: e99efdffff (jmp (+ rip #x-262)) ; => 27"
" 289: e9c2fb7af8 (jmp (+ rip #x-785043e)) ; #<code doargerr> ; <="
" 28e: 0f1f8000000000 (data)"
"")
(begin-for-syntax
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f841b020000 (jz (+ rip #x21b)) ; => 226"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8505020000 (jnz (+ rip #x205)) ; => 21a"
" 15: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 19: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1d: 0f86e6010000 (jbe (+ rip #x1e6)) ; => 209"
" 23: 49c7c010000000 (mov r8 #x10) ; <="
" 2a: 4983c510 (add r13 #x10)"
" 2e: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 32: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" 36: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 5c"
" 3d: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 41: 48c7c501000000 (mov rbp #x1)"
" 48: 41ff6703 (jmp (mem64+ r15 #x3))"
" 4c: 8d00000000000000 (data)"
" 54: 8b00000000000000 (data)"
" 5c: 4983ed10 (sub r13 #x10) ; <="
" 60: 4989e8 (mov r8 rbp)"
" 63: 48bf6b3b4f4200000000 (mov rdi #x424f3b6b) ; 'not-free-identifier=?"
" 6d: 48c7c60e000000 (mov rsi #xe)"
" 74: 4983c510 (add r13 #x10)"
" 78: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 7c: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 80: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => a6"
" 87: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 8b: 48c7c503000000 (mov rbp #x3)"
" 92: 41ff6703 (jmp (mem64+ r15 #x3))"
" 96: d700000000000000 (data)"
" 9e: 8b00000000000000 (data)"
" a6: 4983ed10 (sub r13 #x10) ; <="
" aa: 4889e9 (mov rcx rbp)"
" ad: 49c7c018000000 (mov r8 #x18)"
" b4: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" b8: 4983c518 (add r13 #x18)"
" bc: 498b4df0 (mov rcx (mem64+ r13 #x-10))"
" c0: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" c4: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => ea"
" cb: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" cf: 48c7c501000000 (mov rbp #x1)"
" d6: 41ff6703 (jmp (mem64+ r15 #x3))"
" da: 1b01000000000000 (data)"
" e2: 8f01000000000000 (data)"
" ea: 4983ed18 (sub r13 #x18) ; <="
" ee: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" f2: 4889ee (mov rsi rbp)"
" f5: 4989c8 (mov r8 rcx)"
" f8: 48bfdbafa84700000000 (mov rdi #x47a8afdb) ; 'original-name"
" 102: 4983c510 (add r13 #x10)"
" 106: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 10a: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 10e: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 134"
" 115: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 119: 48c7c503000000 (mov rbp #x3)"
" 120: 41ff6703 (jmp (mem64+ r15 #x3))"
" 124: 6501000000000000 (data)"
" 12c: 8b00000000000000 (data)"
" 134: 4983ed10 (sub r13 #x10) ; <="
" 138: 4989e8 (mov r8 rbp)"
" 13b: 48bfcbc21b4600000000 (mov rdi #x461bc2cb) ; 'not-provide-all-defined"
" 145: 48c7c60e000000 (mov rsi #xe)"
" 14c: 4983c510 (add r13 #x10)"
" 150: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 154: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 158: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 17e"
" 15f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 163: 48c7c503000000 (mov rbp #x3)"
" 16a: 41ff6703 (jmp (mem64+ r15 #x3))"
" 16e: af01000000000000 (data)"
" 176: 8b00000000000000 (data)"
" 17e: 4983ed10 (sub r13 #x10) ; <="
" 182: 4989e8 (mov r8 rbp)"
" 185: 4983c510 (add r13 #x10)"
" 189: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 18d: 4c8b7923 (mov r15 (mem64+ rcx #x23))"
" 191: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1b7"
" 198: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 19c: 48c7c501000000 (mov rbp #x1)"
" 1a3: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1a7: e801000000000000 (data)"
" 1af: 8b00000000000000 (data)"
" 1b7: 4983ed10 (sub r13 #x10) ; <="
" 1bb: 4889ef (mov rdi rbp)"
" 1be: 49b87beb054000000000 (mov r8 #x4005eb7b) ; 'fx+/wraparound"
" 1c8: 4983c508 (add r13 #x8)"
" 1cc: 498b4d00 (mov rcx (mem64+ r13 #x0))"
" 1d0: 4c8b790b (mov r15 (mem64+ rcx #xb))"
" 1d4: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1fa"
" 1db: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1df: 48c7c502000000 (mov rbp #x2)"
" 1e6: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1ea: 2b02000000000000 (data)"
" 1f2: 0500000000000000 (data)"
" 1fa: 4983ed08 (sub r13 #x8) ; <="
" 1fe: 48c7c52e000000 (mov rbp #x2e)"
" 205: 41ff6500 (jmp (mem64+ r13 #x0))"
" 209: e8b2bd83f8 (call (+ rip #x-77c424e)) ; #<code dooverflow> ; <="
" 20e: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 215: e909feffff (jmp (+ rip #x-1f7)) ; => 23"
" 21a: e911c783f8 (jmp (+ rip #x-77c38ef)) ; #<code doargerr> ; <="
" 21f: 0f1f8000000000 (data)"
" 226: e935eb83f8 (jmp (+ rip #x-77c14cb)) ; #<code event-detour> ; <="
" 22b: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8417020000 (jz (+ rip #x217)) ; => 222"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8501020000 (jnz (+ rip #x201)) ; => 216"
" 15: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 19: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1d: 0f86e2010000 (jbe (+ rip #x1e2)) ; => 205"
" 23: 4d31c0 (xor r8 r8) ; <="
" 26: 4983c510 (add r13 #x10)"
" 2a: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 2e: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 8b00000000000000 (data)"
" 58: 4983ed10 (sub r13 #x10) ; <="
" 5c: 4989e8 (mov r8 rbp)"
" 5f: 48bf6b3b4f4200000000 (mov rdi #x424f3b6b) ; 'not-free-identifier=?"
" 69: 48c7c60e000000 (mov rsi #xe)"
" 70: 4983c510 (add r13 #x10)"
" 74: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 78: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 7c: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => a2"
" 83: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 87: 48c7c503000000 (mov rbp #x3)"
" 8e: 41ff6703 (jmp (mem64+ r15 #x3))"
" 92: d300000000000000 (data)"
" 9a: 8b00000000000000 (data)"
" a2: 4983ed10 (sub r13 #x10) ; <="
" a6: 4889e9 (mov rcx rbp)"
" a9: 49c7c008000000 (mov r8 #x8)"
" b0: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" b4: 4983c518 (add r13 #x18)"
" b8: 498b4df0 (mov rcx (mem64+ r13 #x-10))"
" bc: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" c0: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => e6"
" c7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" cb: 48c7c501000000 (mov rbp #x1)"
" d2: 41ff6703 (jmp (mem64+ r15 #x3))"
" d6: 1701000000000000 (data)"
" de: 8f01000000000000 (data)"
" e6: 4983ed18 (sub r13 #x18) ; <="
" ea: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" ee: 4889ee (mov rsi rbp)"
" f1: 4989c8 (mov r8 rcx)"
" f4: 48bfdbafa84700000000 (mov rdi #x47a8afdb) ; 'original-name"
" fe: 4983c510 (add r13 #x10)"
" 102: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 106: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 10a: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 130"
" 111: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 115: 48c7c503000000 (mov rbp #x3)"
" 11c: 41ff6703 (jmp (mem64+ r15 #x3))"
" 120: 6101000000000000 (data)"
" 128: 8b00000000000000 (data)"
" 130: 4983ed10 (sub r13 #x10) ; <="
" 134: 4989e8 (mov r8 rbp)"
" 137: 48bfcbc21b4600000000 (mov rdi #x461bc2cb) ; 'not-provide-all-defined"
" 141: 48c7c60e000000 (mov rsi #xe)"
" 148: 4983c510 (add r13 #x10)"
" 14c: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 150: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 154: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 17a"
" 15b: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 15f: 48c7c503000000 (mov rbp #x3)"
" 166: 41ff6703 (jmp (mem64+ r15 #x3))"
" 16a: ab01000000000000 (data)"
" 172: 8b00000000000000 (data)"
" 17a: 4983ed10 (sub r13 #x10) ; <="
" 17e: 4989e8 (mov r8 rbp)"
" 181: 4983c510 (add r13 #x10)"
" 185: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 189: 4c8b7923 (mov r15 (mem64+ rcx #x23))"
" 18d: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1b3"
" 194: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 198: 48c7c501000000 (mov rbp #x1)"
" 19f: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1a3: e401000000000000 (data)"
" 1ab: 8b00000000000000 (data)"
" 1b3: 4983ed10 (sub r13 #x10) ; <="
" 1b7: 4889ef (mov rdi rbp)"
" 1ba: 49b8fb38094000000000 (mov r8 #x400938fb) ; 'fxabs"
" 1c4: 4983c508 (add r13 #x8)"
" 1c8: 498b4d00 (mov rcx (mem64+ r13 #x0))"
" 1cc: 4c8b790b (mov r15 (mem64+ rcx #xb))"
" 1d0: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1f6"
" 1d7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1db: 48c7c502000000 (mov rbp #x2)"
" 1e2: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1e6: 2702000000000000 (data)"
" 1ee: 0500000000000000 (data)"
" 1f6: 4983ed08 (sub r13 #x8) ; <="
" 1fa: 48c7c52e000000 (mov rbp #x2e)"
" 201: 41ff6500 (jmp (mem64+ r13 #x0))"
" 205: e826c083f8 (call (+ rip #x-77c3fda)) ; #<code dooverflow> ; <="
" 20a: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 211: e90dfeffff (jmp (+ rip #x-1f3)) ; => 23"
" 216: e985c983f8 (jmp (+ rip #x-77c367b)) ; #<code doargerr> ; <="
" 21b: 0f1f8000000000 (data)"
" 222: e9a9ed83f8 (jmp (+ rip #x-77c1257)) ; #<code event-detour> ; <="
" 227: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7425 (jz (+ rip #x25)) ; => 2c"
" 7: 4883fd00 (cmp rbp #x0)"
" b: 7513 (jnz (+ rip #x13)) ; => 20"
" d: 4d8b470b (mov r8 (mem64+ r15 #xb))"
" 11: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 15: 48c7c501000000 (mov rbp #x1)"
" 1c: 41ff6703 (jmp (mem64+ r15 #x3))"
" 20: e9fbcb83f8 (jmp (+ rip #x-77c3405)) ; #<code doargerr> ; <="
" 25: 0f1f8000000000 (data)"
" 2c: e91ff083f8 (jmp (+ rip #x-77c0fe1)) ; #<code event-detour> ; <="
" 31: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd00 (cmp rbp #x0)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 4d8b470b (mov r8 (mem64+ r15 #xb)) ; <="
" 17: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1b: 4983c510 (add r13 #x10)"
" 1f: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 23: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 49"
" 2a: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 2e: 48c7c501000000 (mov rbp #x1)"
" 35: 41ff6703 (jmp (mem64+ r15 #x3))"
" 39: 7a00000000000000 (data)"
" 41: 8b00000000000000 (data)"
" 49: 4983ed10 (sub r13 #x10) ; <="
" 4d: 4d8b7d08 (mov r15 (mem64+ r13 #x8))"
" 51: 4989e8 (mov r8 rbp)"
" 54: 4d8b7f1b (mov r15 (mem64+ r15 #x1b))"
" 58: 48c7c501000000 (mov rbp #x1)"
" 5f: 41ff6703 (jmp (mem64+ r15 #x3))"
" 63: e818c383f8 (call (+ rip #x-77c3ce8)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e97acc83f8 (jmp (+ rip #x-77c3386)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e99ef083f8 (jmp (+ rip #x-77c0f62)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd0a (cmp rbp #xa)"
" 4: 0f8500030000 (jnz (+ rip #x300)) ; => 30a"
" a: 4d89c7 (mov r15 r8)"
" d: 49897d48 (mov (mem64+ r13 #x48) rdi)"
" 11: 49897550 (mov (mem64+ r13 #x50) rsi)"
" 15: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 19: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 1d: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 21: 4d8b5d30 (mov r11 (mem64+ r13 #x30))"
" 25: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 29: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 2d: 0f86c6020000 (jbe (+ rip #x2c6)) ; => 2f9"
" 33: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 38: 0f8457020000 (jz (+ rip #x257)) ; => 295"
" 3e: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 42: 4983c120 (add r9 #x20)"
" 46: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 4a: 0f8233020000 (jb (+ rip #x233)) ; => 283"
" 50: 4d89e0 (mov r8 r12) ; <="
" 53: 49ba904cd34700000000 (mov r10 #x47d34c90) ; #<code>"
" 5d: 4d895003 (mov (mem64+ r8 #x3) r10)"
" 61: 4d89780b (mov (mem64+ r8 #xb) r15)"
" 65: 4d895813 (mov (mem64+ r8 #x13) r11)"
" 69: 4989781b (mov (mem64+ r8 #x1b) rdi)"
" 6d: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 71: 49897518 (mov (mem64+ r13 #x18) rsi)"
" 75: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 79: 4983c558 (add r13 #x58)"
" 7d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 87: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 8c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b3"
" 93: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 97: 48c7c501000000 (mov rbp #x1)"
" 9e: 41ff64240d (jmp (mem64+ r12 #xd))"
" a3: e400000000000000 (data)"
" ab: 2daf010000000000 (data)"
" b3: 4983ed58 (sub r13 #x58) ; <="
" b7: 498b5510 (mov rdx (mem64+ r13 #x10))"
" bb: 498b7518 (mov rsi (mem64+ r13 #x18))"
" bf: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" c3: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" c7: 4983c120 (add r9 #x20)"
" cb: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" cf: 0f829c010000 (jb (+ rip #x19c)) ; => 271"
" d5: 4d89e0 (mov r8 r12) ; <="
" d8: 48bf604dd34700000000 (mov rdi #x47d34d60) ; #<code>"
" e2: 49897803 (mov (mem64+ r8 #x3) rdi)"
" e6: 4989700b (mov (mem64+ r8 #xb) rsi)"
" ea: 49895013 (mov (mem64+ r8 #x13) rdx)"
" ee: 49894d60 (mov (mem64+ r13 #x60) rcx)"
" f2: 48bf29afa84700000000 (mov rdi #x47a8af29) ; '(make-redirect6.1)"
" fc: 48be39afa84700000000 (mov rsi #x47a8af39) ; '(constant)"
" 106: 4983c558 (add r13 #x58)"
" 10a: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 114: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 119: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 140"
" 120: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 124: 48c7c504000000 (mov rbp #x4)"
" 12b: 41ff64240d (jmp (mem64+ r12 #xd))"
" 130: 7101000000000000 (data)"
" 138: 2d8c010000000000 (data)"
" 140: 4983ed58 (sub r13 #x58) ; <="
" 144: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 148: 4983c130 (add r9 #x30)"
" 14c: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 150: 0f8209010000 (jb (+ rip #x109)) ; => 25f"
" 156: 4d89e0 (mov r8 r12) ; <="
" 159: 48b9e04dd34700000000 (mov rcx #x47d34de0) ; #<code>"
" 163: 49894803 (mov (mem64+ r8 #x3) rcx)"
" 167: 498b4d50 (mov rcx (mem64+ r13 #x50))"
" 16b: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 16f: 498b4d48 (mov rcx (mem64+ r13 #x48))"
" 173: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 177: 498b4d20 (mov rcx (mem64+ r13 #x20))"
" 17b: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 17f: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 183: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 187: 4983c558 (add r13 #x58)"
" 18b: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 195: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 19a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1c1"
" 1a1: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1a5: 48c7c501000000 (mov rbp #x1)"
" 1ac: 41ff64240d (jmp (mem64+ r12 #xd))"
" 1b1: f201000000000000 (data)"
" 1b9: 2d8c010000000000 (data)"
" 1c1: 4983ed58 (sub r13 #x58) ; <="
" 1c5: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 1c9: 4983c130 (add r9 #x30)"
" 1cd: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 1d1: 727a (jb (+ rip #x7a)) ; => 24d"
" 1d3: 4d89e0 (mov r8 r12) ; <="
" 1d6: 48b95050d34700000000 (mov rcx #x47d35050) ; #<code>"
" 1e0: 49894803 (mov (mem64+ r8 #x3) rcx)"
" 1e4: 498b4d50 (mov rcx (mem64+ r13 #x50))"
" 1e8: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 1ec: 498b4d48 (mov rcx (mem64+ r13 #x48))"
" 1f0: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 1f4: 498b4d20 (mov rcx (mem64+ r13 #x20))"
" 1f8: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 1fc: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 200: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 204: 4983c508 (add r13 #x8)"
" 208: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 212: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 217: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 23e"
" 21e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 222: 48c7c501000000 (mov rbp #x1)"
" 229: 41ff64240d (jmp (mem64+ r12 #xd))"
" 22e: 6f02000000000000 (data)"
" 236: 0500000000000000 (data)"
" 23e: 4983ed08 (sub r13 #x8) ; <="
" 242: 48c7c52e000000 (mov rbp #x2e)"
" 249: 41ff6500 (jmp (mem64+ r13 #x0))"
" 24d: 49e88dbf83f8 (call (+ rip #x-77c4073)) ; #<code get-room> ; <="
" 253: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 25a: e974ffffff (jmp (+ rip #x-8c)) ; => 1d3"
" 25f: 49e87bbf83f8 (call (+ rip #x-77c4085)) ; #<code get-room> ; <="
" 265: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 26c: e9e5feffff (jmp (+ rip #x-11b)) ; => 156"
" 271: 49e869bf83f8 (call (+ rip #x-77c4097)) ; #<code get-room> ; <="
" 277: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 27e: e952feffff (jmp (+ rip #x-1ae)) ; => d5"
" 283: 49e857bf83f8 (call (+ rip #x-77c40a9)) ; #<code get-room> ; <="
" 289: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 290: e9bbfdffff (jmp (+ rip #x-245)) ; => 50"
" 295: 4d897d40 (mov (mem64+ r13 #x40) r15) ; <="
" 299: 49897d08 (mov (mem64+ r13 #x8) rdi)"
" 29d: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 2a1: 49897518 (mov (mem64+ r13 #x18) rsi)"
" 2a5: 4d895d30 (mov (mem64+ r13 #x30) r11)"
" 2a9: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 2ad: 4983c558 (add r13 #x58)"
" 2b1: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 2d8"
" 2b8: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 2bc: e90f0686f8 (jmp (+ rip #x-779f9f1)) ; #<code event>"
" 2c1: 0f1f800000000009 (data)"
" 2c9: 03000000000000ad (data)"
" 2d1: ff010000000000 (data)"
" 2d8: 4983ed58 (sub r13 #x58) ; <="
" 2dc: 4d8b7d40 (mov r15 (mem64+ r13 #x40))"
" 2e0: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 2e4: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 2e8: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 2ec: 4d8b5d30 (mov r11 (mem64+ r13 #x30))"
" 2f0: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 2f4: e945fdffff (jmp (+ rip #x-2bb)) ; => 3e"
" 2f9: e8e2c383f8 (call (+ rip #x-77c3c1e)) ; #<code dooverflow> ; <="
" 2fe: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 305: e929fdffff (jmp (+ rip #x-2d7)) ; => 33"
" 30a: e941cd83f8 (jmp (+ rip #x-77c32bf)) ; #<code doargerr> ; <="
" 30f: 0f1f8000000000 (data)"
""))
(module (example typed-again configure-runtime) ....
(require '#%kernel (lib "racket/runtime-config.rkt"))
(provide)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd04 (cmp rbp #x4)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 49c7c00e000000 (mov r8 #xe) ; <="
" 1a: 4983c508 (add r13 #x8)"
" 1e: 49bccbbe404200000000 (mov r12 #x4240becb) ; '1/print-as-expression"
" 28: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: 48c7c501000000 (mov rbp #x1)"
" 3f: 41ff64240d (jmp (mem64+ r12 #xd))"
" 44: 8500000000000000 (data)"
" 4c: 0500000000000000 (data)"
" 54: 4983ed08 (sub r13 #x8) ; <="
" 58: 48c7c52e000000 (mov rbp #x2e)"
" 5f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 63: e858c783f8 (call (+ rip #x-77c38a8)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e9bad083f8 (jmp (+ rip #x-77c2f46)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e9def483f8 (jmp (+ rip #x-77c0b22)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
""))
(module (example typed-again #%contract-defs-reference) ....
(require (lib "racket/base.rkt")
(lib "racket/runtime-path.rkt")
(for-syntax (lib "racket/base.rkt")))
(provide contract-defs-submod)
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8439010000 (jz (+ rip #x139)) ; => 144"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8523010000 (jnz (+ rip #x123)) ; => 138"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8608010000 (jbe (+ rip #x108)) ; => 127"
" 1f: 498b5713 (mov rdx (mem64+ r15 #x13)) ; <="
" 23: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 27: 4983c130 (add r9 #x30)"
" 2b: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 2f: 0f82e0000000 (jb (+ rip #xe0)) ; => 115"
" 35: 48b9cb29de4000000000 (mov rcx #x40de29cb) ; 'module ; <="
" 3f: 49894c2407 (mov (mem64+ r12 #x7) rcx)"
" 44: 498d4c2410 (lea rcx (mem+ r12 #x10))"
" 49: 49894c240f (mov (mem64+ r12 #xf) rcx)"
" 4e: 48b90981de4300000000 (mov rcx #x43de8109) ; '(submod \"..\" #%contract-defs)"
" 58: 49894c2417 (mov (mem64+ r12 #x17) rcx)"
" 5d: 498d4c2420 (lea rcx (mem+ r12 #x20))"
" 62: 49894c241f (mov (mem64+ r12 #x1f) rcx)"
" 67: 4989542427 (mov (mem64+ r12 #x27) rdx)"
" 6c: 49c744242f26000000 (mov (mem64+ r12 #x2f) #x26)"
" 75: 4c89e1 (mov rcx r12)"
" 78: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 7c: 4983c110 (add r9 #x10)"
" 80: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 84: 727d (jb (+ rip #x7d)) ; => 103"
" 86: 4c89e6 (mov rsi r12) ; <="
" 89: 48894e07 (mov (mem64+ rsi #x7) rcx)"
" 8d: 48c7460f26000000 (mov (mem64+ rsi #xf) #x26)"
" 95: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" 99: 48b9f05e3e4200000000 (mov rcx #x423e5ef0) ; 'void"
" a3: 488b39 (mov rdi (mem64+ rcx))"
" a6: 4983c508 (add r13 #x8)"
" aa: 4d8b7f0b (mov r15 (mem64+ r15 #xb))"
" ae: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => d4"
" b5: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b9: 48c7c503000000 (mov rbp #x3)"
" c0: 41ff6703 (jmp (mem64+ r15 #x3))"
" c4: 0501000000000000 (data)"
" cc: 0700000000000000 (data)"
" d4: 4983ed08 (sub r13 #x8) ; <="
" d8: 4889ef (mov rdi rbp)"
" db: 48b9e0d0084000000000 (mov rcx #x4008d0e0) ; 'values"
" e5: 4c8b01 (mov r8 (mem64+ rcx))"
" e8: 49bc0b42444200000000 (mov r12 #x4244420b) ; 'apply"
" f2: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f7: 48c7c502000000 (mov rbp #x2)"
" fe: 41ff64240d (jmp (mem64+ r12 #xd))"
" 103: 49e897b383f8 (call (+ rip #x-77c4c69)) ; #<code get-room> ; <="
" 109: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 110: e971ffffff (jmp (+ rip #x-8f)) ; => 86"
" 115: 49e885b383f8 (call (+ rip #x-77c4c7b)) ; #<code get-room> ; <="
" 11b: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 122: e90effffff (jmp (+ rip #x-f2)) ; => 35"
" 127: e874b883f8 (call (+ rip #x-77c478c)) ; #<code dooverflow> ; <="
" 12c: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 133: e9e7feffff (jmp (+ rip #x-119)) ; => 1f"
" 138: e9d3c183f8 (jmp (+ rip #x-77c3e2d)) ; #<code doargerr> ; <="
" 13d: 0f1f8000000000 (data)"
" 144: e9f7e583f8 (jmp (+ rip #x-77c1a09)) ; #<code event-detour> ; <="
" 149: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd05 (cmp rbp #x5)"
" 4: 0f8517010000 (jnz (+ rip #x117)) ; => 121"
" a: 4c89c1 (mov rcx r8)"
" d: 498b7508 (mov rsi (mem64+ r13 #x8))"
" 11: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f86f1000000 (jbe (+ rip #xf1)) ; => 110"
" 1f: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 24: 0f849a000000 (jz (+ rip #x9a)) ; => c4"
" 2a: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 2e: 4983c120 (add r9 #x20)"
" 32: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 36: 727a (jb (+ rip #x7a)) ; => b2"
" 38: 4d89e0 (mov r8 r12) ; <="
" 3b: 48bf7056d34700000000 (mov rdi #x47d35670) ; #<code>"
" 45: 49897803 (mov (mem64+ r8 #x3) rdi)"
" 49: 4989700b (mov (mem64+ r8 #xb) rsi)"
" 4d: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 51: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 55: 48bf7982de4300000000 (mov rdi #x43de8279) ; '(contract-defs-submod)"
" 5f: 48be8982de4300000000 (mov rsi #x43de8289) ; '(constant)"
" 69: 4983c508 (add r13 #x8)"
" 6d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 77: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 7c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => a3"
" 83: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 87: 48c7c504000000 (mov rbp #x4)"
" 8e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 93: d400000000000000 (data)"
" 9b: 0500000000000000 (data)"
" a3: 4983ed08 (sub r13 #x8) ; <="
" a7: 48c7c52e000000 (mov rbp #x2e)"
" ae: 41ff6500 (jmp (mem64+ r13 #x0))"
" b2: 49e858b583f8 (call (+ rip #x-77c4aa8)) ; #<code get-room> ; <="
" b8: 0f1f8000000000 (nop (mem32+ rax #x0))"
" bf: e974ffffff (jmp (+ rip #x-8c)) ; => 38"
" c4: 49894d18 (mov (mem64+ r13 #x18) rcx) ; <="
" c8: 49897508 (mov (mem64+ r13 #x8) rsi)"
" cc: 49895510 (mov (mem64+ r13 #x10) rdx)"
" d0: 4983c520 (add r13 #x20)"
" d4: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => fb"
" db: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" df: e91cfc85f8 (jmp (+ rip #x-77a03e4)) ; #<code event>"
" e4: 0f1f80000000002c (data)"
" ec: 0100000000000091 (data)"
" f4: 03000000000000 (data)"
" fb: 4983ed20 (sub r13 #x20) ; <="
" ff: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 103: 498b7508 (mov rsi (mem64+ r13 #x8))"
" 107: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 10b: e91affffff (jmp (+ rip #x-e6)) ; => 2a"
" 110: e8fbb983f8 (call (+ rip #x-77c4605)) ; #<code dooverflow> ; <="
" 115: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 11c: e9fefeffff (jmp (+ rip #x-102)) ; => 1f"
" 121: e95ac383f8 (jmp (+ rip #x-77c3ca6)) ; #<code doargerr> ; <="
" 126: 0f1f8000000000 (data)"
"")
(begin-for-syntax
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84c0000000 (jz (+ rip #xc0)) ; => cb"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f85aa000000 (jnz (+ rip #xaa)) ; => bf"
" 15: 498b570b (mov rdx (mem64+ r15 #xb))"
" 19: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 1d: 4983c130 (add r9 #x30)"
" 21: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 25: 0f8282000000 (jb (+ rip #x82)) ; => ad"
" 2b: 48b9cb29de4000000000 (mov rcx #x40de29cb) ; 'module ; <="
" 35: 49894c2407 (mov (mem64+ r12 #x7) rcx)"
" 3a: 498d4c2410 (lea rcx (mem+ r12 #x10))"
" 3f: 49894c240f (mov (mem64+ r12 #xf) rcx)"
" 44: 48b9c919cc4000000000 (mov rcx #x40cc19c9) ; '(submod \"..\" #%contract-defs)"
" 4e: 49894c2417 (mov (mem64+ r12 #x17) rcx)"
" 53: 498d4c2420 (lea rcx (mem+ r12 #x20))"
" 58: 49894c241f (mov (mem64+ r12 #x1f) rcx)"
" 5d: 4989542427 (mov (mem64+ r12 #x27) rdx)"
" 62: 49c744242f26000000 (mov (mem64+ r12 #x2f) #x26)"
" 6b: 4c89e1 (mov rcx r12)"
" 6e: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 72: 4983c110 (add r9 #x10)"
" 76: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 7a: 7222 (jb (+ rip #x22)) ; => 9e"
" 7c: 4c89e7 (mov rdi r12) ; <="
" 7f: 48894f07 (mov (mem64+ rdi #x7) rcx)"
" 83: 48c7470f26000000 (mov (mem64+ rdi #xf) #x26)"
" 8b: 4d8b470b (mov r8 (mem64+ r15 #xb))"
" 8f: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 93: 48c7c502000000 (mov rbp #x2)"
" 9a: 41ff6703 (jmp (mem64+ r15 #x3))"
" 9e: 49e84cab83f8 (call (+ rip #x-77c54b4)) ; #<code get-room> ; <="
" a4: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ab: ebcf (jmp (+ rip #x-31)) ; => 7c"
" ad: 49e83dab83f8 (call (+ rip #x-77c54c3)) ; #<code get-room> ; <="
" b3: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ba: e96cffffff (jmp (+ rip #x-94)) ; => 2b"
" bf: e99cb983f8 (jmp (+ rip #x-77c4664)) ; #<code doargerr> ; <="
" c4: 0f1f8000000000 (data)"
" cb: e9c0dd83f8 (jmp (+ rip #x-77c2240)) ; #<code event-detour> ; <="
" d0: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b3000000 (jz (+ rip #xb3)) ; => be"
" b: 4883fd04 (cmp rbp #x4)"
" f: 0f859d000000 (jnz (+ rip #x9d)) ; => b2"
" 15: 4c89c1 (mov rcx r8)"
" 18: 498b5508 (mov rdx (mem64+ r13 #x8))"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 767f (jbe (+ rip #x7f)) ; => a1"
" 22: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 26: 4983c120 (add r9 #x20)"
" 2a: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 2e: 7262 (jb (+ rip #x62)) ; => 92"
" 30: 4d89e0 (mov r8 r12) ; <="
" 33: 48be205fd34700000000 (mov rsi #x47d35f20) ; #<code>"
" 3d: 49897003 (mov (mem64+ r8 #x3) rsi)"
" 41: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 45: 49895013 (mov (mem64+ r8 #x13) rdx)"
" 49: 4983c508 (add r13 #x8)"
" 4d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 57: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 5c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 83"
" 63: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 67: 48c7c501000000 (mov rbp #x1)"
" 6e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 73: b400000000000000 (data)"
" 7b: 0500000000000000 (data)"
" 83: 4983ed08 (sub r13 #x8) ; <="
" 87: 48c7c52e000000 (mov rbp #x2e)"
" 8e: 41ff6500 (jmp (mem64+ r13 #x0))"
" 92: 49e868ac83f8 (call (+ rip #x-77c5398)) ; #<code get-room> ; <="
" 98: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 9f: eb8f (jmp (+ rip #x-71)) ; => 30"
" a1: e85ab183f8 (call (+ rip #x-77c4ea6)) ; #<code dooverflow> ; <="
" a6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ad: e970ffffff (jmp (+ rip #x-90)) ; => 22"
" b2: e9b9ba83f8 (jmp (+ rip #x-77c4547)) ; #<code doargerr> ; <="
" b7: 0f1f8000000000 (data)"
" be: e9ddde83f8 (jmp (+ rip #x-77c2123)) ; #<code event-detour> ; <="
" c3: 0f1f8000000000 (data)"
""))
(module (example typed-again #%contract-defs-reference configure-runtime) ....
(require '#%kernel (lib "racket/runtime-config.rkt"))
(provide)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd04 (cmp rbp #x4)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 49c7c00e000000 (mov r8 #xe) ; <="
" 1a: 4983c508 (add r13 #x8)"
" 1e: 49bccbbe404200000000 (mov r12 #x4240becb) ; '1/print-as-expression"
" 28: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: 48c7c501000000 (mov rbp #x1)"
" 3f: 41ff64240d (jmp (mem64+ r12 #xd))"
" 44: 8500000000000000 (data)"
" 4c: 0500000000000000 (data)"
" 54: 4983ed08 (sub r13 #x8) ; <="
" 58: 48c7c52e000000 (mov rbp #x2e)"
" 5f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 63: e898a183f8 (call (+ rip #x-77c5e68)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e9faaa83f8 (jmp (+ rip #x-77c5506)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e91ecf83f8 (jmp (+ rip #x-77c30e2)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
"")))
(module (example typed-again #%contract-defs) ....
(require (submod "..")
(submod
(lib "typed-racket/private/type-contract.rkt")
predicates)
(lib "typed-racket/utils/utils.rkt")
(lib "typed-racket/utils/any-wrap.rkt")
(lib "typed-racket/utils/struct-type-c.rkt")
(lib "typed-racket/utils/prefab-c.rkt")
(lib "typed-racket/utils/opaque-object.rkt")
(lib "typed-racket/utils/evt-contract.rkt")
(lib "typed-racket/utils/hash-contract.rkt")
(lib "typed-racket/utils/vector-contract.rkt")
(lib "typed-racket/utils/sealing-contract.rkt")
(lib "typed-racket/utils/promise-not-name-contract.rkt")
(lib "typed-racket/utils/simple-result-arrow.rkt")
(lib "typed-racket/utils/eq-contract.rkt")
(lib "racket/sequence.rkt")
(lib "racket/contract/parametric.rkt")
(for-syntax (lib "typed-racket/utils/utils.rkt")))
(provide)
(#%assembly-code
" 0: 4883fd03 (cmp rbp #x3)"
" 4: 750b (jnz (+ rip #xb)) ; => 11"
" 6: 48c7c52e000000 (mov rbp #x2e)"
" d: 41ff6500 (jmp (mem64+ r13 #x0))"
" 11: e96aa083f8 (jmp (+ rip #x-77c5f96)) ; #<code doargerr> ; <="
" 16: 0f1f8000000000 (data)"
""))
(module (example typed-again #%type-decl) ....
(require (for-template (submod ".."))
(lib "typed-racket/types/numeric-tower.rkt")
(lib "typed-racket/env/type-name-env.rkt")
(lib "typed-racket/env/global-env.rkt")
(lib "typed-racket/env/type-alias-env.rkt")
(lib "typed-racket/types/struct-table.rkt")
(lib "typed-racket/types/abbrev.rkt")
(lib "typed-racket/env/struct-name-env.rkt")
(lib "racket/private/sort.rkt"))
(provide)
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84c3020000 (jz (+ rip #x2c3)) ; => 2ce"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f85ad020000 (jnz (+ rip #x2ad)) ; => 2c2"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8692020000 (jbe (+ rip #x292)) ; => 2b1"
" 1f: 49c7c018000000 (mov r8 #x18) ; <="
" 26: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 2a: 4983c518 (add r13 #x18)"
" 2e: 4d8b7f63 (mov r15 (mem64+ r15 #x63))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 0f01000000000000 (data)"
" 58: 4983ed18 (sub r13 #x18) ; <="
" 5c: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 60: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 64: 498b575b (mov rdx (mem64+ r15 #x5b))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c110 (add r9 #x10)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f8225020000 (jb (+ rip #x225)) ; => 29f"
" 7a: 4c89e1 (mov rcx r12) ; <="
" 7d: 48895107 (mov (mem64+ rcx #x7) rdx)"
" 81: 48c7410f26000000 (mov (mem64+ rcx #xf) #x26)"
" 89: 498b5753 (mov rdx (mem64+ r15 #x53))"
" 8d: 49895520 (mov (mem64+ r13 #x20) rdx)"
" 91: 498b5743 (mov rdx (mem64+ r15 #x43))"
" 95: 4d8b472b (mov r8 (mem64+ r15 #x2b))"
" 99: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 9d: 498b7733 (mov rsi (mem64+ r15 #x33))"
" a1: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" a5: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" a9: 49895528 (mov (mem64+ r13 #x28) rdx)"
" ad: 4983c530 (add r13 #x30)"
" b1: 4d8b7f3b (mov r15 (mem64+ r15 #x3b))"
" b5: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => db"
" bc: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" c0: 48c7c503000000 (mov rbp #x3)"
" c7: 41ff6703 (jmp (mem64+ r15 #x3))"
" cb: 0c01000000000000 (data)"
" d3: 9b0f000000000000 (data)"
" db: 4983ed30 (sub r13 #x30) ; <="
" df: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" e3: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" e7: 498b5528 (mov rdx (mem64+ r13 #x28))"
" eb: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" ef: 4983c110 (add r9 #x10)"
" f3: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" f7: 0f8290010000 (jb (+ rip #x190)) ; => 28d"
" fd: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 102: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 10b: 4c89e6 (mov rsi r12)"
" 10e: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 112: 4983c110 (add r9 #x10)"
" 116: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 11a: 0f825b010000 (jb (+ rip #x15b)) ; => 27b"
" 120: 4989542401 (mov (mem64+ r12 #x1) rdx) ; <="
" 125: 4989742409 (mov (mem64+ r12 #x9) rsi)"
" 12a: 49c7453006000000 (mov (mem64+ r13 #x30) #x6)"
" 132: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 136: 4d896540 (mov (mem64+ r13 #x40) r12)"
" 13a: 49c7c026000000 (mov r8 #x26)"
" 141: 48c7c746000000 (mov rdi #x46)"
" 148: 48c7c646000000 (mov rsi #x46)"
" 14f: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 153: 4983c528 (add r13 #x28)"
" 157: 4d8b7f4b (mov r15 (mem64+ r15 #x4b))"
" 15b: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 181"
" 162: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 166: 48c7c506000000 (mov rbp #x6)"
" 16d: 41ff6703 (jmp (mem64+ r15 #x3))"
" 171: b201000000000000 (data)"
" 179: 1707000000000000 (data)"
" 181: 4983ed28 (sub r13 #x28) ; <="
" 185: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 189: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 18d: 4983c110 (add r9 #x10)"
" 191: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 195: 0f82ce000000 (jb (+ rip #xce)) ; => 269"
" 19b: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 1a0: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 1a9: 4c89e1 (mov rcx r12)"
" 1ac: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 1b0: 4983c110 (add r9 #x10)"
" 1b4: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 1b8: 0f8299000000 (jb (+ rip #x99)) ; => 257"
" 1be: 498b5520 (mov rdx (mem64+ r13 #x20)) ; <="
" 1c2: 4989542401 (mov (mem64+ r12 #x1) rdx)"
" 1c7: 49894c2409 (mov (mem64+ r12 #x9) rcx)"
" 1cc: 498b4f1b (mov rcx (mem64+ r15 #x1b))"
" 1d0: 4883e107 (and rcx #x7)"
" 1d4: 4883f905 (cmp rcx #x5)"
" 1d8: 7522 (jnz (+ rip #x22)) ; => 1fc"
" 1da: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" 1de: 4d896508 (mov (mem64+ r13 #x8) r12) ; <="
" 1e2: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" 1e6: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" 1ea: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 1ee: 4989ef (mov r15 rbp)"
" 1f1: 48c7c504000000 (mov rbp #x4)"
" 1f8: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1fc: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" 200: 48c7c720000000 (mov rdi #x20)"
" 207: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 20b: 4d896508 (mov (mem64+ r13 #x8) r12)"
" 20f: 4983c520 (add r13 #x20)"
" 213: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 21d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 222: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 249"
" 229: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 22d: 48c7c502000000 (mov rbp #x2)"
" 234: 41ff64240d (jmp (mem64+ r12 #xd))"
" 239: 7a02000000000000 (data)"
" 241: 9303000000000000 (data)"
" 249: 4983ed20 (sub r13 #x20) ; <="
" 24d: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 251: 4d8b6508 (mov r12 (mem64+ r13 #x8))"
" 255: eb87 (jmp (+ rip #x-79)) ; => 1de"
" 257: 49e8637083f8 (call (+ rip #x-77c8f9d)) ; #<code get-room> ; <="
" 25d: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 264: e955ffffff (jmp (+ rip #x-ab)) ; => 1be"
" 269: 49e8517083f8 (call (+ rip #x-77c8faf)) ; #<code get-room> ; <="
" 26f: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 276: e920ffffff (jmp (+ rip #x-e0)) ; => 19b"
" 27b: 49e83f7083f8 (call (+ rip #x-77c8fc1)) ; #<code get-room> ; <="
" 281: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 288: e993feffff (jmp (+ rip #x-16d)) ; => 120"
" 28d: 49e82d7083f8 (call (+ rip #x-77c8fd3)) ; #<code get-room> ; <="
" 293: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 29a: e95efeffff (jmp (+ rip #x-1a2)) ; => fd"
" 29f: 49e81b7083f8 (call (+ rip #x-77c8fe5)) ; #<code get-room> ; <="
" 2a5: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2ac: e9c9fdffff (jmp (+ rip #x-237)) ; => 7a"
" 2b1: e80a7583f8 (call (+ rip #x-77c8af6)) ; #<code dooverflow> ; <="
" 2b6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2bd: e95dfdffff (jmp (+ rip #x-2a3)) ; => 1f"
" 2c2: e9697e83f8 (jmp (+ rip #x-77c8197)) ; #<code doargerr> ; <="
" 2c7: 0f1f8000000000 (data)"
" 2ce: e98da283f8 (jmp (+ rip #x-77c5d73)) ; #<code event-detour> ; <="
" 2d3: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84c3020000 (jz (+ rip #x2c3)) ; => 2ce"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f85ad020000 (jnz (+ rip #x2ad)) ; => 2c2"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8692020000 (jbe (+ rip #x292)) ; => 2b1"
" 1f: 49c7c010000000 (mov r8 #x10) ; <="
" 26: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 2a: 4983c518 (add r13 #x18)"
" 2e: 4d8b7f63 (mov r15 (mem64+ r15 #x63))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 0f01000000000000 (data)"
" 58: 4983ed18 (sub r13 #x18) ; <="
" 5c: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 60: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 64: 498b575b (mov rdx (mem64+ r15 #x5b))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c110 (add r9 #x10)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f8225020000 (jb (+ rip #x225)) ; => 29f"
" 7a: 4c89e1 (mov rcx r12) ; <="
" 7d: 48895107 (mov (mem64+ rcx #x7) rdx)"
" 81: 48c7410f26000000 (mov (mem64+ rcx #xf) #x26)"
" 89: 498b5753 (mov rdx (mem64+ r15 #x53))"
" 8d: 49895520 (mov (mem64+ r13 #x20) rdx)"
" 91: 498b5743 (mov rdx (mem64+ r15 #x43))"
" 95: 4d8b472b (mov r8 (mem64+ r15 #x2b))"
" 99: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 9d: 498b7733 (mov rsi (mem64+ r15 #x33))"
" a1: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" a5: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" a9: 49895528 (mov (mem64+ r13 #x28) rdx)"
" ad: 4983c530 (add r13 #x30)"
" b1: 4d8b7f3b (mov r15 (mem64+ r15 #x3b))"
" b5: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => db"
" bc: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" c0: 48c7c503000000 (mov rbp #x3)"
" c7: 41ff6703 (jmp (mem64+ r15 #x3))"
" cb: 0c01000000000000 (data)"
" d3: 9b0f000000000000 (data)"
" db: 4983ed30 (sub r13 #x30) ; <="
" df: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" e3: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" e7: 498b5528 (mov rdx (mem64+ r13 #x28))"
" eb: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" ef: 4983c110 (add r9 #x10)"
" f3: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" f7: 0f8290010000 (jb (+ rip #x190)) ; => 28d"
" fd: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 102: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 10b: 4c89e6 (mov rsi r12)"
" 10e: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 112: 4983c110 (add r9 #x10)"
" 116: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 11a: 0f825b010000 (jb (+ rip #x15b)) ; => 27b"
" 120: 4989542401 (mov (mem64+ r12 #x1) rdx) ; <="
" 125: 4989742409 (mov (mem64+ r12 #x9) rsi)"
" 12a: 49c7453006000000 (mov (mem64+ r13 #x30) #x6)"
" 132: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 136: 4d896540 (mov (mem64+ r13 #x40) r12)"
" 13a: 49c7c026000000 (mov r8 #x26)"
" 141: 48c7c746000000 (mov rdi #x46)"
" 148: 48c7c646000000 (mov rsi #x46)"
" 14f: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 153: 4983c528 (add r13 #x28)"
" 157: 4d8b7f4b (mov r15 (mem64+ r15 #x4b))"
" 15b: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 181"
" 162: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 166: 48c7c506000000 (mov rbp #x6)"
" 16d: 41ff6703 (jmp (mem64+ r15 #x3))"
" 171: b201000000000000 (data)"
" 179: 1707000000000000 (data)"
" 181: 4983ed28 (sub r13 #x28) ; <="
" 185: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 189: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 18d: 4983c110 (add r9 #x10)"
" 191: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 195: 0f82ce000000 (jb (+ rip #xce)) ; => 269"
" 19b: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 1a0: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 1a9: 4c89e1 (mov rcx r12)"
" 1ac: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 1b0: 4983c110 (add r9 #x10)"
" 1b4: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 1b8: 0f8299000000 (jb (+ rip #x99)) ; => 257"
" 1be: 498b5520 (mov rdx (mem64+ r13 #x20)) ; <="
" 1c2: 4989542401 (mov (mem64+ r12 #x1) rdx)"
" 1c7: 49894c2409 (mov (mem64+ r12 #x9) rcx)"
" 1cc: 498b4f1b (mov rcx (mem64+ r15 #x1b))"
" 1d0: 4883e107 (and rcx #x7)"
" 1d4: 4883f905 (cmp rcx #x5)"
" 1d8: 7522 (jnz (+ rip #x22)) ; => 1fc"
" 1da: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" 1de: 4d896508 (mov (mem64+ r13 #x8) r12) ; <="
" 1e2: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" 1e6: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" 1ea: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 1ee: 4989ef (mov r15 rbp)"
" 1f1: 48c7c504000000 (mov rbp #x4)"
" 1f8: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1fc: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" 200: 48c7c720000000 (mov rdi #x20)"
" 207: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 20b: 4d896508 (mov (mem64+ r13 #x8) r12)"
" 20f: 4983c520 (add r13 #x20)"
" 213: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 21d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 222: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 249"
" 229: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 22d: 48c7c502000000 (mov rbp #x2)"
" 234: 41ff64240d (jmp (mem64+ r12 #xd))"
" 239: 7a02000000000000 (data)"
" 241: 9303000000000000 (data)"
" 249: 4983ed20 (sub r13 #x20) ; <="
" 24d: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 251: 4d8b6508 (mov r12 (mem64+ r13 #x8))"
" 255: eb87 (jmp (+ rip #x-79)) ; => 1de"
" 257: 49e833c2d3fb (call (+ rip #x-42c3dcd)) ; #<code get-room> ; <="
" 25d: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 264: e955ffffff (jmp (+ rip #x-ab)) ; => 1be"
" 269: 49e821c2d3fb (call (+ rip #x-42c3ddf)) ; #<code get-room> ; <="
" 26f: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 276: e920ffffff (jmp (+ rip #x-e0)) ; => 19b"
" 27b: 49e80fc2d3fb (call (+ rip #x-42c3df1)) ; #<code get-room> ; <="
" 281: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 288: e993feffff (jmp (+ rip #x-16d)) ; => 120"
" 28d: 49e8fdc1d3fb (call (+ rip #x-42c3e03)) ; #<code get-room> ; <="
" 293: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 29a: e95efeffff (jmp (+ rip #x-1a2)) ; => fd"
" 29f: 49e8ebc1d3fb (call (+ rip #x-42c3e15)) ; #<code get-room> ; <="
" 2a5: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2ac: e9c9fdffff (jmp (+ rip #x-237)) ; => 7a"
" 2b1: e8dac6d3fb (call (+ rip #x-42c3926)) ; #<code dooverflow> ; <="
" 2b6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2bd: e95dfdffff (jmp (+ rip #x-2a3)) ; => 1f"
" 2c2: e939d0d3fb (jmp (+ rip #x-42c2fc7)) ; #<code doargerr> ; <="
" 2c7: 0f1f8000000000 (data)"
" 2ce: e95df4d3fb (jmp (+ rip #x-42c0ba3)) ; #<code event-detour> ; <="
" 2d3: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8479010000 (jz (+ rip #x179)) ; => 184"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8563010000 (jnz (+ rip #x163)) ; => 178"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8648010000 (jbe (+ rip #x148)) ; => 167"
" 1f: 49c7c008000000 (mov r8 #x8) ; <="
" 26: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 2a: 4983c518 (add r13 #x18)"
" 2e: 4d8b7f3b (mov r15 (mem64+ r15 #x3b))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 0f01000000000000 (data)"
" 58: 4983ed18 (sub r13 #x18) ; <="
" 5c: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 60: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 64: 498b4f2b (mov rcx (mem64+ r15 #x2b))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c110 (add r9 #x10)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f82db000000 (jb (+ rip #xdb)) ; => 155"
" 7a: 4d89e0 (mov r8 r12) ; <="
" 7d: 49894807 (mov (mem64+ r8 #x7) rcx)"
" 81: 49c7400f26000000 (mov (mem64+ r8 #xf) #x26)"
" 89: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 8d: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 91: 4983c520 (add r13 #x20)"
" 95: 4d8b7f33 (mov r15 (mem64+ r15 #x33))"
" 99: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => bf"
" a0: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" a4: 48c7c502000000 (mov rbp #x2)"
" ab: 41ff6703 (jmp (mem64+ r15 #x3))"
" af: f000000000000000 (data)"
" b7: 1303000000000000 (data)"
" bf: 4983ed20 (sub r13 #x20) ; <="
" c3: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" c7: 4889e9 (mov rcx rbp)"
" ca: 498b571b (mov rdx (mem64+ r15 #x1b))"
" ce: 4883e207 (and rdx #x7)"
" d2: 4883fa05 (cmp rdx #x5)"
" d6: 7522 (jnz (+ rip #x22)) ; => fa"
" d8: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" dc: 49894d08 (mov (mem64+ r13 #x8) rcx) ; <="
" e0: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" e4: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" e8: 498b7518 (mov rsi (mem64+ r13 #x18))"
" ec: 4989ef (mov r15 rbp)"
" ef: 48c7c504000000 (mov rbp #x4)"
" f6: 41ff6703 (jmp (mem64+ r15 #x3))"
" fa: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" fe: 48c7c720000000 (mov rdi #x20)"
" 105: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 109: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" 10d: 4983c520 (add r13 #x20)"
" 111: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 11b: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 120: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 147"
" 127: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 12b: 48c7c502000000 (mov rbp #x2)"
" 132: 41ff64240d (jmp (mem64+ r12 #xd))"
" 137: 7801000000000000 (data)"
" 13f: 9303000000000000 (data)"
" 147: 4983ed20 (sub r13 #x20) ; <="
" 14b: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 14f: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 153: eb87 (jmp (+ rip #x-79)) ; => dc"
" 155: 49e815c0d3fb (call (+ rip #x-42c3feb)) ; #<code get-room> ; <="
" 15b: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 162: e913ffffff (jmp (+ rip #x-ed)) ; => 7a"
" 167: e804c5d3fb (call (+ rip #x-42c3afc)) ; #<code dooverflow> ; <="
" 16c: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 173: e9a7feffff (jmp (+ rip #x-159)) ; => 1f"
" 178: e963ced3fb (jmp (+ rip #x-42c319d)) ; #<code doargerr> ; <="
" 17d: 0f1f8000000000 (data)"
" 184: e987f2d3fb (jmp (+ rip #x-42c0d79)) ; #<code event-detour> ; <="
" 189: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8485010000 (jz (+ rip #x185)) ; => 190"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f856f010000 (jnz (+ rip #x16f)) ; => 184"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8654010000 (jbe (+ rip #x154)) ; => 173"
" 1f: 4d31c0 (xor r8 r8) ; <="
" 22: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 26: 4983c518 (add r13 #x18)"
" 2a: 4d8b7f33 (mov r15 (mem64+ r15 #x33))"
" 2e: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 54"
" 35: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 39: 48c7c501000000 (mov rbp #x1)"
" 40: 41ff6703 (jmp (mem64+ r15 #x3))"
" 44: 8500000000000000 (data)"
" 4c: 0f01000000000000 (data)"
" 54: 4983ed18 (sub r13 #x18) ; <="
" 58: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 5c: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 60: 498b4f23 (mov rcx (mem64+ r15 #x23))"
" 64: 498b5723 (mov rdx (mem64+ r15 #x23))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c120 (add r9 #x20)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f82e7000000 (jb (+ rip #xe7)) ; => 161"
" 7a: 4d89e0 (mov r8 r12) ; <="
" 7d: 49894807 (mov (mem64+ r8 #x7) rcx)"
" 81: 498d4810 (lea rcx (mem+ r8 #x10))"
" 85: 4989480f (mov (mem64+ r8 #xf) rcx)"
" 89: 49895017 (mov (mem64+ r8 #x17) rdx)"
" 8d: 49c7401f26000000 (mov (mem64+ r8 #x1f) #x26)"
" 95: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 99: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 9d: 4983c520 (add r13 #x20)"
" a1: 4d8b7f2b (mov r15 (mem64+ r15 #x2b))"
" a5: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => cb"
" ac: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b0: 48c7c502000000 (mov rbp #x2)"
" b7: 41ff6703 (jmp (mem64+ r15 #x3))"
" bb: fc00000000000000 (data)"
" c3: 1303000000000000 (data)"
" cb: 4983ed20 (sub r13 #x20) ; <="
" cf: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" d3: 4889e9 (mov rcx rbp)"
" d6: 498b571b (mov rdx (mem64+ r15 #x1b))"
" da: 4883e207 (and rdx #x7)"
" de: 4883fa05 (cmp rdx #x5)"
" e2: 7522 (jnz (+ rip #x22)) ; => 106"
" e4: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" e8: 49894d08 (mov (mem64+ r13 #x8) rcx) ; <="
" ec: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" f0: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" f4: 498b7518 (mov rsi (mem64+ r13 #x18))"
" f8: 4989ef (mov r15 rbp)"
" fb: 48c7c504000000 (mov rbp #x4)"
" 102: 41ff6703 (jmp (mem64+ r15 #x3))"
" 106: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" 10a: 48c7c720000000 (mov rdi #x20)"
" 111: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 115: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" 119: 4983c520 (add r13 #x20)"
" 11d: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 127: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 12c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 153"
" 133: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 137: 48c7c502000000 (mov rbp #x2)"
" 13e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 143: 8401000000000000 (data)"
" 14b: 9303000000000000 (data)"
" 153: 4983ed20 (sub r13 #x20) ; <="
" 157: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 15b: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 15f: eb87 (jmp (+ rip #x-79)) ; => e8"
" 161: 49e839bed3fb (call (+ rip #x-42c41c7)) ; #<code get-room> ; <="
" 167: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 16e: e907ffffff (jmp (+ rip #x-f9)) ; => 7a"
" 173: e828c3d3fb (call (+ rip #x-42c3cd8)) ; #<code dooverflow> ; <="
" 178: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 17f: e99bfeffff (jmp (+ rip #x-165)) ; => 1f"
" 184: e987ccd3fb (jmp (+ rip #x-42c3379)) ; #<code doargerr> ; <="
" 189: 0f1f8000000000 (data)"
" 190: e9abf0d3fb (jmp (+ rip #x-42c0f55)) ; #<code event-detour> ; <="
" 195: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd17 (cmp rbp #x17)"
" 4: 0f85c3030000 (jnz (+ rip #x3c3)) ; => 3cd"
" a: 49897d18 (mov (mem64+ r13 #x18) rdi)"
" e: 498b5520 (mov rdx (mem64+ r13 #x20))"
" 12: 498b7530 (mov rsi (mem64+ r13 #x30))"
" 16: 498bbd88000000 (mov rdi (mem64+ r13 #x88))"
" 1d: 498b8d90000000 (mov rcx (mem64+ r13 #x90))"
" 24: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 28: 0f868e030000 (jbe (+ rip #x38e)) ; => 3bc"
" 2e: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 33: 0f841d030000 (jz (+ rip #x31d)) ; => 356"
" 39: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 3d: 4983c140 (add r9 #x40)"
" 41: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 45: 0f82f9020000 (jb (+ rip #x2f9)) ; => 344"
" 4b: 4d89e0 (mov r8 r12) ; <="
" 4e: 49bf704b834400000000 (mov r15 #x44834b70) ; #<code>"
" 58: 4d897803 (mov (mem64+ r8 #x3) r15)"
" 5c: 4d8b7d08 (mov r15 (mem64+ r13 #x8))"
" 60: 4d89780b (mov (mem64+ r8 #xb) r15)"
" 64: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 68: 4d897813 (mov (mem64+ r8 #x13) r15)"
" 6c: 4989781b (mov (mem64+ r8 #x1b) rdi)"
" 70: 49897023 (mov (mem64+ r8 #x23) rsi)"
" 74: 4989502b (mov (mem64+ r8 #x2b) rdx)"
" 78: 498b7d18 (mov rdi (mem64+ r13 #x18))"
" 7c: 49897833 (mov (mem64+ r8 #x33) rdi)"
" 80: 49895520 (mov (mem64+ r13 #x20) rdx)"
" 84: 49897530 (mov (mem64+ r13 #x30) rsi)"
" 88: 49898d90000000 (mov (mem64+ r13 #x90) rcx)"
" 8f: 4981c5a8000000 (add r13 #xa8)"
" 96: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" a0: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" a5: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => cc"
" ac: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b0: 48c7c501000000 (mov rbp #x1)"
" b7: 41ff64240d (jmp (mem64+ r12 #xd))"
" bc: fd00000000000000 (data)"
" c4: d5bf3d0700000000 (data)"
" cc: 4981eda8000000 (sub r13 #xa8) ; <="
" d3: 498b5520 (mov rdx (mem64+ r13 #x20))"
" d7: 498b7530 (mov rsi (mem64+ r13 #x30))"
" db: 498b8d90000000 (mov rcx (mem64+ r13 #x90))"
" e2: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" e6: 4983c140 (add r9 #x40)"
" ea: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" ee: 0f823e020000 (jb (+ rip #x23e)) ; => 332"
" f4: 4d89e0 (mov r8 r12) ; <="
" f7: 48bfa049834400000000 (mov rdi #x448349a0) ; #<code>"
" 101: 49897803 (mov (mem64+ r8 #x3) rdi)"
" 105: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 109: 4989780b (mov (mem64+ r8 #xb) rdi)"
" 10d: 498b7d10 (mov rdi (mem64+ r13 #x10))"
" 111: 49897813 (mov (mem64+ r8 #x13) rdi)"
" 115: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 119: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 11d: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 121: 4989702b (mov (mem64+ r8 #x2b) rsi)"
" 125: 49895033 (mov (mem64+ r8 #x33) rdx)"
" 129: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 12d: 4989483b (mov (mem64+ r8 #x3b) rcx)"
" 131: 4981c5a8000000 (add r13 #xa8)"
" 138: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 142: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 147: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 16e"
" 14e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 152: 48c7c501000000 (mov rbp #x1)"
" 159: 41ff64240d (jmp (mem64+ r12 #xd))"
" 15e: 9f01000000000000 (data)"
" 166: d5ab3d0600000000 (data)"
" 16e: 4981eda8000000 (sub r13 #xa8) ; <="
" 175: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 179: 4983c170 (add r9 #x70)"
" 17d: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 181: 0f8299010000 (jb (+ rip #x199)) ; => 320"
" 187: 4d89e0 (mov r8 r12) ; <="
" 18a: 48b98046834400000000 (mov rcx #x44834680) ; #<code>"
" 194: 49894803 (mov (mem64+ r8 #x3) rcx)"
" 198: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 19c: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 1a0: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 1a4: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 1a8: 498b8d98000000 (mov rcx (mem64+ r13 #x98))"
" 1af: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 1b3: 498b4d60 (mov rcx (mem64+ r13 #x60))"
" 1b7: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 1bb: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 1bf: 4989482b (mov (mem64+ r8 #x2b) rcx)"
" 1c3: 498b4d68 (mov rcx (mem64+ r13 #x68))"
" 1c7: 49894833 (mov (mem64+ r8 #x33) rcx)"
" 1cb: 498b4d70 (mov rcx (mem64+ r13 #x70))"
" 1cf: 4989483b (mov (mem64+ r8 #x3b) rcx)"
" 1d3: 498b4d50 (mov rcx (mem64+ r13 #x50))"
" 1d7: 49894843 (mov (mem64+ r8 #x43) rcx)"
" 1db: 498b4d78 (mov rcx (mem64+ r13 #x78))"
" 1df: 4989484b (mov (mem64+ r8 #x4b) rcx)"
" 1e3: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 1e7: 49894853 (mov (mem64+ r8 #x53) rcx)"
" 1eb: 498b4d48 (mov rcx (mem64+ r13 #x48))"
" 1ef: 4989485b (mov (mem64+ r8 #x5b) rcx)"
" 1f3: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1f7: 49894863 (mov (mem64+ r8 #x63) rcx)"
" 1fb: 4981c5a8000000 (add r13 #xa8)"
" 202: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 20c: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 211: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 238"
" 218: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 21c: 48c7c501000000 (mov rbp #x1)"
" 223: 41ff64240d (jmp (mem64+ r12 #xd))"
" 228: 6902000000000000 (data)"
" 230: d5ab3d0400000000 (data)"
" 238: 4981eda8000000 (sub r13 #xa8) ; <="
" 23f: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 243: 4983c170 (add r9 #x70)"
" 247: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 24b: 0f82bd000000 (jb (+ rip #xbd)) ; => 30e"
" 251: 4d89e0 (mov r8 r12) ; <="
" 254: 48b9504d834400000000 (mov rcx #x44834d50) ; #<code>"
" 25e: 49894803 (mov (mem64+ r8 #x3) rcx)"
" 262: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 266: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 26a: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" 26e: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 272: 498b8da0000000 (mov rcx (mem64+ r13 #xa0))"
" 279: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 27d: 498b4d60 (mov rcx (mem64+ r13 #x60))"
" 281: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 285: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 289: 4989482b (mov (mem64+ r8 #x2b) rcx)"
" 28d: 498b4d68 (mov rcx (mem64+ r13 #x68))"
" 291: 49894833 (mov (mem64+ r8 #x33) rcx)"
" 295: 498b4d70 (mov rcx (mem64+ r13 #x70))"
" 299: 4989483b (mov (mem64+ r8 #x3b) rcx)"
" 29d: 498b4d50 (mov rcx (mem64+ r13 #x50))"
" 2a1: 49894843 (mov (mem64+ r8 #x43) rcx)"
" 2a5: 498b4d78 (mov rcx (mem64+ r13 #x78))"
" 2a9: 4989484b (mov (mem64+ r8 #x4b) rcx)"
" 2ad: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 2b1: 49894853 (mov (mem64+ r8 #x53) rcx)"
" 2b5: 498b4d48 (mov rcx (mem64+ r13 #x48))"
" 2b9: 4989485b (mov (mem64+ r8 #x5b) rcx)"
" 2bd: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 2c1: 49894863 (mov (mem64+ r8 #x63) rcx)"
" 2c5: 4983c508 (add r13 #x8)"
" 2c9: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 2d3: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d8: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 2ff"
" 2df: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 2e3: 48c7c501000000 (mov rbp #x1)"
" 2ea: 41ff64240d (jmp (mem64+ r12 #xd))"
" 2ef: 3003000000000000 (data)"
" 2f7: 0500000000000000 (data)"
" 2ff: 4983ed08 (sub r13 #x8) ; <="
" 303: 48c7c52e000000 (mov rbp #x2e)"
" 30a: 41ff6500 (jmp (mem64+ r13 #x0))"
" 30e: 49e88cb7d3fb (call (+ rip #x-42c4874)) ; #<code get-room> ; <="
" 314: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 31b: e931ffffff (jmp (+ rip #x-cf)) ; => 251"
" 320: 49e87ab7d3fb (call (+ rip #x-42c4886)) ; #<code get-room> ; <="
" 326: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 32d: e955feffff (jmp (+ rip #x-1ab)) ; => 187"
" 332: 49e868b7d3fb (call (+ rip #x-42c4898)) ; #<code get-room> ; <="
" 338: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 33f: e9b0fdffff (jmp (+ rip #x-250)) ; => f4"
" 344: 49e856b7d3fb (call (+ rip #x-42c48aa)) ; #<code get-room> ; <="
" 34a: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 351: e9f5fcffff (jmp (+ rip #x-30b)) ; => 4b"
" 356: 49895520 (mov (mem64+ r13 #x20) rdx) ; <="
" 35a: 49897530 (mov (mem64+ r13 #x30) rsi)"
" 35e: 4989bd88000000 (mov (mem64+ r13 #x88) rdi)"
" 365: 49898d90000000 (mov (mem64+ r13 #x90) rcx)"
" 36c: 4981c5a8000000 (add r13 #xa8)"
" 373: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 39a"
" 37a: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 37e: e90dfed5fb (jmp (+ rip #x-42a01f3)) ; #<code event>"
" 383: 0f1f8000000000cb (data)"
" 38b: 03000000000000d5 (data)"
" 393: bfbd0700000000 (data)"
" 39a: 4981eda8000000 (sub r13 #xa8) ; <="
" 3a1: 498b5520 (mov rdx (mem64+ r13 #x20))"
" 3a5: 498b7530 (mov rsi (mem64+ r13 #x30))"
" 3a9: 498bbd88000000 (mov rdi (mem64+ r13 #x88))"
" 3b0: 498b8d90000000 (mov rcx (mem64+ r13 #x90))"
" 3b7: e97dfcffff (jmp (+ rip #x-383)) ; => 39"
" 3bc: e8dfbbd3fb (call (+ rip #x-42c4421)) ; #<code dooverflow> ; <="
" 3c1: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 3c8: e961fcffff (jmp (+ rip #x-39f)) ; => 2e"
" 3cd: e93ec5d3fb (jmp (+ rip #x-42c3ac2)) ; #<code doargerr> ; <="
" 3d2: 0f1f8000000000 (data)"
"")
(begin-for-all
(define #0=(.get-syntax-literal! pos)
....
(define ||
(lambda (a0)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b7010000 (jz (+ rip #x1b7)) ; => 1c2"
" b: 4883fd01 (cmp rbp #x1)"
" f: 0f85a1010000 (jnz (+ rip #x1a1)) ; => 1b6"
" 15: 4c89c6 (mov rsi r8)"
" 18: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 0f867f010000 (jbe (+ rip #x17f)) ; => 1a5"
" 26: 498b4d08 (mov rcx (mem64+ r13 #x8)) ; <="
" 2a: 488b4923 (mov rcx (mem64+ rcx #x23))"
" 2e: 4c8b4109 (mov r8 (mem64+ rcx #x9))"
" 32: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 36: 488b491b (mov rcx (mem64+ rcx #x1b))"
" 3a: 488b4909 (mov rcx (mem64+ rcx #x9))"
" 3e: 4c89c2 (mov rdx r8)"
" 41: 4883e207 (and rdx #x7)"
" 45: 4883fa05 (cmp rdx #x5)"
" 49: 0f85f9000000 (jnz (+ rip #xf9)) ; => 148"
" 4f: 4d89c7 (mov r15 r8)"
" 52: 49c7452048000000 (mov (mem64+ r13 #x20) #x48) ; <="
" 5a: 48ba7f4bd44300000000 (mov rdx #x43d44b7f) ; '#(#:scope+kind macro #:scope+kind macro #:scope+kind module #:representative-scope module -1 #:representative-scope module 0 #:representative-scope module 0 #:scope+kind macro #:scope+kind macro #:scope+kind module)"
" 64: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 68: 49c7453048000000 (mov (mem64+ r13 #x30) #x48)"
" 70: 48ba2f4cd44300000000 (mov rdx #x43d44c2f) ; '#(#:multi-scope typed-again #:hasheqv 2 -1 #:ref 3 0 #:ref 4 #:multi-scope #%type-decl #:hasheqv 1 0 #:ref 5 #:seteq 2 #:shifted-multi-scope -1 #:ref 9 #:shifted-multi-scope 0 #:ref 10 #:cons #:mpi 20 #:mpi 10 #:cons #:mpi 21 #:mpi 11 #:list 2 #:ref 12..."
" 7a: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 7e: 48ba9f4ed44300000000 (mov rdx #x43d44e9f) ; '#(#f #:scope-fill! #:hasheq 1 fx+/wraparound4 #:hash 1 #:seteq 3 #:ref 4 #:ref 0 #:ref 1 #:module-binding #:mpi 21 fx+/wraparound4.1 0 #:mpi 21 0 fx+/wraparound4 0 #f #f () #f #:representative-scope-fill! #:table-with-bulk-bindings #:ref 16 #:cons #:bu..."
" 88: 49895540 (mov (mem64+ r13 #x40) rdx)"
" 8c: 48ba9f55d44300000000 (mov rdx #x43d4559f) ; (vector '#:vector 4 '#:syntax 'fx+/wraparound4 '#:vector 3 '#:seteq 3 '#:ref 0 '#:ref 1 '#:ref 2 '#:ref 11 '#:ref 14 #f '#:syntax 'fxabs2 '#:vector 3 '#:seteq 3 '#:ref 6 '#:ref 7 '#:ref 2 '#:ref 11 '#:ref 14 #f '#:syntax 'typed-abs 15 (srcloc #0=#<path:..."
" 96: 49895548 (mov (mem64+ r13 #x48) rdx)"
" 9a: 4989c8 (mov r8 rcx)"
" 9d: 48c7c706000000 (mov rdi #x6)"
" a4: 4983c518 (add r13 #x18)"
" a8: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => ce"
" af: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b3: 48c7c509000000 (mov rbp #x9)"
" ba: 41ff6703 (jmp (mem64+ r15 #x3))"
" be: ff00000000000000 (data)"
" c6: 8f00000000000000 (data)"
" ce: 4983ed18 (sub r13 #x18) ; <="
" d2: 4889ee (mov rsi rbp)"
" d5: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" d9: 4c8b4113 (mov r8 (mem64+ rcx #x13))"
" dd: 4831ff (xor rdi rdi)"
" e0: 4983c510 (add r13 #x10)"
" e4: 49bc2b00454200000000 (mov r12 #x4245002b) ; 'vector-copy!"
" ee: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 11a"
" fa: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" fe: 48c7c503000000 (mov rbp #x3)"
" 105: 41ff64240d (jmp (mem64+ r12 #xd))"
" 10a: 4b01000000000000 (data)"
" 112: 8900000000000000 (data)"
" 11a: 4983ed10 (sub r13 #x10) ; <="
" 11e: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 122: 4c8b410b (mov r8 (mem64+ rcx #xb))"
" 126: 48c7c706000000 (mov rdi #x6)"
" 12d: 49bccb60484200000000 (mov r12 #x424860cb) ; 'variable-set!"
" 137: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 13c: 48c7c502000000 (mov rbp #x2)"
" 143: 41ff64240d (jmp (mem64+ r12 #xd))"
" 148: 48c7c748000000 (mov rdi #x48) ; <="
" 14f: 49897510 (mov (mem64+ r13 #x10) rsi)"
" 153: 49894d18 (mov (mem64+ r13 #x18) rcx)"
" 157: 4983c520 (add r13 #x20)"
" 15b: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 165: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 16a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 191"
" 171: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 175: 48c7c502000000 (mov rbp #x2)"
" 17c: 41ff64240d (jmp (mem64+ r12 #xd))"
" 181: c201000000000000 (data)"
" 189: 9303000000000000 (data)"
" 191: 4983ed20 (sub r13 #x20) ; <="
" 195: 4989ef (mov r15 rbp)"
" 198: 498b7510 (mov rsi (mem64+ r13 #x10))"
" 19c: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1a0: e9adfeffff (jmp (+ rip #x-153)) ; => 52"
" 1a5: e856c083f8 (call (+ rip #x-77c3faa)) ; #<code dooverflow> ; <="
" 1aa: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1b1: e970feffff (jmp (+ rip #x-190)) ; => 26"
" 1b6: e9b5c983f8 (jmp (+ rip #x-77c364b)) ; #<code doargerr> ; <="
" 1bb: 0f1f8000000000 (data)"
" 1c2: e9d9ed83f8 (jmp (+ rip #x-77c1227)) ; #<code event-detour> ; <="
" 1c7: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd09 (cmp rbp #x9)"
" 4: 0f85a3010000 (jnz (+ rip #x1a3)) ; => 1ad"
" a: 498b5518 (mov rdx (mem64+ r13 #x18))"
" e: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 12: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 16: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1a: 0f867c010000 (jbe (+ rip #x17c)) ; => 19c"
" 20: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 25: 0f8425010000 (jz (+ rip #x125)) ; => 150"
" 2b: 49c7c020000000 (mov r8 #x20) ; <="
" 32: 48c7c706000000 (mov rdi #x6)"
" 39: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 3d: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 41: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 45: 4983c538 (add r13 #x38)"
" 49: 49bcfbce084000000000 (mov r12 #x4008cefb) ; 'make-vector"
" 53: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 58: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 7f"
" 5f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 63: 48c7c502000000 (mov rbp #x2)"
" 6a: 41ff64240d (jmp (mem64+ r12 #xd))"
" 6f: b000000000000000 (data)"
" 77: 1f1e000000000000 (data)"
" 7f: 4983ed38 (sub r13 #x38) ; <="
" 83: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 87: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 8b: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 8f: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 93: 4983c130 (add r9 #x30)"
" 97: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 9b: 0f829d000000 (jb (+ rip #x9d)) ; => 13e"
" a1: 4c89e7 (mov rdi r12) ; <="
" a4: 49b89054834400000000 (mov r8 #x44835490) ; #<code [>"
" ae: 4c894703 (mov (mem64+ rdi #x3) r8)"
" b2: 48894f0b (mov (mem64+ rdi #xb) rcx)"
" b6: 48896f13 (mov (mem64+ rdi #x13) rbp)"
" ba: 4889771b (mov (mem64+ rdi #x1b) rsi)"
" be: 48895723 (mov (mem64+ rdi #x23) rdx)"
" c2: 4989c8 (mov r8 rcx)"
" c5: 48c7c606000000 (mov rsi #x6)"
" cc: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" d0: 4983c530 (add r13 #x30)"
" d4: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" de: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" e3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 10a"
" ea: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" ee: 48c7c503000000 (mov rbp #x3)"
" f5: 41ff64240d (jmp (mem64+ r12 #xd))"
" fa: 3b01000000000000 (data)"
" 102: 9908000000000000 (data)"
" 10a: 4983ed30 (sub r13 #x30) ; <="
" 10e: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 112: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 116: 4889ef (mov rdi rbp)"
" 119: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" 123: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 12d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 132: 48c7c503000000 (mov rbp #x3)"
" 139: 41ff64240d (jmp (mem64+ r12 #xd))"
" 13e: 49e82cb3d3fb (call (+ rip #x-42c4cd4)) ; #<code get-room> ; <="
" 144: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 14b: e951ffffff (jmp (+ rip #x-af)) ; => a1"
" 150: 49895518 (mov (mem64+ r13 #x18) rdx) ; <="
" 154: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 158: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 15c: 4983c538 (add r13 #x38)"
" 160: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 187"
" 167: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 16b: e9f0f9d5fb (jmp (+ rip #x-42a0610)) ; #<code event>"
" 170: 0f1f8000000000b8 (data)"
" 178: 010000000000001d (data)"
" 180: 1e000000000000 (data)"
" 187: 4983ed38 (sub r13 #x38) ; <="
" 18b: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 18f: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 193: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 197: e98ffeffff (jmp (+ rip #x-171)) ; => 2b"
" 19c: e8cfb7d3fb (call (+ rip #x-42c4831)) ; #<code dooverflow> ; <="
" 1a1: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1a8: e973feffff (jmp (+ rip #x-18d)) ; => 20"
" 1ad: e92ec1d3fb (jmp (+ rip #x-42c3ed2)) ; #<code doargerr> ; <="
" 1b2: 0f1f8000000000 (data)"
"")
.
#1=(....))))
(begin-for-all
(define #0#
....
(define ||
(lambda (a0)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b7010000 (jz (+ rip #x1b7)) ; => 1c2"
" b: 4883fd01 (cmp rbp #x1)"
" f: 0f85a1010000 (jnz (+ rip #x1a1)) ; => 1b6"
" 15: 4c89c6 (mov rsi r8)"
" 18: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 0f867f010000 (jbe (+ rip #x17f)) ; => 1a5"
" 26: 498b4d08 (mov rcx (mem64+ r13 #x8)) ; <="
" 2a: 488b4923 (mov rcx (mem64+ rcx #x23))"
" 2e: 4c8b4109 (mov r8 (mem64+ rcx #x9))"
" 32: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 36: 488b491b (mov rcx (mem64+ rcx #x1b))"
" 3a: 488b4909 (mov rcx (mem64+ rcx #x9))"
" 3e: 4c89c2 (mov rdx r8)"
" 41: 4883e207 (and rdx #x7)"
" 45: 4883fa05 (cmp rdx #x5)"
" 49: 0f85f9000000 (jnz (+ rip #xf9)) ; => 148"
" 4f: 4d89c7 (mov r15 r8)"
" 52: 49c7452070000000 (mov (mem64+ r13 #x20) #x70) ; <="
" 5a: 48ba5f2fce4300000000 (mov rdx #x43ce2f5f) ; '#(#:scope+kind macro #:scope+kind macro #:representative-scope module -1 #:representative-scope module 0 #:scope+kind macro #:scope+kind macro #:scope+kind macro #:scope+kind macro #:scope+kind module #:hasheq #:hasheq #:scope+kind macro #:scope+kind m..."
" 64: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 68: 49c7453050000000 (mov (mem64+ r13 #x30) #x50)"
" 70: 48ba4f30ce4300000000 (mov rdx #x43ce304f) ; '#(#:multi-scope typed-again #:hasheqv 2 -1 #:ref 2 0 #:ref 3 #:seteq 1 #:shifted-multi-scope 0 #:ref 14 #:vector 3 #:seteq 2 #:ref 0 #:ref 1 #:ref 15 () #:vector 3 #:seteq 2 #:ref 5 #:ref 6 #:ref 15 () #:seteq 1 #:ref 8 #hasheq() #:cons #:cons #:mpi 9 ..."
" 7a: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 7e: 48badf32ce4300000000 (mov rdx #x43ce32df) ; (vector #f '#:scope-fill! '#:hasheq 1 'fxabs2 '#:hash 1 '#:seteq 3 '#:ref 3 '#:ref 0 '#:ref 1 '#:module-binding '#:mpi 5 'fxabs2.1 0 '#:mpi 5 0 'fxabs2 0 #f #f '() '#:representative-scope-fill! '#:table-with-bulk-bindings '#:ref 19 '#:cons '#:bulk-bindi..."
" 88: 49895540 (mov (mem64+ r13 #x40) rdx)"
" 8c: 48ba7f40ce4300000000 (mov rdx #x43ce407f) ; (vector '#:vector 5 '#:syntax 'fxabs2 16 #f '#:syntax 'fxabs1 '#:vector 3 '#:seteq 2 '#:ref 0 '#:ref 4 '#:ref 15 '() #f '#:syntax 'fx+/wraparound4 17 #f '#:syntax 'fx+/wraparound3 '#:vector 3 '#:seteq 2 '#:ref 5 '#:ref 7 '#:ref 15 '() #f '#:syntax '#:ve..."
" 96: 49895548 (mov (mem64+ r13 #x48) rdx)"
" 9a: 4989c8 (mov r8 rcx)"
" 9d: 48c7c706000000 (mov rdi #x6)"
" a4: 4983c518 (add r13 #x18)"
" a8: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => ce"
" af: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b3: 48c7c509000000 (mov rbp #x9)"
" ba: 41ff6703 (jmp (mem64+ r15 #x3))"
" be: ff00000000000000 (data)"
" c6: 8f00000000000000 (data)"
" ce: 4983ed18 (sub r13 #x18) ; <="
" d2: 4889ee (mov rsi rbp)"
" d5: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" d9: 4c8b4113 (mov r8 (mem64+ rcx #x13))"
" dd: 4831ff (xor rdi rdi)"
" e0: 4983c510 (add r13 #x10)"
" e4: 49bc2b00454200000000 (mov r12 #x4245002b) ; 'vector-copy!"
" ee: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 11a"
" fa: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" fe: 48c7c503000000 (mov rbp #x3)"
" 105: 41ff64240d (jmp (mem64+ r12 #xd))"
" 10a: 4b01000000000000 (data)"
" 112: 8900000000000000 (data)"
" 11a: 4983ed10 (sub r13 #x10) ; <="
" 11e: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 122: 4c8b410b (mov r8 (mem64+ rcx #xb))"
" 126: 48c7c706000000 (mov rdi #x6)"
" 12d: 49bccb60484200000000 (mov r12 #x424860cb) ; 'variable-set!"
" 137: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 13c: 48c7c502000000 (mov rbp #x2)"
" 143: 41ff64240d (jmp (mem64+ r12 #xd))"
" 148: 48c7c748000000 (mov rdi #x48) ; <="
" 14f: 49897510 (mov (mem64+ r13 #x10) rsi)"
" 153: 49894d18 (mov (mem64+ r13 #x18) rcx)"
" 157: 4983c520 (add r13 #x20)"
" 15b: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 165: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 16a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 191"
" 171: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 175: 48c7c502000000 (mov rbp #x2)"
" 17c: 41ff64240d (jmp (mem64+ r12 #xd))"
" 181: c201000000000000 (data)"
" 189: 9303000000000000 (data)"
" 191: 4983ed20 (sub r13 #x20) ; <="
" 195: 4989ef (mov r15 rbp)"
" 198: 498b7510 (mov rsi (mem64+ r13 #x10))"
" 19c: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1a0: e9adfeffff (jmp (+ rip #x-153)) ; => 52"
" 1a5: e8f6c883f8 (call (+ rip #x-77c370a)) ; #<code dooverflow> ; <="
" 1aa: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1b1: e970feffff (jmp (+ rip #x-190)) ; => 26"
" 1b6: e955d283f8 (jmp (+ rip #x-77c2dab)) ; #<code doargerr> ; <="
" 1bb: 0f1f8000000000 (data)"
" 1c2: e979f683f8 (jmp (+ rip #x-77c0987)) ; #<code event-detour> ; <="
" 1c7: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd09 (cmp rbp #x9)"
" 4: 0f85a3010000 (jnz (+ rip #x1a3)) ; => 1ad"
" a: 498b5518 (mov rdx (mem64+ r13 #x18))"
" e: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 12: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 16: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1a: 0f867c010000 (jbe (+ rip #x17c)) ; => 19c"
" 20: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 25: 0f8425010000 (jz (+ rip #x125)) ; => 150"
" 2b: 49c7c028000000 (mov r8 #x28) ; <="
" 32: 48c7c706000000 (mov rdi #x6)"
" 39: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 3d: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 41: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 45: 4983c538 (add r13 #x38)"
" 49: 49bcfbce084000000000 (mov r12 #x4008cefb) ; 'make-vector"
" 53: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 58: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 7f"
" 5f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 63: 48c7c502000000 (mov rbp #x2)"
" 6a: 41ff64240d (jmp (mem64+ r12 #xd))"
" 6f: b000000000000000 (data)"
" 77: 1f1e000000000000 (data)"
" 7f: 4983ed38 (sub r13 #x38) ; <="
" 83: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 87: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 8b: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 8f: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 93: 4983c130 (add r9 #x30)"
" 97: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 9b: 0f829d000000 (jb (+ rip #x9d)) ; => 13e"
" a1: 4c89e7 (mov rdi r12) ; <="
" a4: 49b87045d34700000000 (mov r8 #x47d34570) ; #<code [>"
" ae: 4c894703 (mov (mem64+ rdi #x3) r8)"
" b2: 48894f0b (mov (mem64+ rdi #xb) rcx)"
" b6: 48896f13 (mov (mem64+ rdi #x13) rbp)"
" ba: 4889771b (mov (mem64+ rdi #x1b) rsi)"
" be: 48895723 (mov (mem64+ rdi #x23) rdx)"
" c2: 4989c8 (mov r8 rcx)"
" c5: 48c7c606000000 (mov rsi #x6)"
" cc: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" d0: 4983c530 (add r13 #x30)"
" d4: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" de: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" e3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 10a"
" ea: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" ee: 48c7c503000000 (mov rbp #x3)"
" f5: 41ff64240d (jmp (mem64+ r12 #xd))"
" fa: 3b01000000000000 (data)"
" 102: 9908000000000000 (data)"
" 10a: 4983ed30 (sub r13 #x30) ; <="
" 10e: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 112: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 116: 4889ef (mov rdi rbp)"
" 119: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" 123: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 12d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 132: 48c7c503000000 (mov rbp #x3)"
" 139: 41ff64240d (jmp (mem64+ r12 #xd))"
" 13e: 49e85cc683f8 (call (+ rip #x-77c39a4)) ; #<code get-room> ; <="
" 144: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 14b: e951ffffff (jmp (+ rip #x-af)) ; => a1"
" 150: 49895518 (mov (mem64+ r13 #x18) rdx) ; <="
" 154: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 158: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 15c: 4983c538 (add r13 #x38)"
" 160: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 187"
" 167: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 16b: e9200d86f8 (jmp (+ rip #x-779f2e0)) ; #<code event>"
" 170: 0f1f8000000000b8 (data)"
" 178: 010000000000001d (data)"
" 180: 1e000000000000 (data)"
" 187: 4983ed38 (sub r13 #x38) ; <="
" 18b: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 18f: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 193: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 197: e98ffeffff (jmp (+ rip #x-171)) ; => 2b"
" 19c: e8ffca83f8 (call (+ rip #x-77c3501)) ; #<code dooverflow> ; <="
" 1a1: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1a8: e973feffff (jmp (+ rip #x-18d)) ; => 20"
" 1ad: e95ed483f8 (jmp (+ rip #x-77c2ba2)) ; #<code doargerr> ; <="
" 1b2: 0f1f8000000000 (data)"
"")
.
#1#)))
(module (example configure-runtime) ....
(require '#%kernel (lib "racket/runtime-config.rkt"))
(provide)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd04 (cmp rbp #x4)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 49c7c00e000000 (mov r8 #xe) ; <="
" 1a: 4983c508 (add r13 #x8)"
" 1e: 49bccbbe404200000000 (mov r12 #x4240becb) ; '1/print-as-expression"
" 28: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: 48c7c501000000 (mov rbp #x1)"
" 3f: 41ff64240d (jmp (mem64+ r12 #xd))"
" 44: 8500000000000000 (data)"
" 4c: 0500000000000000 (data)"
" 54: 4983ed08 (sub r13 #x8) ; <="
" 58: 48c7c52e000000 (mov rbp #x2e)"
" 5f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 63: e858ba83f8 (call (+ rip #x-77c45a8)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e9bac383f8 (jmp (+ rip #x-77c3c46)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e9dee783f8 (jmp (+ rip #x-77c1822)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
""))
(module (example typed) ....
(require (lib "typed/racket/base.rkt")
(lib "typed/racket/unsafe.rkt")
(lib "racket/unsafe/ops.rkt")
(lib "typed/racket/base.rkt")
(lib "typed/racket/unsafe.rkt")
(lib "racket/unsafe/ops.rkt")
(for-syntax
(lib "typed-racket/utils/redirect-contract.rkt")
(submod "." #%contract-defs-reference)))
(provide)
(define typed-clever
(lambda (a0)
"/app/compiled/example.rkt:93:3"
(#%assembly-code
" 0: 4883fd01 (cmp rbp #x1)"
" 4: 0f85aa000000 (jnz (+ rip #xaa)) ; => b4"
" a: 41f6c007 (test r8b #x7)"
" e: 0f8599000000 (jnz (+ rip #x99)) ; => ad"
" 14: 4983f800 (cmp r8 #x0)"
" 18: 0f8e8f000000 (jle (+ rip #x8f)) ; => ad"
" 1e: 48c7c208000000 (mov rdx #x8)"
" 25: 4831c9 (xor rcx rcx)"
" 28: 4889d5 (mov rbp rdx) ; <="
" 2b: 4983f800 (cmp r8 #x0)"
" 2f: 7475 (jz (+ rip #x75)) ; => a6"
" 31: 4983f808 (cmp r8 #x8)"
" 35: 746b (jz (+ rip #x6b)) ; => a2"
" 37: 488d540d00 (lea rdx (mem+ rbp #x0 (* rcx #x1)))"
" 3c: 4883fa00 (cmp rdx #x0)"
" 40: 7e59 (jle (+ rip #x59)) ; => 9b"
" 42: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 47: 7409 (jz (+ rip #x9)) ; => 52"
" 49: 4889e9 (mov rcx rbp) ; <="
" 4c: 4983c0f8 (add r8 #xfffffffffffffff8)"
" 50: ebd6 (jmp (+ rip #x-2a)) ; => 28"
" 52: 4d894508 (mov (mem64+ r13 #x8) r8) ; <="
" 56: 49896d10 (mov (mem64+ r13 #x10) rbp)"
" 5a: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 5e: 4983c520 (add r13 #x20)"
" 62: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 89"
" 69: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 6d: e98eef85f8 (jmp (+ rip #x-77a1072)) ; #<code event>"
" 72: 0f1f8000000000ba (data)"
" 7a: 0000000000000091 (data)"
" 82: 03000000000000 (data)"
" 89: 4983ed20 (sub r13 #x20) ; <="
" 8d: 4d8b4508 (mov r8 (mem64+ r13 #x8))"
" 91: 498b6d10 (mov rbp (mem64+ r13 #x10))"
" 95: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 99: ebae (jmp (+ rip #x-52)) ; => 49"
" 9b: 4831ed (xor rbp rbp) ; <="
" 9e: 41ff6500 (jmp (mem64+ r13 #x0))"
" a2: 41ff6500 (jmp (mem64+ r13 #x0)) ; <="
" a6: 4889cd (mov rbp rcx) ; <="
" a9: 41ff6500 (jmp (mem64+ r13 #x0))"
" ad: 4831ed (xor rbp rbp) ; <="
" b0: 41ff6500 (jmp (mem64+ r13 #x0))"
" b4: e987b183f8 (jmp (+ rip #x-77c4e79)) ; #<code doargerr> ; <="
" b9: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8484000000 (jz (+ rip #x84)) ; => 8f"
" b: 4883fd00 (cmp rbp #x0)"
" f: 7572 (jnz (+ rip #x72)) ; => 83"
" 11: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 15: 765e (jbe (+ rip #x5e)) ; => 75"
" 17: 4d8b470b (mov r8 (mem64+ r15 #xb)) ; <="
" 1b: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1f: 4983c510 (add r13 #x10)"
" 23: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 27: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 4d"
" 2e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 32: 48c7c501000000 (mov rbp #x1)"
" 39: 41ff6703 (jmp (mem64+ r15 #x3))"
" 3d: 7e00000000000000 (data)"
" 45: 8b00000000000000 (data)"
" 4d: 4983ed10 (sub r13 #x10) ; <="
" 51: 4d8b7d08 (mov r15 (mem64+ r13 #x8))"
" 55: 4989e8 (mov r8 rbp)"
" 58: 48c7c726000000 (mov rdi #x26)"
" 5f: 48c7c606000000 (mov rsi #x6)"
" 66: 4d8b7f1b (mov r15 (mem64+ r15 #x1b))"
" 6a: 48c7c503000000 (mov rbp #x3)"
" 71: 41ff6703 (jmp (mem64+ r15 #x3))"
" 75: e836a983f8 (call (+ rip #x-77c56ca)) ; #<code dooverflow> ; <="
" 7a: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 81: eb94 (jmp (+ rip #x-6c)) ; => 17"
" 83: e998b283f8 (jmp (+ rip #x-77c4d68)) ; #<code doargerr> ; <="
" 88: 0f1f8000000000 (data)"
" 8f: e9bcd683f8 (jmp (+ rip #x-77c2944)) ; #<code event-detour> ; <="
" 94: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd09 (cmp rbp #x9)"
" 4: 0f85bf010000 (jnz (+ rip #x1bf)) ; => 1c9"
" a: 4c89c1 (mov rcx r8)"
" d: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 11: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 15: 498b5528 (mov rdx (mem64+ r13 #x28))"
" 19: 498b7530 (mov rsi (mem64+ r13 #x30))"
" 1d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 21: 0f8691010000 (jbe (+ rip #x191)) ; => 1b8"
" 27: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 2c: 0f842a010000 (jz (+ rip #x12a)) ; => 15c"
" 32: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 36: 4983c120 (add r9 #x20)"
" 3a: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 3e: 0f8206010000 (jb (+ rip #x106)) ; => 14a"
" 44: 4d89e0 (mov r8 r12) ; <="
" 47: 49bb6066d34700000000 (mov r11 #x47d36660) ; #<code>"
" 51: 4d895803 (mov (mem64+ r8 #x3) r11)"
" 55: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 59: 4d897813 (mov (mem64+ r8 #x13) r15)"
" 5d: 4989781b (mov (mem64+ r8 #x1b) rdi)"
" 61: 49897538 (mov (mem64+ r13 #x38) rsi)"
" 65: 48bf59c7424100000000 (mov rdi #x4142c759) ; '(blame3.1)"
" 6f: 48be19c8424100000000 (mov rsi #x4142c819) ; '(constant)"
" 79: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 7d: 4983c530 (add r13 #x30)"
" 81: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 8b: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 90: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b7"
" 97: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 9b: 48c7c504000000 (mov rbp #x4)"
" a2: 41ff64240d (jmp (mem64+ r12 #xd))"
" a7: e800000000000000 (data)"
" af: 190c000000000000 (data)"
" b7: 4983ed30 (sub r13 #x30) ; <="
" bb: 498b5528 (mov rdx (mem64+ r13 #x28))"
" bf: 4989d0 (mov r8 rdx)"
" c2: 48b980eb054000000000 (mov rcx #x4005eb80) ; 'fx+/wraparound"
" cc: 488b39 (mov rdi (mem64+ rcx))"
" cf: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" d9: 4983c528 (add r13 #x28)"
" dd: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" e7: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" ec: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 113"
" f3: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" f7: 48c7c503000000 (mov rbp #x3)"
" fe: 41ff64240d (jmp (mem64+ r12 #xd))"
" 103: 4401000000000000 (data)"
" 10b: 1504000000000000 (data)"
" 113: 4983ed28 (sub r13 #x28) ; <="
" 117: 4d8b4520 (mov r8 (mem64+ r13 #x20))"
" 11b: 48bf3dc9424100000000 (mov rdi #x4142c93d) ; #<procedure:typed-clever>"
" 125: 48be4b6e484200000000 (mov rsi #x42486e4b) ; 'consistent"
" 12f: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 139: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 13e: 48c7c503000000 (mov rbp #x3)"
" 145: 41ff64240d (jmp (mem64+ r12 #xd))"
" 14a: 49e880a583f8 (call (+ rip #x-77c5a80)) ; #<code get-room> ; <="
" 150: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 157: e9e8feffff (jmp (+ rip #x-118)) ; => 44"
" 15c: 49894d18 (mov (mem64+ r13 #x18) rcx) ; <="
" 160: 49897d08 (mov (mem64+ r13 #x8) rdi)"
" 164: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 168: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 16c: 49897530 (mov (mem64+ r13 #x30) rsi)"
" 170: 4983c538 (add r13 #x38)"
" 174: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 19b"
" 17b: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 17f: e93cec85f8 (jmp (+ rip #x-77a13c4)) ; #<code event>"
" 184: 0f1f8000000000cc (data)"
" 18c: 010000000000009d (data)"
" 194: 1f000000000000 (data)"
" 19b: 4983ed38 (sub r13 #x38) ; <="
" 19f: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1a3: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 1a7: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 1ab: 498b5528 (mov rdx (mem64+ r13 #x28))"
" 1af: 498b7530 (mov rsi (mem64+ r13 #x30))"
" 1b3: e97afeffff (jmp (+ rip #x-186)) ; => 32"
" 1b8: e813aa83f8 (call (+ rip #x-77c55ed)) ; #<code dooverflow> ; <="
" 1bd: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1c4: e95efeffff (jmp (+ rip #x-1a2)) ; => 27"
" 1c9: e972b383f8 (jmp (+ rip #x-77c4c8e)) ; #<code doargerr> ; <="
" 1ce: 0f1f8000000000 (data)"
"")
(begin-for-syntax
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8417020000 (jz (+ rip #x217)) ; => 222"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8501020000 (jnz (+ rip #x201)) ; => 216"
" 15: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 19: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1d: 0f86e2010000 (jbe (+ rip #x1e2)) ; => 205"
" 23: 4d31c0 (xor r8 r8) ; <="
" 26: 4983c510 (add r13 #x10)"
" 2a: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 2e: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 8b00000000000000 (data)"
" 58: 4983ed10 (sub r13 #x10) ; <="
" 5c: 4989e8 (mov r8 rbp)"
" 5f: 48bf6b3b4f4200000000 (mov rdi #x424f3b6b) ; 'not-free-identifier=?"
" 69: 48c7c60e000000 (mov rsi #xe)"
" 70: 4983c510 (add r13 #x10)"
" 74: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 78: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 7c: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => a2"
" 83: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 87: 48c7c503000000 (mov rbp #x3)"
" 8e: 41ff6703 (jmp (mem64+ r15 #x3))"
" 92: d300000000000000 (data)"
" 9a: 8b00000000000000 (data)"
" a2: 4983ed10 (sub r13 #x10) ; <="
" a6: 4889e9 (mov rcx rbp)"
" a9: 49c7c008000000 (mov r8 #x8)"
" b0: 49894d10 (mov (mem64+ r13 #x10) rcx)"
" b4: 4983c518 (add r13 #x18)"
" b8: 498b4df0 (mov rcx (mem64+ r13 #x-10))"
" bc: 4c8b7913 (mov r15 (mem64+ rcx #x13))"
" c0: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => e6"
" c7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" cb: 48c7c501000000 (mov rbp #x1)"
" d2: 41ff6703 (jmp (mem64+ r15 #x3))"
" d6: 1701000000000000 (data)"
" de: 8f01000000000000 (data)"
" e6: 4983ed18 (sub r13 #x18) ; <="
" ea: 498b4d10 (mov rcx (mem64+ r13 #x10))"
" ee: 4889ee (mov rsi rbp)"
" f1: 4989c8 (mov r8 rcx)"
" f4: 48bffb7fda4800000000 (mov rdi #x48da7ffb) ; 'original-name"
" fe: 4983c510 (add r13 #x10)"
" 102: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 106: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 10a: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 130"
" 111: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 115: 48c7c503000000 (mov rbp #x3)"
" 11c: 41ff6703 (jmp (mem64+ r15 #x3))"
" 120: 6101000000000000 (data)"
" 128: 8b00000000000000 (data)"
" 130: 4983ed10 (sub r13 #x10) ; <="
" 134: 4989e8 (mov r8 rbp)"
" 137: 48bfcbc21b4600000000 (mov rdi #x461bc2cb) ; 'not-provide-all-defined"
" 141: 48c7c60e000000 (mov rsi #xe)"
" 148: 4983c510 (add r13 #x10)"
" 14c: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 150: 4c8b791b (mov r15 (mem64+ rcx #x1b))"
" 154: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 17a"
" 15b: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 15f: 48c7c503000000 (mov rbp #x3)"
" 166: 41ff6703 (jmp (mem64+ r15 #x3))"
" 16a: ab01000000000000 (data)"
" 172: 8b00000000000000 (data)"
" 17a: 4983ed10 (sub r13 #x10) ; <="
" 17e: 4989e8 (mov r8 rbp)"
" 181: 4983c510 (add r13 #x10)"
" 185: 498b4df8 (mov rcx (mem64+ r13 #x-8))"
" 189: 4c8b7923 (mov r15 (mem64+ rcx #x23))"
" 18d: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1b3"
" 194: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 198: 48c7c501000000 (mov rbp #x1)"
" 19f: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1a3: e401000000000000 (data)"
" 1ab: 8b00000000000000 (data)"
" 1b3: 4983ed10 (sub r13 #x10) ; <="
" 1b7: 4889ef (mov rdi rbp)"
" 1ba: 49b87beb054000000000 (mov r8 #x4005eb7b) ; 'fx+/wraparound"
" 1c4: 4983c508 (add r13 #x8)"
" 1c8: 498b4d00 (mov rcx (mem64+ r13 #x0))"
" 1cc: 4c8b790b (mov r15 (mem64+ rcx #xb))"
" 1d0: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 1f6"
" 1d7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1db: 48c7c502000000 (mov rbp #x2)"
" 1e2: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1e6: 2702000000000000 (data)"
" 1ee: 0500000000000000 (data)"
" 1f6: 4983ed08 (sub r13 #x8) ; <="
" 1fa: 48c7c52e000000 (mov rbp #x2e)"
" 201: 41ff6500 (jmp (mem64+ r13 #x0))"
" 205: e8b69883f8 (call (+ rip #x-77c674a)) ; #<code dooverflow> ; <="
" 20a: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 211: e90dfeffff (jmp (+ rip #x-1f3)) ; => 23"
" 216: e915a283f8 (jmp (+ rip #x-77c5deb)) ; #<code doargerr> ; <="
" 21b: 0f1f8000000000 (data)"
" 222: e939c683f8 (jmp (+ rip #x-77c39c7)) ; #<code event-detour> ; <="
" 227: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7425 (jz (+ rip #x25)) ; => 2c"
" 7: 4883fd00 (cmp rbp #x0)"
" b: 7513 (jnz (+ rip #x13)) ; => 20"
" d: 4d8b470b (mov r8 (mem64+ r15 #xb))"
" 11: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 15: 48c7c501000000 (mov rbp #x1)"
" 1c: 41ff6703 (jmp (mem64+ r15 #x3))"
" 20: e9bbc0d3fb (jmp (+ rip #x-42c3f45)) ; #<code doargerr> ; <="
" 25: 0f1f8000000000 (data)"
" 2c: e9dfe4d3fb (jmp (+ rip #x-42c1b21)) ; #<code event-detour> ; <="
" 31: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd00 (cmp rbp #x0)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 4d8b470b (mov r8 (mem64+ r15 #xb)) ; <="
" 17: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1b: 4983c510 (add r13 #x10)"
" 1f: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 23: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 49"
" 2a: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 2e: 48c7c501000000 (mov rbp #x1)"
" 35: 41ff6703 (jmp (mem64+ r15 #x3))"
" 39: 7a00000000000000 (data)"
" 41: 8b00000000000000 (data)"
" 49: 4983ed10 (sub r13 #x10) ; <="
" 4d: 4d8b7d08 (mov r15 (mem64+ r13 #x8))"
" 51: 4989e8 (mov r8 rbp)"
" 54: 4d8b7f1b (mov r15 (mem64+ r15 #x1b))"
" 58: 48c7c501000000 (mov rbp #x1)"
" 5f: 41ff6703 (jmp (mem64+ r15 #x3))"
" 63: e888b6d3fb (call (+ rip #x-42c4978)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e9eabfd3fb (jmp (+ rip #x-42c4016)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e90ee4d3fb (jmp (+ rip #x-42c1bf2)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd0a (cmp rbp #xa)"
" 4: 0f856d020000 (jnz (+ rip #x26d)) ; => 277"
" a: 4d89c7 (mov r15 r8)"
" d: 49897d48 (mov (mem64+ r13 #x48) rdi)"
" 11: 49897550 (mov (mem64+ r13 #x50) rsi)"
" 15: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 19: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 1d: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 21: 4d8b5d30 (mov r11 (mem64+ r13 #x30))"
" 25: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 29: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 2d: 0f8633020000 (jbe (+ rip #x233)) ; => 266"
" 33: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 38: 0f84c4010000 (jz (+ rip #x1c4)) ; => 202"
" 3e: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 42: 4983c120 (add r9 #x20)"
" 46: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 4a: 0f82a0010000 (jb (+ rip #x1a0)) ; => 1f0"
" 50: 4d89e0 (mov r8 r12) ; <="
" 53: 49ba2059834400000000 (mov r10 #x44835920) ; #<code>"
" 5d: 4d895003 (mov (mem64+ r8 #x3) r10)"
" 61: 4d89780b (mov (mem64+ r8 #xb) r15)"
" 65: 4d895813 (mov (mem64+ r8 #x13) r11)"
" 69: 4989781b (mov (mem64+ r8 #x1b) rdi)"
" 6d: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 71: 49897518 (mov (mem64+ r13 #x18) rsi)"
" 75: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 79: 4983c558 (add r13 #x58)"
" 7d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 87: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 8c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => b3"
" 93: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 97: 48c7c501000000 (mov rbp #x1)"
" 9e: 41ff64240d (jmp (mem64+ r12 #xd))"
" a3: e400000000000000 (data)"
" ab: 2daf010000000000 (data)"
" b3: 4983ed58 (sub r13 #x58) ; <="
" b7: 498b5510 (mov rdx (mem64+ r13 #x10))"
" bb: 498b7518 (mov rsi (mem64+ r13 #x18))"
" bf: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" c3: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" c7: 4983c120 (add r9 #x20)"
" cb: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" cf: 0f8209010000 (jb (+ rip #x109)) ; => 1de"
" d5: 4d89e0 (mov r8 r12) ; <="
" d8: 48bfa058834400000000 (mov rdi #x448358a0) ; #<code>"
" e2: 49897803 (mov (mem64+ r8 #x3) rdi)"
" e6: 4989700b (mov (mem64+ r8 #xb) rsi)"
" ea: 49895013 (mov (mem64+ r8 #x13) rdx)"
" ee: 49894d60 (mov (mem64+ r13 #x60) rcx)"
" f2: 48bf29f83c4800000000 (mov rdi #x483cf829) ; '(make-redirect4.1)"
" fc: 48be19f83c4800000000 (mov rsi #x483cf819) ; '(constant)"
" 106: 4983c558 (add r13 #x58)"
" 10a: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 114: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 119: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 140"
" 120: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 124: 48c7c504000000 (mov rbp #x4)"
" 12b: 41ff64240d (jmp (mem64+ r12 #xd))"
" 130: 7101000000000000 (data)"
" 138: 2d8c010000000000 (data)"
" 140: 4983ed58 (sub r13 #x58) ; <="
" 144: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 148: 4983c130 (add r9 #x30)"
" 14c: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 150: 727a (jb (+ rip #x7a)) ; => 1cc"
" 152: 4d89e0 (mov r8 r12) ; <="
" 155: 48b9f059834400000000 (mov rcx #x448359f0) ; #<code>"
" 15f: 49894803 (mov (mem64+ r8 #x3) rcx)"
" 163: 498b4d50 (mov rcx (mem64+ r13 #x50))"
" 167: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 16b: 498b4d48 (mov rcx (mem64+ r13 #x48))"
" 16f: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 173: 498b4d20 (mov rcx (mem64+ r13 #x20))"
" 177: 4989481b (mov (mem64+ r8 #x1b) rcx)"
" 17b: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 17f: 49894823 (mov (mem64+ r8 #x23) rcx)"
" 183: 4983c508 (add r13 #x8)"
" 187: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 191: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 196: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1bd"
" 19d: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 1a1: 48c7c501000000 (mov rbp #x1)"
" 1a8: 41ff64240d (jmp (mem64+ r12 #xd))"
" 1ad: ee01000000000000 (data)"
" 1b5: 0500000000000000 (data)"
" 1bd: 4983ed08 (sub r13 #x8) ; <="
" 1c1: 48c7c52e000000 (mov rbp #x2e)"
" 1c8: 41ff6500 (jmp (mem64+ r13 #x0))"
" 1cc: 49e8deacd3fb (call (+ rip #x-42c5322)) ; #<code get-room> ; <="
" 1d2: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1d9: e974ffffff (jmp (+ rip #x-8c)) ; => 152"
" 1de: 49e8ccacd3fb (call (+ rip #x-42c5334)) ; #<code get-room> ; <="
" 1e4: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1eb: e9e5feffff (jmp (+ rip #x-11b)) ; => d5"
" 1f0: 49e8baacd3fb (call (+ rip #x-42c5346)) ; #<code get-room> ; <="
" 1f6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1fd: e94efeffff (jmp (+ rip #x-1b2)) ; => 50"
" 202: 4d897d40 (mov (mem64+ r13 #x40) r15) ; <="
" 206: 49897d08 (mov (mem64+ r13 #x8) rdi)"
" 20a: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 20e: 49897518 (mov (mem64+ r13 #x18) rsi)"
" 212: 4d895d30 (mov (mem64+ r13 #x30) r11)"
" 216: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 21a: 4983c558 (add r13 #x58)"
" 21e: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 245"
" 225: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 229: e972f3d5fb (jmp (+ rip #x-42a0c8e)) ; #<code event>"
" 22e: 0f1f800000000076 (data)"
" 236: 02000000000000ad (data)"
" 23e: ff010000000000 (data)"
" 245: 4983ed58 (sub r13 #x58) ; <="
" 249: 4d8b7d40 (mov r15 (mem64+ r13 #x40))"
" 24d: 498b7d08 (mov rdi (mem64+ r13 #x8))"
" 251: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 255: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 259: 4d8b5d30 (mov r11 (mem64+ r13 #x30))"
" 25d: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 261: e9d8fdffff (jmp (+ rip #x-228)) ; => 3e"
" 266: e845b1d3fb (call (+ rip #x-42c4ebb)) ; #<code dooverflow> ; <="
" 26b: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 272: e9bcfdffff (jmp (+ rip #x-244)) ; => 33"
" 277: e9a4bad3fb (jmp (+ rip #x-42c455c)) ; #<code doargerr> ; <="
" 27c: 0f1f8000000000 (data)"
""))
(module (example typed #%contract-defs-reference) ....
(require (lib "racket/base.rkt")
(lib "racket/runtime-path.rkt")
(for-syntax (lib "racket/base.rkt")))
(provide contract-defs-submod)
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8439010000 (jz (+ rip #x139)) ; => 144"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f8523010000 (jnz (+ rip #x123)) ; => 138"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8608010000 (jbe (+ rip #x108)) ; => 127"
" 1f: 498b5713 (mov rdx (mem64+ r15 #x13)) ; <="
" 23: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 27: 4983c130 (add r9 #x30)"
" 2b: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 2f: 0f82e0000000 (jb (+ rip #xe0)) ; => 115"
" 35: 48b9cb29de4000000000 (mov rcx #x40de29cb) ; 'module ; <="
" 3f: 49894c2407 (mov (mem64+ r12 #x7) rcx)"
" 44: 498d4c2410 (lea rcx (mem+ r12 #x10))"
" 49: 49894c240f (mov (mem64+ r12 #xf) rcx)"
" 4e: 48b97958444400000000 (mov rcx #x44445879) ; '(submod \"..\" #%contract-defs)"
" 58: 49894c2417 (mov (mem64+ r12 #x17) rcx)"
" 5d: 498d4c2420 (lea rcx (mem+ r12 #x20))"
" 62: 49894c241f (mov (mem64+ r12 #x1f) rcx)"
" 67: 4989542427 (mov (mem64+ r12 #x27) rdx)"
" 6c: 49c744242f26000000 (mov (mem64+ r12 #x2f) #x26)"
" 75: 4c89e1 (mov rcx r12)"
" 78: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 7c: 4983c110 (add r9 #x10)"
" 80: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 84: 727d (jb (+ rip #x7d)) ; => 103"
" 86: 4c89e6 (mov rsi r12) ; <="
" 89: 48894e07 (mov (mem64+ rsi #x7) rcx)"
" 8d: 48c7460f26000000 (mov (mem64+ rsi #xf) #x26)"
" 95: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" 99: 48b9f05e3e4200000000 (mov rcx #x423e5ef0) ; 'void"
" a3: 488b39 (mov rdi (mem64+ rcx))"
" a6: 4983c508 (add r13 #x8)"
" aa: 4d8b7f0b (mov r15 (mem64+ r15 #xb))"
" ae: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => d4"
" b5: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b9: 48c7c503000000 (mov rbp #x3)"
" c0: 41ff6703 (jmp (mem64+ r15 #x3))"
" c4: 0501000000000000 (data)"
" cc: 0700000000000000 (data)"
" d4: 4983ed08 (sub r13 #x8) ; <="
" d8: 4889ef (mov rdi rbp)"
" db: 48b9e0d0084000000000 (mov rcx #x4008d0e0) ; 'values"
" e5: 4c8b01 (mov r8 (mem64+ rcx))"
" e8: 49bc0b42444200000000 (mov r12 #x4244420b) ; 'apply"
" f2: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f7: 48c7c502000000 (mov rbp #x2)"
" fe: 41ff64240d (jmp (mem64+ r12 #xd))"
" 103: 49e8b7b683f8 (call (+ rip #x-77c4949)) ; #<code get-room> ; <="
" 109: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 110: e971ffffff (jmp (+ rip #x-8f)) ; => 86"
" 115: 49e8a5b683f8 (call (+ rip #x-77c495b)) ; #<code get-room> ; <="
" 11b: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 122: e90effffff (jmp (+ rip #x-f2)) ; => 35"
" 127: e894bb83f8 (call (+ rip #x-77c446c)) ; #<code dooverflow> ; <="
" 12c: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 133: e9e7feffff (jmp (+ rip #x-119)) ; => 1f"
" 138: e9f3c483f8 (jmp (+ rip #x-77c3b0d)) ; #<code doargerr> ; <="
" 13d: 0f1f8000000000 (data)"
" 144: e917e983f8 (jmp (+ rip #x-77c16e9)) ; #<code event-detour> ; <="
" 149: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd05 (cmp rbp #x5)"
" 4: 0f8517010000 (jnz (+ rip #x117)) ; => 121"
" a: 4c89c1 (mov rcx r8)"
" d: 498b7508 (mov rsi (mem64+ r13 #x8))"
" 11: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f86f1000000 (jbe (+ rip #xf1)) ; => 110"
" 1f: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 24: 0f849a000000 (jz (+ rip #x9a)) ; => c4"
" 2a: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 2e: 4983c120 (add r9 #x20)"
" 32: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 36: 727a (jb (+ rip #x7a)) ; => b2"
" 38: 4d89e0 (mov r8 r12) ; <="
" 3b: 48bf5053d34700000000 (mov rdi #x47d35350) ; #<code>"
" 45: 49897803 (mov (mem64+ r8 #x3) rdi)"
" 49: 4989700b (mov (mem64+ r8 #xb) rsi)"
" 4d: 49894813 (mov (mem64+ r8 #x13) rcx)"
" 51: 49895510 (mov (mem64+ r13 #x10) rdx)"
" 55: 48bfe959444400000000 (mov rdi #x444459e9) ; '(contract-defs-submod)"
" 5f: 48bef959444400000000 (mov rsi #x444459f9) ; '(constant)"
" 69: 4983c508 (add r13 #x8)"
" 6d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 77: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 7c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => a3"
" 83: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 87: 48c7c504000000 (mov rbp #x4)"
" 8e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 93: d400000000000000 (data)"
" 9b: 0500000000000000 (data)"
" a3: 4983ed08 (sub r13 #x8) ; <="
" a7: 48c7c52e000000 (mov rbp #x2e)"
" ae: 41ff6500 (jmp (mem64+ r13 #x0))"
" b2: 49e878b883f8 (call (+ rip #x-77c4788)) ; #<code get-room> ; <="
" b8: 0f1f8000000000 (nop (mem32+ rax #x0))"
" bf: e974ffffff (jmp (+ rip #x-8c)) ; => 38"
" c4: 49894d18 (mov (mem64+ r13 #x18) rcx) ; <="
" c8: 49897508 (mov (mem64+ r13 #x8) rsi)"
" cc: 49895510 (mov (mem64+ r13 #x10) rdx)"
" d0: 4983c520 (add r13 #x20)"
" d4: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => fb"
" db: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" df: e93cff85f8 (jmp (+ rip #x-77a00c4)) ; #<code event>"
" e4: 0f1f80000000002c (data)"
" ec: 0100000000000091 (data)"
" f4: 03000000000000 (data)"
" fb: 4983ed20 (sub r13 #x20) ; <="
" ff: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 103: 498b7508 (mov rsi (mem64+ r13 #x8))"
" 107: 498b5510 (mov rdx (mem64+ r13 #x10))"
" 10b: e91affffff (jmp (+ rip #x-e6)) ; => 2a"
" 110: e81bbd83f8 (call (+ rip #x-77c42e5)) ; #<code dooverflow> ; <="
" 115: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 11c: e9fefeffff (jmp (+ rip #x-102)) ; => 1f"
" 121: e97ac683f8 (jmp (+ rip #x-77c3986)) ; #<code doargerr> ; <="
" 126: 0f1f8000000000 (data)"
"")
(begin-for-syntax
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84c0000000 (jz (+ rip #xc0)) ; => cb"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f85aa000000 (jnz (+ rip #xaa)) ; => bf"
" 15: 498b570b (mov rdx (mem64+ r15 #xb))"
" 19: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 1d: 4983c130 (add r9 #x30)"
" 21: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 25: 0f8282000000 (jb (+ rip #x82)) ; => ad"
" 2b: 48b9cb29de4000000000 (mov rcx #x40de29cb) ; 'module ; <="
" 35: 49894c2407 (mov (mem64+ r12 #x7) rcx)"
" 3a: 498d4c2410 (lea rcx (mem+ r12 #x10))"
" 3f: 49894c240f (mov (mem64+ r12 #xf) rcx)"
" 44: 48b9f915ce4000000000 (mov rcx #x40ce15f9) ; '(submod \"..\" #%contract-defs)"
" 4e: 49894c2417 (mov (mem64+ r12 #x17) rcx)"
" 53: 498d4c2420 (lea rcx (mem+ r12 #x20))"
" 58: 49894c241f (mov (mem64+ r12 #x1f) rcx)"
" 5d: 4989542427 (mov (mem64+ r12 #x27) rdx)"
" 62: 49c744242f26000000 (mov (mem64+ r12 #x2f) #x26)"
" 6b: 4c89e1 (mov rcx r12)"
" 6e: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 72: 4983c110 (add r9 #x10)"
" 76: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 7a: 7222 (jb (+ rip #x22)) ; => 9e"
" 7c: 4c89e7 (mov rdi r12) ; <="
" 7f: 48894f07 (mov (mem64+ rdi #x7) rcx)"
" 83: 48c7470f26000000 (mov (mem64+ rdi #xf) #x26)"
" 8b: 4d8b470b (mov r8 (mem64+ r15 #xb))"
" 8f: 4d8b7f13 (mov r15 (mem64+ r15 #x13))"
" 93: 48c7c502000000 (mov rbp #x2)"
" 9a: 41ff6703 (jmp (mem64+ r15 #x3))"
" 9e: 49e86cae83f8 (call (+ rip #x-77c5194)) ; #<code get-room> ; <="
" a4: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ab: ebcf (jmp (+ rip #x-31)) ; => 7c"
" ad: 49e85dae83f8 (call (+ rip #x-77c51a3)) ; #<code get-room> ; <="
" b3: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ba: e96cffffff (jmp (+ rip #x-94)) ; => 2b"
" bf: e9bcbc83f8 (jmp (+ rip #x-77c4344)) ; #<code doargerr> ; <="
" c4: 0f1f8000000000 (data)"
" cb: e9e0e083f8 (jmp (+ rip #x-77c1f20)) ; #<code event-detour> ; <="
" d0: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b3000000 (jz (+ rip #xb3)) ; => be"
" b: 4883fd04 (cmp rbp #x4)"
" f: 0f859d000000 (jnz (+ rip #x9d)) ; => b2"
" 15: 4c89c1 (mov rcx r8)"
" 18: 498b5508 (mov rdx (mem64+ r13 #x8))"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 767f (jbe (+ rip #x7f)) ; => a1"
" 22: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 26: 4983c120 (add r9 #x20)"
" 2a: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 2e: 7262 (jb (+ rip #x62)) ; => 92"
" 30: 4d89e0 (mov r8 r12) ; <="
" 33: 48be005cd34700000000 (mov rsi #x47d35c00) ; #<code>"
" 3d: 49897003 (mov (mem64+ r8 #x3) rsi)"
" 41: 4989480b (mov (mem64+ r8 #xb) rcx)"
" 45: 49895013 (mov (mem64+ r8 #x13) rdx)"
" 49: 4983c508 (add r13 #x8)"
" 4d: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 57: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 5c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 83"
" 63: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 67: 48c7c501000000 (mov rbp #x1)"
" 6e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 73: b400000000000000 (data)"
" 7b: 0500000000000000 (data)"
" 83: 4983ed08 (sub r13 #x8) ; <="
" 87: 48c7c52e000000 (mov rbp #x2e)"
" 8e: 41ff6500 (jmp (mem64+ r13 #x0))"
" 92: 49e888af83f8 (call (+ rip #x-77c5078)) ; #<code get-room> ; <="
" 98: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 9f: eb8f (jmp (+ rip #x-71)) ; => 30"
" a1: e87ab483f8 (call (+ rip #x-77c4b86)) ; #<code dooverflow> ; <="
" a6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" ad: e970ffffff (jmp (+ rip #x-90)) ; => 22"
" b2: e9d9bd83f8 (jmp (+ rip #x-77c4227)) ; #<code doargerr> ; <="
" b7: 0f1f8000000000 (data)"
" be: e9fde183f8 (jmp (+ rip #x-77c1e03)) ; #<code event-detour> ; <="
" c3: 0f1f8000000000 (data)"
""))
(module (example typed #%contract-defs-reference configure-runtime) ....
(require '#%kernel (lib "racket/runtime-config.rkt"))
(provide)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd04 (cmp rbp #x4)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 49c7c00e000000 (mov r8 #xe) ; <="
" 1a: 4983c508 (add r13 #x8)"
" 1e: 49bccbbe404200000000 (mov r12 #x4240becb) ; '1/print-as-expression"
" 28: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: 48c7c501000000 (mov rbp #x1)"
" 3f: 41ff64240d (jmp (mem64+ r12 #xd))"
" 44: 8500000000000000 (data)"
" 4c: 0500000000000000 (data)"
" 54: 4983ed08 (sub r13 #x8) ; <="
" 58: 48c7c52e000000 (mov rbp #x2e)"
" 5f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 63: e8b8a483f8 (call (+ rip #x-77c5b48)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e91aae83f8 (jmp (+ rip #x-77c51e6)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e93ed283f8 (jmp (+ rip #x-77c2dc2)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
"")))
(module (example typed #%contract-defs) ....
(require (submod "..")
(submod
(lib "typed-racket/private/type-contract.rkt")
predicates)
(lib "typed-racket/utils/utils.rkt")
(lib "typed-racket/utils/any-wrap.rkt")
(lib "typed-racket/utils/struct-type-c.rkt")
(lib "typed-racket/utils/prefab-c.rkt")
(lib "typed-racket/utils/opaque-object.rkt")
(lib "typed-racket/utils/evt-contract.rkt")
(lib "typed-racket/utils/hash-contract.rkt")
(lib "typed-racket/utils/vector-contract.rkt")
(lib "typed-racket/utils/sealing-contract.rkt")
(lib "typed-racket/utils/promise-not-name-contract.rkt")
(lib "typed-racket/utils/simple-result-arrow.rkt")
(lib "typed-racket/utils/eq-contract.rkt")
(lib "racket/sequence.rkt")
(lib "racket/contract/parametric.rkt")
(for-syntax (lib "typed-racket/utils/utils.rkt")))
(provide)
(#%assembly-code
" 0: 4883fd03 (cmp rbp #x3)"
" 4: 750b (jnz (+ rip #xb)) ; => 11"
" 6: 48c7c52e000000 (mov rbp #x2e)"
" d: 41ff6500 (jmp (mem64+ r13 #x0))"
" 11: e92ad97ff8 (jmp (+ rip #x-78026d6)) ; #<code doargerr> ; <="
" 16: 0f1f8000000000 (data)"
""))
(module (example typed configure-runtime) ....
(require '#%kernel (lib "racket/runtime-config.rkt"))
(provide)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 7476 (jz (+ rip #x76)) ; => 7d"
" 7: 4883fd04 (cmp rbp #x4)"
" b: 7564 (jnz (+ rip #x64)) ; => 71"
" d: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 11: 7650 (jbe (+ rip #x50)) ; => 63"
" 13: 49c7c00e000000 (mov r8 #xe) ; <="
" 1a: 4983c508 (add r13 #x8)"
" 1e: 49bccbbe404200000000 (mov r12 #x4240becb) ; '1/print-as-expression"
" 28: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 2d: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 54"
" 34: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 38: 48c7c501000000 (mov rbp #x1)"
" 3f: 41ff64240d (jmp (mem64+ r12 #xd))"
" 44: 8500000000000000 (data)"
" 4c: 0500000000000000 (data)"
" 54: 4983ed08 (sub r13 #x8) ; <="
" 58: 48c7c52e000000 (mov rbp #x2e)"
" 5f: 41ff6500 (jmp (mem64+ r13 #x0))"
" 63: e878c483f8 (call (+ rip #x-77c3b88)) ; #<code dooverflow> ; <="
" 68: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 6f: eba2 (jmp (+ rip #x-5e)) ; => 13"
" 71: e9dacd83f8 (jmp (+ rip #x-77c3226)) ; #<code doargerr> ; <="
" 76: 0f1f8000000000 (data)"
" 7d: e9fef183f8 (jmp (+ rip #x-77c0e02)) ; #<code event-detour> ; <="
" 82: 0f1f8000000000 (data)"
""))
(module (example typed #%type-decl) ....
(require (for-template (submod ".."))
(lib "typed-racket/types/numeric-tower.rkt")
(lib "typed-racket/env/type-name-env.rkt")
(lib "typed-racket/env/global-env.rkt")
(lib "typed-racket/env/type-alias-env.rkt")
(lib "typed-racket/types/struct-table.rkt")
(lib "typed-racket/types/abbrev.rkt")
(lib "typed-racket/env/struct-name-env.rkt")
(lib "racket/private/sort.rkt"))
(provide)
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84c3020000 (jz (+ rip #x2c3)) ; => 2ce"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f85ad020000 (jnz (+ rip #x2ad)) ; => 2c2"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8692020000 (jbe (+ rip #x292)) ; => 2b1"
" 1f: 49c7c008000000 (mov r8 #x8) ; <="
" 26: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 2a: 4983c518 (add r13 #x18)"
" 2e: 4d8b7f63 (mov r15 (mem64+ r15 #x63))"
" 32: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 58"
" 39: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 3d: 48c7c501000000 (mov rbp #x1)"
" 44: 41ff6703 (jmp (mem64+ r15 #x3))"
" 48: 8900000000000000 (data)"
" 50: 0f01000000000000 (data)"
" 58: 4983ed18 (sub r13 #x18) ; <="
" 5c: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 60: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 64: 498b575b (mov rdx (mem64+ r15 #x5b))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c110 (add r9 #x10)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f8225020000 (jb (+ rip #x225)) ; => 29f"
" 7a: 4c89e1 (mov rcx r12) ; <="
" 7d: 48895107 (mov (mem64+ rcx #x7) rdx)"
" 81: 48c7410f26000000 (mov (mem64+ rcx #xf) #x26)"
" 89: 498b5753 (mov rdx (mem64+ r15 #x53))"
" 8d: 49895520 (mov (mem64+ r13 #x20) rdx)"
" 91: 498b5743 (mov rdx (mem64+ r15 #x43))"
" 95: 4d8b472b (mov r8 (mem64+ r15 #x2b))"
" 99: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 9d: 498b7733 (mov rsi (mem64+ r15 #x33))"
" a1: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" a5: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" a9: 49895528 (mov (mem64+ r13 #x28) rdx)"
" ad: 4983c530 (add r13 #x30)"
" b1: 4d8b7f3b (mov r15 (mem64+ r15 #x3b))"
" b5: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => db"
" bc: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" c0: 48c7c503000000 (mov rbp #x3)"
" c7: 41ff6703 (jmp (mem64+ r15 #x3))"
" cb: 0c01000000000000 (data)"
" d3: 9b0f000000000000 (data)"
" db: 4983ed30 (sub r13 #x30) ; <="
" df: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" e3: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" e7: 498b5528 (mov rdx (mem64+ r13 #x28))"
" eb: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" ef: 4983c110 (add r9 #x10)"
" f3: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" f7: 0f8290010000 (jb (+ rip #x190)) ; => 28d"
" fd: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 102: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 10b: 4c89e6 (mov rsi r12)"
" 10e: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 112: 4983c110 (add r9 #x10)"
" 116: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 11a: 0f825b010000 (jb (+ rip #x15b)) ; => 27b"
" 120: 4989542401 (mov (mem64+ r12 #x1) rdx) ; <="
" 125: 4989742409 (mov (mem64+ r12 #x9) rsi)"
" 12a: 49c7453006000000 (mov (mem64+ r13 #x30) #x6)"
" 132: 49894d38 (mov (mem64+ r13 #x38) rcx)"
" 136: 4d896540 (mov (mem64+ r13 #x40) r12)"
" 13a: 49c7c026000000 (mov r8 #x26)"
" 141: 48c7c746000000 (mov rdi #x46)"
" 148: 48c7c646000000 (mov rsi #x46)"
" 14f: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 153: 4983c528 (add r13 #x28)"
" 157: 4d8b7f4b (mov r15 (mem64+ r15 #x4b))"
" 15b: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 181"
" 162: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 166: 48c7c506000000 (mov rbp #x6)"
" 16d: 41ff6703 (jmp (mem64+ r15 #x3))"
" 171: b201000000000000 (data)"
" 179: 1707000000000000 (data)"
" 181: 4983ed28 (sub r13 #x28) ; <="
" 185: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 189: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 18d: 4983c110 (add r9 #x10)"
" 191: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 195: 0f82ce000000 (jb (+ rip #xce)) ; => 269"
" 19b: 49896c2407 (mov (mem64+ r12 #x7) rbp) ; <="
" 1a0: 49c744240f26000000 (mov (mem64+ r12 #xf) #x26)"
" 1a9: 4c89e1 (mov rcx r12)"
" 1ac: 4d8d61ff (lea r12 (mem+ r9 #x-1))"
" 1b0: 4983c110 (add r9 #x10)"
" 1b4: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 1b8: 0f8299000000 (jb (+ rip #x99)) ; => 257"
" 1be: 498b5520 (mov rdx (mem64+ r13 #x20)) ; <="
" 1c2: 4989542401 (mov (mem64+ r12 #x1) rdx)"
" 1c7: 49894c2409 (mov (mem64+ r12 #x9) rcx)"
" 1cc: 498b4f1b (mov rcx (mem64+ r15 #x1b))"
" 1d0: 4883e107 (and rcx #x7)"
" 1d4: 4883f905 (cmp rcx #x5)"
" 1d8: 7522 (jnz (+ rip #x22)) ; => 1fc"
" 1da: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" 1de: 4d896508 (mov (mem64+ r13 #x8) r12) ; <="
" 1e2: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" 1e6: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" 1ea: 498b7518 (mov rsi (mem64+ r13 #x18))"
" 1ee: 4989ef (mov r15 rbp)"
" 1f1: 48c7c504000000 (mov rbp #x4)"
" 1f8: 41ff6703 (jmp (mem64+ r15 #x3))"
" 1fc: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" 200: 48c7c720000000 (mov rdi #x20)"
" 207: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 20b: 4d896508 (mov (mem64+ r13 #x8) r12)"
" 20f: 4983c520 (add r13 #x20)"
" 213: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 21d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 222: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 249"
" 229: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 22d: 48c7c502000000 (mov rbp #x2)"
" 234: 41ff64240d (jmp (mem64+ r12 #xd))"
" 239: 7a02000000000000 (data)"
" 241: 9303000000000000 (data)"
" 249: 4983ed20 (sub r13 #x20) ; <="
" 24d: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 251: 4d8b6508 (mov r12 (mem64+ r13 #x8))"
" 255: eb87 (jmp (+ rip #x-79)) ; => 1de"
" 257: 49e893a583f8 (call (+ rip #x-77c5a6d)) ; #<code get-room> ; <="
" 25d: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 264: e955ffffff (jmp (+ rip #x-ab)) ; => 1be"
" 269: 49e881a583f8 (call (+ rip #x-77c5a7f)) ; #<code get-room> ; <="
" 26f: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 276: e920ffffff (jmp (+ rip #x-e0)) ; => 19b"
" 27b: 49e86fa583f8 (call (+ rip #x-77c5a91)) ; #<code get-room> ; <="
" 281: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 288: e993feffff (jmp (+ rip #x-16d)) ; => 120"
" 28d: 49e85da583f8 (call (+ rip #x-77c5aa3)) ; #<code get-room> ; <="
" 293: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 29a: e95efeffff (jmp (+ rip #x-1a2)) ; => fd"
" 29f: 49e84ba583f8 (call (+ rip #x-77c5ab5)) ; #<code get-room> ; <="
" 2a5: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2ac: e9c9fdffff (jmp (+ rip #x-237)) ; => 7a"
" 2b1: e83aaa83f8 (call (+ rip #x-77c55c6)) ; #<code dooverflow> ; <="
" 2b6: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 2bd: e95dfdffff (jmp (+ rip #x-2a3)) ; => 1f"
" 2c2: e999b383f8 (jmp (+ rip #x-77c4c67)) ; #<code doargerr> ; <="
" 2c7: 0f1f8000000000 (data)"
" 2ce: e9bdd783f8 (jmp (+ rip #x-77c2843)) ; #<code event-detour> ; <="
" 2d3: 0f1f8000000000 (data)"
"")))
(define ....
(lambda ()
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f8485010000 (jz (+ rip #x185)) ; => 190"
" b: 4883fd00 (cmp rbp #x0)"
" f: 0f856f010000 (jnz (+ rip #x16f)) ; => 184"
" 15: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 19: 0f8654010000 (jbe (+ rip #x154)) ; => 173"
" 1f: 4d31c0 (xor r8 r8) ; <="
" 22: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 26: 4983c518 (add r13 #x18)"
" 2a: 4d8b7f33 (mov r15 (mem64+ r15 #x33))"
" 2e: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => 54"
" 35: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 39: 48c7c501000000 (mov rbp #x1)"
" 40: 41ff6703 (jmp (mem64+ r15 #x3))"
" 44: 8500000000000000 (data)"
" 4c: 0f01000000000000 (data)"
" 54: 4983ed18 (sub r13 #x18) ; <="
" 58: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 5c: 49896d18 (mov (mem64+ r13 #x18) rbp)"
" 60: 498b4f23 (mov rcx (mem64+ r15 #x23))"
" 64: 498b5723 (mov rdx (mem64+ r15 #x23))"
" 68: 4d8d61f9 (lea r12 (mem+ r9 #x-7))"
" 6c: 4983c120 (add r9 #x20)"
" 70: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 74: 0f82e7000000 (jb (+ rip #xe7)) ; => 161"
" 7a: 4d89e0 (mov r8 r12) ; <="
" 7d: 49894807 (mov (mem64+ r8 #x7) rcx)"
" 81: 498d4810 (lea rcx (mem+ r8 #x10))"
" 85: 4989480f (mov (mem64+ r8 #xf) rcx)"
" 89: 49895017 (mov (mem64+ r8 #x17) rdx)"
" 8d: 49c7401f26000000 (mov (mem64+ r8 #x1f) #x26)"
" 95: 498b7f23 (mov rdi (mem64+ r15 #x23))"
" 99: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 9d: 4983c520 (add r13 #x20)"
" a1: 4d8b7f2b (mov r15 (mem64+ r15 #x2b))"
" a5: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => cb"
" ac: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b0: 48c7c502000000 (mov rbp #x2)"
" b7: 41ff6703 (jmp (mem64+ r15 #x3))"
" bb: fc00000000000000 (data)"
" c3: 1303000000000000 (data)"
" cb: 4983ed20 (sub r13 #x20) ; <="
" cf: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" d3: 4889e9 (mov rcx rbp)"
" d6: 498b571b (mov rdx (mem64+ r15 #x1b))"
" da: 4883e207 (and rdx #x7)"
" de: 4883fa05 (cmp rdx #x5)"
" e2: 7522 (jnz (+ rip #x22)) ; => 106"
" e4: 498b6f1b (mov rbp (mem64+ r15 #x1b))"
" e8: 49894d08 (mov (mem64+ r13 #x8) rcx) ; <="
" ec: 4d8b4713 (mov r8 (mem64+ r15 #x13))"
" f0: 498b7f0b (mov rdi (mem64+ r15 #xb))"
" f4: 498b7518 (mov rsi (mem64+ r13 #x18))"
" f8: 4989ef (mov r15 rbp)"
" fb: 48c7c504000000 (mov rbp #x4)"
" 102: 41ff6703 (jmp (mem64+ r15 #x3))"
" 106: 4d8b471b (mov r8 (mem64+ r15 #x1b)) ; <="
" 10a: 48c7c720000000 (mov rdi #x20)"
" 111: 4d897d10 (mov (mem64+ r13 #x10) r15)"
" 115: 49894d08 (mov (mem64+ r13 #x8) rcx)"
" 119: 4983c520 (add r13 #x20)"
" 11d: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 127: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 12c: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 153"
" 133: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 137: 48c7c502000000 (mov rbp #x2)"
" 13e: 41ff64240d (jmp (mem64+ r12 #xd))"
" 143: 8401000000000000 (data)"
" 14b: 9303000000000000 (data)"
" 153: 4983ed20 (sub r13 #x20) ; <="
" 157: 4d8b7d10 (mov r15 (mem64+ r13 #x10))"
" 15b: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 15f: eb87 (jmp (+ rip #x-79)) ; => e8"
" 161: 49e869a883f8 (call (+ rip #x-77c5797)) ; #<code get-room> ; <="
" 167: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 16e: e907ffffff (jmp (+ rip #x-f9)) ; => 7a"
" 173: e858ad83f8 (call (+ rip #x-77c52a8)) ; #<code dooverflow> ; <="
" 178: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 17f: e99bfeffff (jmp (+ rip #x-165)) ; => 1f"
" 184: e9b7b683f8 (jmp (+ rip #x-77c4949)) ; #<code doargerr> ; <="
" 189: 0f1f8000000000 (data)"
" 190: e9dbda83f8 (jmp (+ rip #x-77c2525)) ; #<code event-detour> ; <="
" 195: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd15 (cmp rbp #x15)"
" 4: 0f857e020000 (jnz (+ rip #x27e)) ; => 288"
" a: 4d8b5d08 (mov r11 (mem64+ r13 #x8))"
" e: 4d8b5510 (mov r10 (mem64+ r13 #x10))"
" 12: 4d8b4520 (mov r8 (mem64+ r13 #x20))"
" 16: 498b5d58 (mov rbx (mem64+ r13 #x58))"
" 1a: 498b4d68 (mov rcx (mem64+ r13 #x68))"
" 1e: 498b5570 (mov rdx (mem64+ r13 #x70))"
" 22: 498b7578 (mov rsi (mem64+ r13 #x78))"
" 26: 498bad88000000 (mov rbp (mem64+ r13 #x88))"
" 2d: 4d8bbd90000000 (mov r15 (mem64+ r13 #x90))"
" 34: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 38: 0f8639020000 (jbe (+ rip #x239)) ; => 277"
" 3e: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 43: 0f8498010000 (jz (+ rip #x198)) ; => 1e1"
" 49: 4d8d61fd (lea r12 (mem+ r9 #x-3)) ; <="
" 4d: 4983c140 (add r9 #x40)"
" 51: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 55: 0f8274010000 (jb (+ rip #x174)) ; => 1cf"
" 5b: 48b84061d34700000000 (mov rax #x47d36140) ; #<code> ; <="
" 65: 4989442403 (mov (mem64+ r12 #x3) rax)"
" 6a: 4d895c240b (mov (mem64+ r12 #xb) r11)"
" 6f: 4d89542413 (mov (mem64+ r12 #x13) r10)"
" 74: 49896c241b (mov (mem64+ r12 #x1b) rbp)"
" 79: 49895c2423 (mov (mem64+ r12 #x23) rbx)"
" 7e: 4d8944242b (mov (mem64+ r12 #x2b) r8)"
" 83: 49897c2433 (mov (mem64+ r12 #x33) rdi)"
" 88: 4d89e0 (mov r8 r12)"
" 8b: 49897d18 (mov (mem64+ r13 #x18) rdi)"
" 8f: 4d895d08 (mov (mem64+ r13 #x8) r11)"
" 93: 4d895510 (mov (mem64+ r13 #x10) r10)"
" 97: 49894d68 (mov (mem64+ r13 #x68) rcx)"
" 9b: 49895570 (mov (mem64+ r13 #x70) rdx)"
" 9f: 49897578 (mov (mem64+ r13 #x78) rsi)"
" a3: 4d89bd90000000 (mov (mem64+ r13 #x90) r15)"
" aa: 4981c598000000 (add r13 #x98)"
" b1: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" bb: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" c0: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => e7"
" c7: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" cb: 48c7c501000000 (mov rbp #x1)"
" d2: 41ff64240d (jmp (mem64+ r12 #xd))"
" d7: 1801000000000000 (data)"
" df: cd6b3d0100000000 (data)"
" e7: 4981ed98000000 (sub r13 #x98) ; <="
" ee: 498b7d18 (mov rdi (mem64+ r13 #x18))"
" f2: 4d8b5d08 (mov r11 (mem64+ r13 #x8))"
" f6: 4d8b5510 (mov r10 (mem64+ r13 #x10))"
" fa: 498b4d68 (mov rcx (mem64+ r13 #x68))"
" fe: 498b5570 (mov rdx (mem64+ r13 #x70))"
" 102: 498b7578 (mov rsi (mem64+ r13 #x78))"
" 106: 4d8bbd90000000 (mov r15 (mem64+ r13 #x90))"
" 10d: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 111: 4983c170 (add r9 #x70)"
" 115: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 119: 0f829e000000 (jb (+ rip #x9e)) ; => 1bd"
" 11f: 4d89e0 (mov r8 r12) ; <="
" 122: 48bb2063d34700000000 (mov rbx #x47d36320) ; #<code>"
" 12c: 49895803 (mov (mem64+ r8 #x3) rbx)"
" 130: 4d89580b (mov (mem64+ r8 #xb) r11)"
" 134: 4d895013 (mov (mem64+ r8 #x13) r10)"
" 138: 4d89781b (mov (mem64+ r8 #x1b) r15)"
" 13c: 4d8b7d60 (mov r15 (mem64+ r13 #x60))"
" 140: 4d897823 (mov (mem64+ r8 #x23) r15)"
" 144: 4d8b7d50 (mov r15 (mem64+ r13 #x50))"
" 148: 4d89782b (mov (mem64+ r8 #x2b) r15)"
" 14c: 49894833 (mov (mem64+ r8 #x33) rcx)"
" 150: 4989503b (mov (mem64+ r8 #x3b) rdx)"
" 154: 498b4d40 (mov rcx (mem64+ r13 #x40))"
" 158: 49894843 (mov (mem64+ r8 #x43) rcx)"
" 15c: 4989704b (mov (mem64+ r8 #x4b) rsi)"
" 160: 498b4d28 (mov rcx (mem64+ r13 #x28))"
" 164: 49894853 (mov (mem64+ r8 #x53) rcx)"
" 168: 498b4d38 (mov rcx (mem64+ r13 #x38))"
" 16c: 4989485b (mov (mem64+ r8 #x5b) rcx)"
" 170: 49897863 (mov (mem64+ r8 #x63) rdi)"
" 174: 4983c508 (add r13 #x8)"
" 178: 49bc8b64484200000000 (mov r12 #x4248648b) ; 'call-with-module-prompt"
" 182: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 187: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 1ae"
" 18e: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 192: 48c7c501000000 (mov rbp #x1)"
" 199: 41ff64240d (jmp (mem64+ r12 #xd))"
" 19e: df01000000000000 (data)"
" 1a6: 0500000000000000 (data)"
" 1ae: 4983ed08 (sub r13 #x8) ; <="
" 1b2: 48c7c52e000000 (mov rbp #x2e)"
" 1b9: 41ff6500 (jmp (mem64+ r13 #x0))"
" 1bd: 49e8edaa83f8 (call (+ rip #x-77c5513)) ; #<code get-room> ; <="
" 1c3: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1ca: e950ffffff (jmp (+ rip #x-b0)) ; => 11f"
" 1cf: 49e8dbaa83f8 (call (+ rip #x-77c5525)) ; #<code get-room> ; <="
" 1d5: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1dc: e97afeffff (jmp (+ rip #x-186)) ; => 5b"
" 1e1: 49897d18 (mov (mem64+ r13 #x18) rdi) ; <="
" 1e5: 4d895d08 (mov (mem64+ r13 #x8) r11)"
" 1e9: 4d895510 (mov (mem64+ r13 #x10) r10)"
" 1ed: 4d894520 (mov (mem64+ r13 #x20) r8)"
" 1f1: 49895d58 (mov (mem64+ r13 #x58) rbx)"
" 1f5: 49894d68 (mov (mem64+ r13 #x68) rcx)"
" 1f9: 49895570 (mov (mem64+ r13 #x70) rdx)"
" 1fd: 49897578 (mov (mem64+ r13 #x78) rsi)"
" 201: 4989ad88000000 (mov (mem64+ r13 #x88) rbp)"
" 208: 4d89bd90000000 (mov (mem64+ r13 #x90) r15)"
" 20f: 4981c598000000 (add r13 #x98)"
" 216: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 23d"
" 21d: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 221: e97af185f8 (jmp (+ rip #x-77a0e86)) ; #<code event>"
" 226: 0f1f80000000006e (data)"
" 22e: 02000000000000cd (data)"
" 236: 6fbf0100000000 (data)"
" 23d: 4981ed98000000 (sub r13 #x98) ; <="
" 244: 498b7d18 (mov rdi (mem64+ r13 #x18))"
" 248: 4d8b5d08 (mov r11 (mem64+ r13 #x8))"
" 24c: 4d8b5510 (mov r10 (mem64+ r13 #x10))"
" 250: 4d8b4520 (mov r8 (mem64+ r13 #x20))"
" 254: 498b5d58 (mov rbx (mem64+ r13 #x58))"
" 258: 498b4d68 (mov rcx (mem64+ r13 #x68))"
" 25c: 498b5570 (mov rdx (mem64+ r13 #x70))"
" 260: 498b7578 (mov rsi (mem64+ r13 #x78))"
" 264: 498bad88000000 (mov rbp (mem64+ r13 #x88))"
" 26b: 4d8bbd90000000 (mov r15 (mem64+ r13 #x90))"
" 272: e9d2fdffff (jmp (+ rip #x-22e)) ; => 49"
" 277: e834af83f8 (call (+ rip #x-77c50cc)) ; #<code dooverflow> ; <="
" 27c: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 283: e9b6fdffff (jmp (+ rip #x-24a)) ; => 3e"
" 288: e993b883f8 (jmp (+ rip #x-77c476d)) ; #<code doargerr> ; <="
" 28d: 0f1f8000000000 (data)"
"")
(begin-for-all
(define #0#
....
(define ||
(lambda (a0)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b7010000 (jz (+ rip #x1b7)) ; => 1c2"
" b: 4883fd01 (cmp rbp #x1)"
" f: 0f85a1010000 (jnz (+ rip #x1a1)) ; => 1b6"
" 15: 4c89c6 (mov rsi r8)"
" 18: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 0f867f010000 (jbe (+ rip #x17f)) ; => 1a5"
" 26: 498b4d08 (mov rcx (mem64+ r13 #x8)) ; <="
" 2a: 488b4923 (mov rcx (mem64+ rcx #x23))"
" 2e: 4c8b4109 (mov r8 (mem64+ rcx #x9))"
" 32: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 36: 488b491b (mov rcx (mem64+ rcx #x1b))"
" 3a: 488b4909 (mov rcx (mem64+ rcx #x9))"
" 3e: 4c89c2 (mov rdx r8)"
" 41: 4883e207 (and rdx #x7)"
" 45: 4883fa05 (cmp rdx #x5)"
" 49: 0f85f9000000 (jnz (+ rip #xf9)) ; => 148"
" 4f: 4d89c7 (mov r15 r8)"
" 52: 49c7452038000000 (mov (mem64+ r13 #x20) #x38) ; <="
" 5a: 48ba5ff7a94400000000 (mov rdx #x44a9f75f) ; '#(#:scope+kind macro #:scope+kind macro #:scope+kind module #:representative-scope module -1 #:representative-scope module 0 #:representative-scope module 0 #:scope+kind module)"
" 64: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 68: 49c7453038000000 (mov (mem64+ r13 #x30) #x38)"
" 70: 48baeff7a94400000000 (mov rdx #x44a9f7ef) ; '#(#:multi-scope typed #:hasheqv 2 -1 #:ref 3 0 #:ref 4 #:multi-scope #%type-decl #:hasheqv 1 0 #:ref 5 #:seteq 2 #:shifted-multi-scope -1 #:ref 7 #:shifted-multi-scope 0 #:ref 8 #:cons #:mpi 20 #:mpi 10 #:cons #:mpi 21 #:mpi 11 #hasheq() #:seteq 2 #:re..."
" 7a: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 7e: 48ba5ff9a94400000000 (mov rdx #x44a9f95f) ; '#(#f #:scope-fill! #:hasheq 1 fx+/wraparound2 #:hash 1 #:seteq 3 #:ref 4 #:ref 0 #:ref 1 #:module-binding #:mpi 21 fx+/wraparound2.1 0 #:mpi 21 0 fx+/wraparound2 0 #f #f () #f #:representative-scope-fill! #:table-with-bulk-bindings #:ref 12 #:cons #:bu..."
" 88: 49895540 (mov (mem64+ r13 #x40) rdx)"
" 8c: 48ba0f01aa4400000000 (mov rdx #x44aa010f) ; (vector '#:vector 2 '#:syntax 'fx+/wraparound2 '#:vector 3 '#:seteq 3 '#:ref 0 '#:ref 1 '#:ref 2 '#:ref 9 '#:list 2 '#:ref 10 '#:ref 11 #f '#:syntax 'typed-clever '#:vector 3 '#:seteq 2 '#:ref 6 '#:ref 2 '#:ref 9 '#:list 4 '#:ref 10 '#:ref 11 '#:cons '#..."
" 96: 49895548 (mov (mem64+ r13 #x48) rdx)"
" 9a: 4989c8 (mov r8 rcx)"
" 9d: 48c7c706000000 (mov rdi #x6)"
" a4: 4983c518 (add r13 #x18)"
" a8: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => ce"
" af: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b3: 48c7c509000000 (mov rbp #x9)"
" ba: 41ff6703 (jmp (mem64+ r15 #x3))"
" be: ff00000000000000 (data)"
" c6: 8f00000000000000 (data)"
" ce: 4983ed18 (sub r13 #x18) ; <="
" d2: 4889ee (mov rsi rbp)"
" d5: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" d9: 4c8b4113 (mov r8 (mem64+ rcx #x13))"
" dd: 4831ff (xor rdi rdi)"
" e0: 4983c510 (add r13 #x10)"
" e4: 49bc2b00454200000000 (mov r12 #x4245002b) ; 'vector-copy!"
" ee: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 11a"
" fa: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" fe: 48c7c503000000 (mov rbp #x3)"
" 105: 41ff64240d (jmp (mem64+ r12 #xd))"
" 10a: 4b01000000000000 (data)"
" 112: 8900000000000000 (data)"
" 11a: 4983ed10 (sub r13 #x10) ; <="
" 11e: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 122: 4c8b410b (mov r8 (mem64+ rcx #xb))"
" 126: 48c7c706000000 (mov rdi #x6)"
" 12d: 49bccb60484200000000 (mov r12 #x424860cb) ; 'variable-set!"
" 137: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 13c: 48c7c502000000 (mov rbp #x2)"
" 143: 41ff64240d (jmp (mem64+ r12 #xd))"
" 148: 48c7c748000000 (mov rdi #x48) ; <="
" 14f: 49897510 (mov (mem64+ r13 #x10) rsi)"
" 153: 49894d18 (mov (mem64+ r13 #x18) rcx)"
" 157: 4983c520 (add r13 #x20)"
" 15b: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 165: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 16a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 191"
" 171: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 175: 48c7c502000000 (mov rbp #x2)"
" 17c: 41ff64240d (jmp (mem64+ r12 #xd))"
" 181: c201000000000000 (data)"
" 189: 9303000000000000 (data)"
" 191: 4983ed20 (sub r13 #x20) ; <="
" 195: 4989ef (mov r15 rbp)"
" 198: 498b7510 (mov rsi (mem64+ r13 #x10))"
" 19c: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1a0: e9adfeffff (jmp (+ rip #x-153)) ; => 52"
" 1a5: e8369d83f8 (call (+ rip #x-77c62ca)) ; #<code dooverflow> ; <="
" 1aa: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1b1: e970feffff (jmp (+ rip #x-190)) ; => 26"
" 1b6: e995a683f8 (jmp (+ rip #x-77c596b)) ; #<code doargerr> ; <="
" 1bb: 0f1f8000000000 (data)"
" 1c2: e9b9ca83f8 (jmp (+ rip #x-77c3547)) ; #<code event-detour> ; <="
" 1c7: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd09 (cmp rbp #x9)"
" 4: 0f85a3010000 (jnz (+ rip #x1a3)) ; => 1ad"
" a: 498b5518 (mov rdx (mem64+ r13 #x18))"
" e: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 12: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 16: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1a: 0f867c010000 (jbe (+ rip #x17c)) ; => 19c"
" 20: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 25: 0f8425010000 (jz (+ rip #x125)) ; => 150"
" 2b: 49c7c010000000 (mov r8 #x10) ; <="
" 32: 48c7c706000000 (mov rdi #x6)"
" 39: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 3d: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 41: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 45: 4983c538 (add r13 #x38)"
" 49: 49bcfbce084000000000 (mov r12 #x4008cefb) ; 'make-vector"
" 53: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 58: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 7f"
" 5f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 63: 48c7c502000000 (mov rbp #x2)"
" 6a: 41ff64240d (jmp (mem64+ r12 #xd))"
" 6f: b000000000000000 (data)"
" 77: 1f1e000000000000 (data)"
" 7f: 4983ed38 (sub r13 #x38) ; <="
" 83: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 87: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 8b: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 8f: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 93: 4983c130 (add r9 #x30)"
" 97: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 9b: 0f829d000000 (jb (+ rip #x9d)) ; => 13e"
" a1: 4c89e7 (mov rdi r12) ; <="
" a4: 49b83071d34700000000 (mov r8 #x47d37130) ; #<code [>"
" ae: 4c894703 (mov (mem64+ rdi #x3) r8)"
" b2: 48894f0b (mov (mem64+ rdi #xb) rcx)"
" b6: 48896f13 (mov (mem64+ rdi #x13) rbp)"
" ba: 4889771b (mov (mem64+ rdi #x1b) rsi)"
" be: 48895723 (mov (mem64+ rdi #x23) rdx)"
" c2: 4989c8 (mov r8 rcx)"
" c5: 48c7c606000000 (mov rsi #x6)"
" cc: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" d0: 4983c530 (add r13 #x30)"
" d4: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" de: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" e3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 10a"
" ea: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" ee: 48c7c503000000 (mov rbp #x3)"
" f5: 41ff64240d (jmp (mem64+ r12 #xd))"
" fa: 3b01000000000000 (data)"
" 102: 9908000000000000 (data)"
" 10a: 4983ed30 (sub r13 #x30) ; <="
" 10e: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 112: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 116: 4889ef (mov rdi rbp)"
" 119: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" 123: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 12d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 132: 48c7c503000000 (mov rbp #x3)"
" 139: 41ff64240d (jmp (mem64+ r12 #xd))"
" 13e: 49e89c9a83f8 (call (+ rip #x-77c6564)) ; #<code get-room> ; <="
" 144: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 14b: e951ffffff (jmp (+ rip #x-af)) ; => a1"
" 150: 49895518 (mov (mem64+ r13 #x18) rdx) ; <="
" 154: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 158: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 15c: 4983c538 (add r13 #x38)"
" 160: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 187"
" 167: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 16b: e960e185f8 (jmp (+ rip #x-77a1ea0)) ; #<code event>"
" 170: 0f1f8000000000b8 (data)"
" 178: 010000000000001d (data)"
" 180: 1e000000000000 (data)"
" 187: 4983ed38 (sub r13 #x38) ; <="
" 18b: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 18f: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 193: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 197: e98ffeffff (jmp (+ rip #x-171)) ; => 2b"
" 19c: e83f9f83f8 (call (+ rip #x-77c60c1)) ; #<code dooverflow> ; <="
" 1a1: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1a8: e973feffff (jmp (+ rip #x-18d)) ; => 20"
" 1ad: e99ea883f8 (jmp (+ rip #x-77c5762)) ; #<code doargerr> ; <="
" 1b2: 0f1f8000000000 (data)"
"")
.
#1#)))
(begin-for-all
(define #0#
....
(define ||
(lambda (a0)
(#%assembly-code
" 0: 49836e6801 (sub (mem64+ r14 #x68) #x1)"
" 5: 0f84b7010000 (jz (+ rip #x1b7)) ; => 1c2"
" b: 4883fd01 (cmp rbp #x1)"
" f: 0f85a1010000 (jnz (+ rip #x1a1)) ; => 1b6"
" 15: 4c89c6 (mov rsi r8)"
" 18: 4d897d08 (mov (mem64+ r13 #x8) r15)"
" 1c: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 20: 0f867f010000 (jbe (+ rip #x17f)) ; => 1a5"
" 26: 498b4d08 (mov rcx (mem64+ r13 #x8)) ; <="
" 2a: 488b4923 (mov rcx (mem64+ rcx #x23))"
" 2e: 4c8b4109 (mov r8 (mem64+ rcx #x9))"
" 32: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 36: 488b491b (mov rcx (mem64+ rcx #x1b))"
" 3a: 488b4909 (mov rcx (mem64+ rcx #x9))"
" 3e: 4c89c2 (mov rdx r8)"
" 41: 4883e207 (and rdx #x7)"
" 45: 4883fa05 (cmp rdx #x5)"
" 49: 0f85f9000000 (jnz (+ rip #xf9)) ; => 148"
" 4f: 4d89c7 (mov r15 r8)"
" 52: 49c7452058000000 (mov (mem64+ r13 #x20) #x58) ; <="
" 5a: 48ba1fa71f4700000000 (mov rdx #x471fa71f) ; '#(#:scope+kind macro #:scope+kind macro #:representative-scope module -1 #:representative-scope module 0 #:scope+kind macro #:scope+kind module #:hasheq #:hasheq #:scope+kind macro #:scope+kind macro #:scope+kind macro)"
" 64: 49895528 (mov (mem64+ r13 #x28) rdx)"
" 68: 49c7453048000000 (mov (mem64+ r13 #x30) #x48)"
" 70: 48badfa71f4700000000 (mov rdx #x471fa7df) ; '#(#:multi-scope typed #:hasheqv 2 -1 #:ref 2 0 #:ref 3 #:seteq 1 #:shifted-multi-scope 0 #:ref 11 #:vector 3 #:seteq 2 #:ref 0 #:ref 1 #:ref 12 () #:seteq 1 #:ref 5 #hasheq() #:cons #:cons #:mpi 9 #:mpi 10 () #:vector 3 #:ref 15 #:ref 15 () #:vector 3 ..."
" 7a: 49895538 (mov (mem64+ r13 #x38) rdx)"
" 7e: 48ba1faa1f4700000000 (mov rdx #x471faa1f) ; (vector #f '#:scope-fill! '#:hasheq 1 'fx+/wraparound2 '#:hash 1 '#:seteq 3 '#:ref 3 '#:ref 0 '#:ref 1 '#:module-binding '#:mpi 5 'fx+/wraparound2.1 0 '#:mpi 5 0 'fx+/wraparound2 0 #f #f '() '#:representative-scope-fill! '#:table-with-bulk-bindings '#:r..."
" 88: 49895540 (mov (mem64+ r13 #x40) rdx)"
" 8c: 48bacfb31f4700000000 (mov rdx #x471fb3cf) ; (vector '#:vector 3 '#:syntax 'fx+/wraparound2 13 #f '#:syntax 'fx+/wraparound1 '#:vector 3 '#:seteq 2 '#:ref 0 '#:ref 4 '#:ref 12 '() #f '#:syntax '#:vector 7 '#:syntax #f '#:vector 3 '#:ref 14 '#:ref 12 '() #f '#:syntax #f '#:vector 3 '#:ref 15 '#:ref..."
" 96: 49895548 (mov (mem64+ r13 #x48) rdx)"
" 9a: 4989c8 (mov r8 rcx)"
" 9d: 48c7c706000000 (mov rdi #x6)"
" a4: 4983c518 (add r13 #x18)"
" a8: 488d0d1f000000 (lea rcx (mem+ rip #x1f)) ; => ce"
" af: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" b3: 48c7c509000000 (mov rbp #x9)"
" ba: 41ff6703 (jmp (mem64+ r15 #x3))"
" be: ff00000000000000 (data)"
" c6: 8f00000000000000 (data)"
" ce: 4983ed18 (sub r13 #x18) ; <="
" d2: 4889ee (mov rsi rbp)"
" d5: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" d9: 4c8b4113 (mov r8 (mem64+ rcx #x13))"
" dd: 4831ff (xor rdi rdi)"
" e0: 4983c510 (add r13 #x10)"
" e4: 49bc2b00454200000000 (mov r12 #x4245002b) ; 'vector-copy!"
" ee: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" f3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 11a"
" fa: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" fe: 48c7c503000000 (mov rbp #x3)"
" 105: 41ff64240d (jmp (mem64+ r12 #xd))"
" 10a: 4b01000000000000 (data)"
" 112: 8900000000000000 (data)"
" 11a: 4983ed10 (sub r13 #x10) ; <="
" 11e: 498b4d08 (mov rcx (mem64+ r13 #x8))"
" 122: 4c8b410b (mov r8 (mem64+ rcx #xb))"
" 126: 48c7c706000000 (mov rdi #x6)"
" 12d: 49bccb60484200000000 (mov r12 #x424860cb) ; 'variable-set!"
" 137: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 13c: 48c7c502000000 (mov rbp #x2)"
" 143: 41ff64240d (jmp (mem64+ r12 #xd))"
" 148: 48c7c748000000 (mov rdi #x48) ; <="
" 14f: 49897510 (mov (mem64+ r13 #x10) rsi)"
" 153: 49894d18 (mov (mem64+ r13 #x18) rcx)"
" 157: 4983c520 (add r13 #x20)"
" 15b: 49bc2b83454200000000 (mov r12 #x4245832b) ; 'slow-extract-procedure"
" 165: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 16a: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 191"
" 171: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 175: 48c7c502000000 (mov rbp #x2)"
" 17c: 41ff64240d (jmp (mem64+ r12 #xd))"
" 181: c201000000000000 (data)"
" 189: 9303000000000000 (data)"
" 191: 4983ed20 (sub r13 #x20) ; <="
" 195: 4989ef (mov r15 rbp)"
" 198: 498b7510 (mov rsi (mem64+ r13 #x10))"
" 19c: 498b4d18 (mov rcx (mem64+ r13 #x18))"
" 1a0: e9adfeffff (jmp (+ rip #x-153)) ; => 52"
" 1a5: e8d6cb83f8 (call (+ rip #x-77c342a)) ; #<code dooverflow> ; <="
" 1aa: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1b1: e970feffff (jmp (+ rip #x-190)) ; => 26"
" 1b6: e935d583f8 (jmp (+ rip #x-77c2acb)) ; #<code doargerr> ; <="
" 1bb: 0f1f8000000000 (data)"
" 1c2: e959f983f8 (jmp (+ rip #x-77c06a7)) ; #<code event-detour> ; <="
" 1c7: 0f1f8000000000 (data)"
"")))
(#%assembly-code
" 0: 4883fd09 (cmp rbp #x9)"
" 4: 0f85a3010000 (jnz (+ rip #x1a3)) ; => 1ad"
" a: 498b5518 (mov rdx (mem64+ r13 #x18))"
" e: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 12: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 16: 4d396e48 (cmp (mem64+ r14 #x48) r13)"
" 1a: 0f867c010000 (jbe (+ rip #x17c)) ; => 19c"
" 20: 49836e6801 (sub (mem64+ r14 #x68) #x1) ; <="
" 25: 0f8425010000 (jz (+ rip #x125)) ; => 150"
" 2b: 49c7c018000000 (mov r8 #x18) ; <="
" 32: 48c7c706000000 (mov rdi #x6)"
" 39: 49895518 (mov (mem64+ r13 #x18) rdx)"
" 3d: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 41: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 45: 4983c538 (add r13 #x38)"
" 49: 49bcfbce084000000000 (mov r12 #x4008cefb) ; 'make-vector"
" 53: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 58: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 7f"
" 5f: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 63: 48c7c502000000 (mov rbp #x2)"
" 6a: 41ff64240d (jmp (mem64+ r12 #xd))"
" 6f: b000000000000000 (data)"
" 77: 1f1e000000000000 (data)"
" 7f: 4983ed38 (sub r13 #x38) ; <="
" 83: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 87: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 8b: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 8f: 4d8d61fd (lea r12 (mem+ r9 #x-3))"
" 93: 4983c130 (add r9 #x30)"
" 97: 4d394e58 (cmp (mem64+ r14 #x58) r9)"
" 9b: 0f829d000000 (jb (+ rip #x9d)) ; => 13e"
" a1: 4c89e7 (mov rdi r12) ; <="
" a4: 49b89042d34700000000 (mov r8 #x47d34290) ; #<code [>"
" ae: 4c894703 (mov (mem64+ rdi #x3) r8)"
" b2: 48894f0b (mov (mem64+ rdi #xb) rcx)"
" b6: 48896f13 (mov (mem64+ rdi #x13) rbp)"
" ba: 4889771b (mov (mem64+ rdi #x1b) rsi)"
" be: 48895723 (mov (mem64+ rdi #x23) rdx)"
" c2: 4989c8 (mov r8 rcx)"
" c5: 48c7c606000000 (mov rsi #x6)"
" cc: 49896d08 (mov (mem64+ r13 #x8) rbp)"
" d0: 4983c530 (add r13 #x30)"
" d4: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" de: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" e3: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 10a"
" ea: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" ee: 48c7c503000000 (mov rbp #x3)"
" f5: 41ff64240d (jmp (mem64+ r12 #xd))"
" fa: 3b01000000000000 (data)"
" 102: 9908000000000000 (data)"
" 10a: 4983ed30 (sub r13 #x30) ; <="
" 10e: 498b6d08 (mov rbp (mem64+ r13 #x8))"
" 112: 4d8b4528 (mov r8 (mem64+ r13 #x28))"
" 116: 4889ef (mov rdi rbp)"
" 119: 48be9bbeea4000000000 (mov rsi #x40eabe9b) ; 'constant"
" 123: 49bc2b61484200000000 (mov r12 #x4248612b) ; 'variable-set!/define"
" 12d: 4d8b7c2405 (mov r15 (mem64+ r12 #x5))"
" 132: 48c7c503000000 (mov rbp #x3)"
" 139: 41ff64240d (jmp (mem64+ r12 #xd))"
" 13e: 49e83cc983f8 (call (+ rip #x-77c36c4)) ; #<code get-room> ; <="
" 144: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 14b: e951ffffff (jmp (+ rip #x-af)) ; => a1"
" 150: 49895518 (mov (mem64+ r13 #x18) rdx) ; <="
" 154: 49897520 (mov (mem64+ r13 #x20) rsi)"
" 158: 49894d30 (mov (mem64+ r13 #x30) rcx)"
" 15c: 4983c538 (add r13 #x38)"
" 160: 488d0d20000000 (lea rcx (mem+ rip #x20)) ; => 187"
" 167: 49894d00 (mov (mem64+ r13 #x0) rcx)"
" 16b: e9001086f8 (jmp (+ rip #x-779f000)) ; #<code event>"
" 170: 0f1f8000000000b8 (data)"
" 178: 010000000000001d (data)"
" 180: 1e000000000000 (data)"
" 187: 4983ed38 (sub r13 #x38) ; <="
" 18b: 498b5518 (mov rdx (mem64+ r13 #x18))"
" 18f: 498b7520 (mov rsi (mem64+ r13 #x20))"
" 193: 498b4d30 (mov rcx (mem64+ r13 #x30))"
" 197: e98ffeffff (jmp (+ rip #x-171)) ; => 2b"
" 19c: e8dfcd83f8 (call (+ rip #x-77c3221)) ; #<code dooverflow> ; <="
" 1a1: 0f1f8000000000 (nop (mem32+ rax #x0))"
" 1a8: e973feffff (jmp (+ rip #x-18d)) ; => 20"
" 1ad: e93ed783f8 (jmp (+ rip #x-77c28c2)) ; #<code doargerr> ; <="
" 1b2: 0f1f8000000000 (data)"
"")
.
#1#))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment