summaryrefslogtreecommitdiff
path: root/src/backend/ast/ir.scm
blob: 90617cd2f369c8dea1d85bc94c7efbc4c042250a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(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))

;;; Commentary:
;;;
;;; Nodes which exist to do nothing when evaluated.
;;;
;;; Code:

(define-syntax def-ir-nodes
  (syntax-rules ()
    ((_ names ...)
     (begin
       (define (names . args)
	 (cons 'names args)) ...))))

(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)