summaryrefslogtreecommitdiff
path: root/src/backend/ast/ir.scm
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-01-29 19:51:40 -0500
committerbd <bdunahu@operationnull.com>2025-01-29 19:51:40 -0500
commit5ba1942302c6034c0bc7b3e6e2d3608e8f40fffa (patch)
treeee9c98e33f3540f050c25f1e4052557e8f888334 /src/backend/ast/ir.scm
parentaea28b9ece45eb0340a480b4f3eb0a4470fdc85b (diff)
tacky generation for binary operations
Diffstat (limited to 'src/backend/ast/ir.scm')
-rw-r--r--src/backend/ast/ir.scm44
1 files changed, 34 insertions, 10 deletions
diff --git a/src/backend/ast/ir.scm b/src/backend/ast/ir.scm
index 90617cd..129fcd2 100644
--- a/src/backend/ast/ir.scm
+++ b/src/backend/ast/ir.scm
@@ -1,19 +1,19 @@
(define-module (backend ast ir)
#:export (prog-ir
srout-ir
- neg-ir
- not-ir
- plus-ir
- minus-ir
- mult-ir
- div-ir
- mod-ir
mov-ir
stack-ir
reg-ir
imm-ir
tmp-ir
- ret-ir))
+ ret-ir
+ neg-ir
+ not-ir
+ plus-ir
+ minus-ir
+ mult-ir
+ div-ir
+ mod-ir))
;;; Commentary:
;;;
@@ -26,7 +26,31 @@
((_ names ...)
(begin
(define (names . args)
- (cons 'names args)) ...))))
+ (cons 'names args)) ...))))
+
+(define-syntax def-ir-syms
+ (syntax-rules ()
+ ((_ names ...)
+ (begin
+ (define names
+ 'names) ...))))
(def-ir-nodes
- prog-ir srout-ir neg-ir not-ir plus-ir minus-ir mult-ir div-ir mod-ir mov-ir stack-ir reg-ir imm-ir tmp-ir ret-ir)
+ prog-ir
+ srout-ir
+ instr-ir
+ mov-ir
+ stack-ir
+ reg-ir
+ imm-ir
+ tmp-ir)
+
+(def-ir-syms
+ ret-ir
+ neg-ir
+ not-ir
+ plus-ir
+ minus-ir
+ mult-ir
+ div-ir
+ mod-ir)