File tree Expand file tree Collapse file tree 1 file changed +0
-22
lines changed
Expand file tree Collapse file tree 1 file changed +0
-22
lines changed Original file line number Diff line number Diff line change 200200 (sub rcx 8 )
201201 (jmp ,copy-loop)
202202 ,copy-done)))
203- #|
204- ;; Natural -> Asm
205- ;; Copy closure's (in rax) env to stack skipping n spots
206- (define (copy-closure-env-to-stack n)
207- (let ((copy-loop (gensym 'copy_closure))
208- (copy-done (gensym 'copy_done)))
209- `((mov r8 (offset rax 1)) ; length
210- (mov r9 rax)
211- (add r9 16) ; start of env
212- (mov rcx rsp) ; start of stack
213- (add rcx ,(- (* 8 (add1 n))))
214- ,copy-loop
215- (cmp r8 0)
216- (je ,copy-done)
217- (mov rbx (offset r9 0))
218- (mov (offset rcx 0) rbx)
219- (sub r8 1)
220- (add r9 8)
221- (sub rcx 8)
222- (jmp ,copy-loop)
223- ,copy-done)))
224- |#
225203
226204;; (Listof Variable) (Listof Lambda) Expr CEnv -> Asm
227205(define (compile-letrec fs ls e c)
You can’t perform that action at this time.
0 commit comments