(define-module (modules generator expansion) #:use-module (modules ast ir) #:use-module (modules utils merge-instructions) #:export (instrs not neg ret)) (define (instrs lst) #f (list 'instrs (cons 'list (merge-instr lst)))) (define (not dst src) (unary 'not dst src)) (define (neg dst src) (unary 'neg dst src)) (define (ret src) (list (list 'mov (list 'reg "eax") src) (list 'ret))) (define (unary op dst src) (list (list 'mov dst src) (list op dst)))