Reset label and lambda counters on compile
authorLuke Lau <luke_lau@icloud.com>
Mon, 29 Jul 2019 23:49:14 +0000 (00:49 +0100)
committerLuke Lau <luke_lau@icloud.com>
Mon, 29 Jul 2019 23:49:14 +0000 (00:49 +0100)
Also emit some comments in the assembly for debugging

codegen.scm

index c73677325f899e064200b678182e6290d9fe6b2d..52c494bb233fb728ff907fa5fed63db57fb05478 100644 (file)
     (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)))