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