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