diff options
author | bd <bdunahu@operationnull.com> | 2025-01-28 18:12:54 -0500 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-01-28 18:12:54 -0500 |
commit | 733838d0a55de74e25e879f9fcf43c5c5c78e24a (patch) | |
tree | c0a7ed819d45fb1abbb3128542add3c20437ecfe /src/backend | |
parent | 5cea39649d613864f3e7a688cb2a7ecbde8bd6cd (diff) |
Fix namespace issues related to IR symbols
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/ast/ir.scm | 22 | ||||
-rw-r--r-- | src/backend/emitter/traverse.scm | 48 | ||||
-rw-r--r-- | src/backend/generator/allocate.scm | 4 | ||||
-rw-r--r-- | src/backend/generator/assembly.scm | 20 | ||||
-rw-r--r-- | src/backend/generator/expansion.scm | 24 | ||||
-rw-r--r-- | src/backend/tacky/traverse.scm | 25 |
6 files changed, 71 insertions, 72 deletions
diff --git a/src/backend/ast/ir.scm b/src/backend/ast/ir.scm index e4c1713..2b4a468 100644 --- a/src/backend/ast/ir.scm +++ b/src/backend/ast/ir.scm @@ -1,14 +1,14 @@ (define-module (backend ast ir) - #:export (prog - srout - neg - not - mov - stack - reg - imm - tmp - ret)) + #:export (prog-ir + srout-ir + neg-ir + not-ir + mov-ir + stack-ir + reg-ir + imm-ir + tmp-ir + ret-ir)) ;;; Commentary: ;;; @@ -24,4 +24,4 @@ (cons 'names args)) ...)))) (def-ir-nodes - prog srout neg not mov stack reg imm tmp ret) + prog-ir srout-ir neg-ir not-ir mov-ir stack-ir reg-ir imm-ir tmp-ir ret-ir) diff --git a/src/backend/emitter/traverse.scm b/src/backend/emitter/traverse.scm index 0a5b4cc..e88f207 100644 --- a/src/backend/emitter/traverse.scm +++ b/src/backend/emitter/traverse.scm @@ -1,50 +1,50 @@ (define-module (backend emitter traverse) - #:export (prog - subrout - instr - allocate - mov - ret - neg - not - allocate - reg - stack - imm)) - - -(define (prog srout) + #:export (prog-ir + subrout-ir + instr-ir + allocate-ir + mov-ir + ret-ir + neg-ir + not-ir + allocate-ir + reg-ir + stack-ir + imm-ir)) + + +(define (prog-ir srout) (string-append/shared srout ".section .note.GNU-stack,\"\",@progbits\n")) -(define (srout label instrs) +(define (srout-ir label instrs) (format #f " .globl ~a ~a: \tpushq\t%rbp \tmovq\t%rsp, %rbp ~a" label label (apply string-append/shared instrs))) -(define (mov src dst) +(define (mov-ir src dst) (format #f "\tmovl\t~a, ~a\n" src dst)) -(define (ret) +(define (ret-ir) "\tmovq\t%rbp, %rsp \tpopq\t%rbp \tret\n") -(define (neg dst) +(define (neg-ir dst) (format #f "\tnegl\t~a\n" dst)) -(define (not dst) +(define (not-ir dst) (format #f "\tnotl\t~a\n" dst)) -(define (alloc size) +(define (alloc-ir size) (format #f "\tsubq\t$~a, %rsp\n" size)) -(define (reg r) +(define (reg-ir r) (format #f "%~a" r)) -(define (stack loc) +(define (stack-ir loc) (format #f "~a(%rbp)" loc)) -(define (imm int) +(define (imm-ir int) (format #f "$~a" int)) diff --git a/src/backend/generator/allocate.scm b/src/backend/generator/allocate.scm index 0d417db..c5d7c05 100644 --- a/src/backend/generator/allocate.scm +++ b/src/backend/generator/allocate.scm @@ -7,8 +7,8 @@ (define (allocate n) (cond ((null? n) n) - ((eq? (car n) 'tmp) - (list 'stack (make-location (cadr n)))) + ((eq? (car n) 'tmp-ir) + (list 'stack-ir (make-location (cadr n)))) ((list? (car n)) (cons (allocate (car n)) (allocate (cdr n)))) (#t diff --git a/src/backend/generator/assembly.scm b/src/backend/generator/assembly.scm index 8a110f3..205900b 100644 --- a/src/backend/generator/assembly.scm +++ b/src/backend/generator/assembly.scm @@ -2,17 +2,17 @@ #:use-module (backend ast ir) #:use-module (backend utils assign-stack) #:use-module (backend utils merge-instructions) - #:export (instrs - mov)) + #:export (instrs-ir + mov-ir)) -(define (instrs lst) - (cons 'list (cons (list 'alloc (abs (get-frame-size))) +(define (instrs-ir lst) + (cons 'list (cons (list 'alloc-ir (abs (get-frame-size))) (merge-instr lst)))) -(define (mov src dst) - (if (and (eq? 'stack (car dst)) - (eq? 'stack (car src))) - (append (list (list 'mov src (reg "r10d"))) - (list (list 'mov (reg "r10d") dst))) - (list 'mov src dst))) +(define (mov-ir src dst) + (if (and (eq? 'stack-ir (car dst)) + (eq? 'stack-ir (car src))) + (append (list (list 'mov-ir src (reg-ir "r10d"))) + (list (list 'mov-ir (reg-ir "r10d") dst))) + (list 'mov-ir src dst))) diff --git a/src/backend/generator/expansion.scm b/src/backend/generator/expansion.scm index 9fe2e0a..1745e23 100644 --- a/src/backend/generator/expansion.scm +++ b/src/backend/generator/expansion.scm @@ -1,23 +1,23 @@ (define-module (backend generator expansion) #:use-module (backend ast ir) #:use-module (backend utils merge-instructions) - #:export (instrs - not - neg - ret)) + #:export (instrs-ir + not-ir + neg-ir + ret-ir)) -(define (instrs lst) +(define (instrs-ir lst) #f - (list 'instrs (cons 'list (merge-instr lst)))) + (list 'instrs-ir (cons 'list (merge-instr lst)))) -(define (not src dst) (unary 'not src dst)) -(define (neg src dst) (unary 'neg src dst)) +(define (not-ir src dst) (unary 'not-ir src dst)) +(define (neg-ir src dst) (unary 'neg-ir src dst)) -(define (ret src) - (list (list 'mov src (list 'reg "eax")) - (list 'ret))) +(define (ret-ir src) + (list (list 'mov-ir src (list 'reg-ir "eax")) + (list 'ret-ir))) (define (unary op src dst) - (list (list 'mov src dst) + (list (list 'mov-ir src dst) (list op dst))) 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)))) |