diff --git a/con/compile.rkt b/con/compile.rkt index 788cf7d..4ec5fbc 100644 --- a/con/compile.rkt +++ b/con/compile.rkt @@ -18,8 +18,7 @@ (match e [(Lit i) (seq (Mov rax i))] [(Prim1 p e) (compile-prim1 p e)] - [(IfZero e1 e2 e3) - (compile-ifzero e1 e2 e3)])) + [(IfZero e1 e2 e3) (compile-ifzero e1 e2 e3)])) ;; Op1 Expr -> Asm (define (compile-prim1 p e) diff --git a/dodger/compile.rkt b/dodger/compile.rkt index 7ac40d8..593445a 100644 --- a/dodger/compile.rkt +++ b/dodger/compile.rkt @@ -19,8 +19,7 @@ (match e [(Lit d) (compile-datum d)] [(Prim1 p e) (compile-prim1 p e)] - [(If e1 e2 e3) - (compile-if e1 e2 e3)])) + [(If e1 e2 e3) (compile-if e1 e2 e3)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/dupe/compile.rkt b/dupe/compile.rkt index 7ac40d8..593445a 100644 --- a/dupe/compile.rkt +++ b/dupe/compile.rkt @@ -19,8 +19,7 @@ (match e [(Lit d) (compile-datum d)] [(Prim1 p e) (compile-prim1 p e)] - [(If e1 e2 e3) - (compile-if e1 e2 e3)])) + [(If e1 e2 e3) (compile-if e1 e2 e3)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/evildoer/compile-ops.rkt b/evildoer/compile-ops.rkt index ae007a3..216179c 100644 --- a/evildoer/compile-ops.rkt +++ b/evildoer/compile-ops.rkt @@ -8,8 +8,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq (Call 'read_byte))] - ['peek-byte (seq (Call 'peek_byte))])) + ['read-byte (seq (Extern 'read_byte) (Call 'read_byte))] + ['peek-byte (seq (Extern 'peek_byte) (Call 'peek_byte))])) ;; Op1 -> Asm (define (compile-op1 p) @@ -37,7 +37,7 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq + (seq (Extern 'write_byte) (Mov rdi rax) (Call 'write_byte))])) diff --git a/evildoer/compile.rkt b/evildoer/compile.rkt index 7a94d18..241d45e 100644 --- a/evildoer/compile.rkt +++ b/evildoer/compile.rkt @@ -10,9 +10,6 @@ ;; Expr -> Asm (define (compile e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) (Label 'entry) (Sub rsp 8) (compile-e e) @@ -26,10 +23,8 @@ [(Eof) (seq (Mov rax (value->bits eof)))] [(Prim0 p) (compile-prim0 p)] [(Prim1 p e) (compile-prim1 p e)] - [(If e1 e2 e3) - (compile-if e1 e2 e3)] - [(Begin e1 e2) - (compile-begin e1 e2)])) + [(If e1 e2 e3) (compile-if e1 e2 e3)] + [(Begin e1 e2) (compile-begin e1 e2)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/extort/compile-ops.rkt b/extort/compile-ops.rkt index 2cbc5b9..8cc5ea8 100644 --- a/extort/compile-ops.rkt +++ b/extort/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq (Call 'read_byte))] - ['peek-byte (seq (Call 'peek_byte))])) + ['read-byte (seq (Extern 'read_byte) (Call 'read_byte))] + ['peek-byte (seq (Extern 'peek_byte) (Call 'peek_byte))])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) (Mov rdi rax) (Call 'write_byte))])) diff --git a/extort/compile.rkt b/extort/compile.rkt index 5f6c93d..4ecdd07 100644 --- a/extort/compile.rkt +++ b/extort/compile.rkt @@ -10,10 +10,6 @@ ;; Expr -> Asm (define (compile e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) (Sub rsp 8) (compile-e e) @@ -21,6 +17,7 @@ (Ret) ;; Error handler (Label 'err) + (Extern 'raise_error) (Call 'raise_error))) ;; Expr -> Asm @@ -30,10 +27,8 @@ [(Eof) (seq (Mov rax (value->bits eof)))] [(Prim0 p) (compile-prim0 p)] [(Prim1 p e) (compile-prim1 p e)] - [(If e1 e2 e3) - (compile-if e1 e2 e3)] - [(Begin e1 e2) - (compile-begin e1 e2)])) + [(If e1 e2 e3) (compile-if e1 e2 e3)] + [(Begin e1 e2) (compile-begin e1 e2)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/fraud/compile-ops.rkt b/fraud/compile-ops.rkt index dcf7e04..dae38c3 100644 --- a/fraud/compile-ops.rkt +++ b/fraud/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/fraud/compile.rkt b/fraud/compile.rkt index 475c4bc..40e2a15 100644 --- a/fraud/compile.rkt +++ b/fraud/compile.rkt @@ -9,10 +9,6 @@ ;; ClosedExpr -> Asm (define (compile e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) ;; save callee-saved register (Push r15) @@ -23,6 +19,7 @@ ;; Error handler (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error))) ;; type CEnv = (Listof [Maybe Id]) @@ -35,12 +32,9 @@ [(Prim0 p) (compile-prim0 p)] [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c)] - [(Begin e1 e2) - (compile-begin e1 e2 c)] - [(Let x e1 e2) - (compile-let x e1 e2 c)])) + [(If e1 e2 e3) (compile-if e1 e2 e3 c)] + [(Begin e1 e2) (compile-begin e1 e2 c)] + [(Let x e1 e2) (compile-let x e1 e2 c)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/hoax/compile-ops.rkt b/hoax/compile-ops.rkt index 138c4d1..035536b 100644 --- a/hoax/compile-ops.rkt +++ b/hoax/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/hoax/compile.rkt b/hoax/compile.rkt index 843a58a..6b1b86f 100644 --- a/hoax/compile.rkt +++ b/hoax/compile.rkt @@ -9,10 +9,6 @@ ;; ClosedExpr -> Asm (define (compile e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) ;; save callee-saved register (Push r15) @@ -27,6 +23,7 @@ ;; Error handler (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error) (Data) (Label 'empty) @@ -43,12 +40,9 @@ [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] [(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c)] - [(Begin e1 e2) - (compile-begin e1 e2 c)] - [(Let x e1 e2) - (compile-let x e1 e2 c)])) + [(If e1 e2 e3) (compile-if e1 e2 e3 c)] + [(Begin e1 e2) (compile-begin e1 e2 c)] + [(Let x e1 e2) (compile-let x e1 e2 c)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/hustle/compile-ops.rkt b/hustle/compile-ops.rkt index 9778dc2..a6be158 100644 --- a/hustle/compile-ops.rkt +++ b/hustle/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/hustle/compile.rkt b/hustle/compile.rkt index 846949d..bdd5add 100644 --- a/hustle/compile.rkt +++ b/hustle/compile.rkt @@ -9,10 +9,6 @@ ;; ClosedExpr -> Asm (define (compile e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) ;; save callee-saved register (Push r15) @@ -27,6 +23,7 @@ ;; Error handler (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error))) ;; type CEnv = (Listof [Maybe Id]) @@ -39,12 +36,9 @@ [(Prim0 p) (compile-prim0 p)] [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c)] - [(Begin e1 e2) - (compile-begin e1 e2 c)] - [(Let x e1 e2) - (compile-let x e1 e2 c)])) + [(If e1 e2 e3) (compile-if e1 e2 e3 c)] + [(Begin e1 e2) (compile-begin e1 e2 c)] + [(Let x e1 e2) (compile-let x e1 e2 c)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/iniquity/compile-ops.rkt b/iniquity/compile-ops.rkt index 138c4d1..035536b 100644 --- a/iniquity/compile-ops.rkt +++ b/iniquity/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/iniquity/compile.rkt b/iniquity/compile.rkt index c0bba7f..55f8fa9 100644 --- a/iniquity/compile.rkt +++ b/iniquity/compile.rkt @@ -17,10 +17,6 @@ (match p [(Prog ds e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) (Push rbx) ; save callee-saved register (Push r15) @@ -33,6 +29,7 @@ (compile-defines ds) (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error) (Data) (Label 'empty) @@ -66,14 +63,10 @@ [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] [(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c)] - [(Begin e1 e2) - (compile-begin e1 e2 c)] - [(Let x e1 e2) - (compile-let x e1 e2 c)] - [(App f es) - (compile-app f es c)])) + [(If e1 e2 e3) (compile-if e1 e2 e3 c)] + [(Begin e1 e2) (compile-begin e1 e2 c)] + [(Let x e1 e2) (compile-let x e1 e2 c)] + [(App f es) (compile-app f es c)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/jig/compile-ops.rkt b/jig/compile-ops.rkt index 138c4d1..035536b 100644 --- a/jig/compile-ops.rkt +++ b/jig/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/jig/compile.rkt b/jig/compile.rkt index bede310..81d7ac5 100644 --- a/jig/compile.rkt +++ b/jig/compile.rkt @@ -14,10 +14,6 @@ (match p [(Prog ds e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) (Push rbx) ; save callee-saved register (Push r15) @@ -30,6 +26,7 @@ (compile-defines ds) (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error) (Data) (Label 'empty) @@ -63,14 +60,10 @@ [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] [(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c t?)] - [(Begin e1 e2) - (compile-begin e1 e2 c t?)] - [(Let x e1 e2) - (compile-let x e1 e2 c t?)] - [(App f es) - (compile-app f es c t?)])) + [(If e1 e2 e3) (compile-if e1 e2 e3 c t?)] + [(Begin e1 e2) (compile-begin e1 e2 c t?)] + [(Let x e1 e2) (compile-let x e1 e2 c t?)] + [(App f es) (compile-app f es c t?)])) ;; Datum -> Asm (define (compile-datum d) diff --git a/knock/compile-ops.rkt b/knock/compile-ops.rkt index 138c4d1..035536b 100644 --- a/knock/compile-ops.rkt +++ b/knock/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/knock/compile.rkt b/knock/compile.rkt index 3ae3d09..901a033 100644 --- a/knock/compile.rkt +++ b/knock/compile.rkt @@ -19,10 +19,6 @@ (match p [(Prog ds e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) (Push rbx) ; save callee-saved register (Push r15) @@ -35,6 +31,7 @@ (compile-defines ds) (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error) (Data) (Label 'empty) @@ -68,14 +65,10 @@ [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] [(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c t?)] - [(Begin e1 e2) - (compile-begin e1 e2 c t?)] - [(Let x e1 e2) - (compile-let x e1 e2 c t?)] - [(App f es) - (compile-app f es c t?)] + [(If e1 e2 e3) (compile-if e1 e2 e3 c t?)] + [(Begin e1 e2) (compile-begin e1 e2 c t?)] + [(Let x e1 e2) (compile-let x e1 e2 c t?)] + [(App f es) (compile-app f es c t?)] [(Match e ps es) (compile-match e ps es c t?)])) ;; Datum -> Asm diff --git a/loot/compile-ops.rkt b/loot/compile-ops.rkt index 14ae7d9..6ad911e 100644 --- a/loot/compile-ops.rkt +++ b/loot/compile-ops.rkt @@ -9,8 +9,8 @@ (define (compile-op0 p) (match p ['void (seq (Mov rax (value->bits (void))))] - ['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)] - ['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)])) + ['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)] + ['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)])) ;; Op1 -> Asm (define (compile-op1 p) @@ -42,7 +42,8 @@ (seq (Cmp rax (value->bits eof)) if-equal)] ['write-byte - (seq (assert-byte rax) + (seq (Extern 'write_byte) + (assert-byte rax) pad-stack (Mov rdi rax) (Call 'write_byte) diff --git a/loot/compile.rkt b/loot/compile.rkt index 9355b3d..430d1f5 100644 --- a/loot/compile.rkt +++ b/loot/compile.rkt @@ -21,10 +21,6 @@ (match p [(Prog ds e) (prog (Global 'entry) - (Extern 'peek_byte) - (Extern 'read_byte) - (Extern 'write_byte) - (Extern 'raise_error) (Label 'entry) (Push rbx) ; save callee-saved register (Push r15) @@ -39,6 +35,7 @@ (compile-lambda-defines (lambdas p)) (Label 'err) pad-stack + (Extern 'raise_error) (Call 'raise_error) (Data) (Label 'empty) @@ -107,12 +104,9 @@ [(Prim1 p e) (compile-prim1 p e c)] [(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)] [(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)] - [(If e1 e2 e3) - (compile-if e1 e2 e3 c t?)] - [(Begin e1 e2) - (compile-begin e1 e2 c t?)] - [(Let x e1 e2) - (compile-let x e1 e2 c t?)] + [(If e1 e2 e3) (compile-if e1 e2 e3 c t?)] + [(Begin e1 e2) (compile-begin e1 e2 c t?)] + [(Let x e1 e2) (compile-let x e1 e2 c t?)] [(App e es) (compile-app e es c t?)] [(Lam f xs e)