blob: 55eaaed9a3d9de685febe004bae723c49cd2dcb4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
(define-module (generator assembly)
#:use-module (ast ir)
#:use-module (utils assign-stack)
#:use-module (utils merge-instructions)
#:export (instrs
mov))
(define (instrs lst)
(cons 'list (cons (list 'alloc (abs (get-frame-size)))
(merge-instr lst))))
(define (mov src dst)
(if (and (eq? 'stack (car dst))
(eq? 'stack (car src)))
(append (list (list 'mov src (reg "r10d")))
(list (list 'mov (reg "r10d") dst)))
(list 'mov src dst)))
|