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