diff options
Diffstat (limited to 'src/backend/tacky/traverse.scm')
-rw-r--r-- | src/backend/tacky/traverse.scm | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/backend/tacky/traverse.scm b/src/backend/tacky/traverse.scm index aec0f23..022d961 100644 --- a/src/backend/tacky/traverse.scm +++ b/src/backend/tacky/traverse.scm @@ -1,24 +1,23 @@ (define-module (backend tacky traverse) #:use-module (backend ast ir) - #:export (func - stmt - unary - const)) + #:export (func-ir + stmt-ir + )) -(define (func name instrs) - (list 'srout name instrs)) +(define (func-ir name instrs) + (list 'srout-ir name instrs)) -(define (stmt val) - (list 'instrs +(define (stmt-ir val) + (list 'instrs-ir (cons 'list (append (cdr val) - (list (list 'ret (car val))))))) + (list (list 'ret-ir (car val))))))) -(define (expr op val) +(define (expr-ir op val) (make-instruction op (car val) (cdr val))) -(define (const val) - (cons (imm val) '())) +(define (const-ir val) + (cons (imm-ir val) '())) (define (make-instruction op src instrs) (let ((dst (make-temporary))) @@ -30,4 +29,4 @@ (let ((count 100)) (lambda () (set! count (1+ count)) - (list 'tmp count)))) + (list 'tmp-ir count)))) |