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