Add notes on ownership
[scheme.git] / codegen.scm
index 00e01296af20661539f8fda3d882c6fa39547092..52c494bb233fb728ff907fa5fed63db57fb05478 100644 (file)
@@ -46,9 +46,9 @@
   (codegen-expr a si env)
   (emit "movq %rax, ~a(%rbp)" si)
   (codegen-expr b (- si wordsize) env)
-  (emit "subq ~a(%rbp), %rax" si)
-  (emit "not %rax")
-  (emit "andq $1, %rax"))
+  (emit "## ~a = ~b" a b)
+  (emit "cmpq ~a(%rbp), %rax" si)
+  (emit "sete %al"))
 
                                        ; 'write file handle addr-string num-bytes
 
     (emit "~a:" exit-label)))
 
 (define (codegen-expr e si env)
+  (emit "# ~a" e)
   (case (ast-type e)
     ('closure (codegen-closure (cadr e) (caddr e) si env))
     ('app
     (emit "movq %rax, (%rsi)")))
 
 (define (codegen program)
+  (set! cur-label 0)
+  (set! cur-lambda 0)
   (let* ((extract-res-0 (extract-strings program))
         (strings (car extract-res-0))
         (extract-res-1 (extract-lambdas (cdr extract-res-0)))