diff --git a/langs/loot/compile.rkt b/langs/loot/compile.rkt index ac335fec..081149cd 100644 --- a/langs/loot/compile.rkt +++ b/langs/loot/compile.rkt @@ -300,7 +300,8 @@ (Push rcx) ; Actually call the function - (Call (Offset rax 0)) + (Mov rax (Offset rax 0)) + (Call rax) ; Get the size of the env off the stack (Pop rcx) @@ -476,7 +477,7 @@ [(Lam lab as body) (let ((ys (fvs l))) (seq - (Lea rax (Offset (symbol->label lab) 0)) + (Lea rax (symbol->label lab)) (Mov (Offset rbx 0) rax) (Mov rax (length ys)) (Mov (Offset rbx 8) rax) diff --git a/langs/loot/unload-bits-asm.rkt b/langs/loot/unload-bits-asm.rkt index 4946fe26..e2283dc5 100644 --- a/langs/loot/unload-bits-asm.rkt +++ b/langs/loot/unload-bits-asm.rkt @@ -7,8 +7,7 @@ (define (unload/free a) (match a ['err 'err] - [(cons h v) (begin0 (unload-value v) - (free h))])) + [(cons h v) (unload-value v)])) ;; Value* -> Value (define (unload-value v)