blob: 5bfa8784231c7ffaf3870424c82b7aa5ebcb0b76 (
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 (generator expansion)
#:use-module (ast ir)
#:use-module (utils merge-instructions)
#:export (instrs
not
neg
ret))
(define (instrs lst)
#f
(list 'instrs (cons 'list (merge-instr lst))))
(define (not src dst) (unary 'not src dst))
(define (neg src dst) (unary 'neg src dst))
(define (ret src)
(list (list 'mov src (list 'reg "eax"))
(list 'ret)))
(define (unary op src dst)
(list (list 'mov src dst)
(list op dst)))
|