diff options
author | bd <bdunahu@operationnull.com> | 2025-01-28 17:52:23 -0500 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-01-28 17:52:23 -0500 |
commit | 5cea39649d613864f3e7a688cb2a7ecbde8bd6cd (patch) | |
tree | 9cfdeb42231f771b344fdf7b541d5f135eaf276f /src | |
parent | 467357ef13ea5d935d2e3aa5baaeef6317cd9590 (diff) |
Simplified declaring new IR nodes in (backend ast ir)
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/ast/ir.scm | 41 | ||||
-rw-r--r-- | src/backend/tacky/traverse.scm | 6 |
2 files changed, 9 insertions, 38 deletions
diff --git a/src/backend/ast/ir.scm b/src/backend/ast/ir.scm index 102739c..e4c1713 100644 --- a/src/backend/ast/ir.scm +++ b/src/backend/ast/ir.scm @@ -16,35 +16,12 @@ ;;; ;;; Code: -(define (ir-node type . args) - (cons type args)) - -(define (prog func) - (ir-node 'prog func)) - -(define (srout label instrs) - (ir-node 'srout label instrs)) - -(define (neg dst) - (ir-node 'neg dst)) - -(define (not dst) - (ir-node 'not dst)) - -(define (mov src dst) - (ir-node 'mov src dst)) - -(define (stack val) - (ir-node 'stack val)) - -(define (reg val) - (ir-node 'reg val)) - -(define (imm val) - (ir-node 'imm val)) - -(define (tmp num) - (ir-node 'tmp num)) - -(define (ret) - (ir-node 'ret)) +(define-syntax def-ir-nodes + (syntax-rules () + ((_ names ...) + (begin + (define (names . args) + (cons 'names args)) ...)))) + +(def-ir-nodes + prog srout neg not mov stack reg imm tmp ret) diff --git a/src/backend/tacky/traverse.scm b/src/backend/tacky/traverse.scm index 9a1b7aa..aec0f23 100644 --- a/src/backend/tacky/traverse.scm +++ b/src/backend/tacky/traverse.scm @@ -31,9 +31,3 @@ (lambda () (set! count (1+ count)) (list 'tmp count)))) - -(define (neg src dst) - (list 'neg src dst)) - -(define (not src dst) - (list 'not src dst)) |