ソースを参照

Make emit a vararg function

Lucas Stadler 8 年 前
コミット
db360411a0
共有1 個のファイルを変更した4 個の追加9 個の削除を含む
  1. 4 9
      scm/inc/compiler.scm

+ 4 - 9
scm/inc/compiler.scm

@ -1,17 +1,12 @@
1
(define (emit1 instr arg)
1
(define (emit instr . args)
2 2
  (display "\t")
3
  (display (format instr arg))
4
  (display "\n"))
5
6
(define (emit0 instr)
7
  (display "\t")
8
  (display instr)
3
  (display (apply format instr args))
9 4
  (display "\n"))
10 5
11 6
(define (compile-program x)
12 7
  (display "\t.globl scheme_entry\n\n")
13 8
  (display "scheme_entry:\n")
14
  (emit1 "movl $~a, %eax" x)
15
  (emit0 "ret"))
9
  (emit "movl $~a, %eax" x)
10
  (emit "ret"))
16 11
17 12
(compile-program 42)