blob: 1745e23e45e08e1dcf0bf04ff4069ad35cafdbba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
(define-module (backend generator expansion)
#:use-module (backend ast ir)
#:use-module (backend utils merge-instructions)
#:export (instrs-ir
not-ir
neg-ir
ret-ir))
(define (instrs-ir lst)
#f
(list 'instrs-ir (cons 'list (merge-instr lst))))
(define (not-ir src dst) (unary 'not-ir src dst))
(define (neg-ir src dst) (unary 'neg-ir src dst))
(define (ret-ir src)
(list (list 'mov-ir src (list 'reg-ir "eax"))
(list 'ret-ir)))
(define (unary op src dst)
(list (list 'mov-ir src dst)
(list op dst)))
|