Skip to content

Commit a4117e6

Browse files
committed
crook
1 parent 619e39a commit a4117e6

File tree

12 files changed

+42
-69
lines changed

12 files changed

+42
-69
lines changed

dupe-plus-plus/compile.rkt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
(match e
2020
[(Lit d) (compile-datum d)]
2121
[(Prim1 p e) (compile-prim1 p e)]
22-
[(If e1 e2 e3)
23-
(compile-if e1 e2 e3)]
22+
[(If e1 e2 e3) (compile-if e1 e2 e3)]
2423
[(Cond eqs eas el) ;; TODO
2524
(seq)]
2625
[(Case e ds es el) ;; TODO

dupe-plus/compile.rkt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
(match e
2020
[(Lit d) (compile-datum d)]
2121
[(Prim1 p e) (compile-prim1 p e)]
22-
[(If e1 e2 e3)
23-
(compile-if e1 e2 e3)]
22+
[(If e1 e2 e3) (compile-if e1 e2 e3)]
2423
[(Cond eqs eas el) ;; TODO
2524
(seq)]))
2625

extort-plus/compile-ops.rkt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(define (compile-op0 p)
1010
(match p
1111
['void (seq (Mov rax (value->bits (void))))]
12-
['read-byte (seq (Call 'read_byte))]
13-
['peek-byte (seq (Call 'peek_byte))]))
12+
['read-byte (seq (Extern 'read_byte) (Call 'read_byte))]
13+
['peek-byte (seq (Extern 'peek_byte) (Call 'peek_byte))]))
1414

1515
;; Op1 -> Asm
1616
(define (compile-op1 p)
@@ -51,7 +51,8 @@
5151
(seq (Cmp rax (value->bits eof))
5252
if-equal)]
5353
['write-byte
54-
(seq (assert-byte rax)
54+
(seq (Extern 'write_byte)
55+
(assert-byte rax)
5556
(Mov rdi rax)
5657
(Call 'write_byte))]))
5758

extort-plus/compile.rkt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,14 @@
1010
;; Expr -> Asm
1111
(define (compile e)
1212
(prog (Global 'entry)
13-
(Extern 'peek_byte)
14-
(Extern 'read_byte)
15-
(Extern 'write_byte)
16-
(Extern 'raise_error)
1713
(Label 'entry)
1814
(Sub rsp 8)
1915
(compile-e e)
2016
(Add rsp 8)
2117
(Ret)
2218
;; Error handler
2319
(Label 'err)
20+
(Extern 'raise_error)
2421
(Call 'raise_error)))
2522

2623
;; Expr -> Asm
@@ -30,14 +27,12 @@
3027
[(Eof) (seq (Mov rax (value->bits eof)))]
3128
[(Prim0 p) (compile-prim0 p)]
3229
[(Prim1 p e) (compile-prim1 p e)]
33-
[(If e1 e2 e3)
34-
(compile-if e1 e2 e3)]
30+
[(If e1 e2 e3) (compile-if e1 e2 e3)]
3531
[(Cond eqs eas el) ;; TODO
3632
(seq)]
3733
[(Case e ds es el) ;; TODO
3834
(seq)]
39-
[(Begin e1 e2)
40-
(compile-begin e1 e2)]))
35+
[(Begin e1 e2) (compile-begin e1 e2)]))
4136

4237
;; Datum -> Asm
4338
(define (compile-datum d)

fraud-plus/compile-ops.rkt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(define (compile-op0 p)
1010
(match p
1111
['void (seq (Mov rax (value->bits (void))))]
12-
['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)]
13-
['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)]))
12+
['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)]
13+
['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)]))
1414

1515
;; Op1 -> Asm
1616
(define (compile-op1 p)
@@ -57,7 +57,8 @@
5757
(seq (Cmp rax (value->bits eof))
5858
if-equal)]
5959
['write-byte
60-
(seq (assert-byte rax)
60+
(seq (Extern 'write_byte)
61+
(assert-byte rax)
6162
pad-stack
6263
(Mov rdi rax)
6364
(Call 'write_byte)

fraud-plus/compile.rkt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99
;; ClosedExpr -> Asm
1010
(define (compile e)
1111
(prog (Global 'entry)
12-
(Extern 'peek_byte)
13-
(Extern 'read_byte)
14-
(Extern 'write_byte)
15-
(Extern 'raise_error)
1612
(Label 'entry)
1713
;; save callee-saved register
1814
(Push r15)
@@ -23,6 +19,7 @@
2319
;; Error handler
2420
(Label 'err)
2521
pad-stack
22+
(Extern 'raise_error)
2623
(Call 'raise_error)))
2724

2825
;; type CEnv = (Listof [Maybe Id])
@@ -35,8 +32,7 @@
3532
[(Prim0 p) (compile-prim0 p)]
3633
[(Prim1 p e) (compile-prim1 p e c)]
3734
[(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)]
38-
[(If e1 e2 e3)
39-
(compile-if e1 e2 e3 c)]
35+
[(If e1 e2 e3) (compile-if e1 e2 e3 c)]
4036
[(Cond eqs eas el) ;; TODO
4137
(seq)]
4238
[(Case e ds es el) ;; TODO
@@ -49,8 +45,7 @@
4945
;; TODO: this works for special case of single binding
5046
;; TODO: revise to work for any number of bindings
5147
(compile-let1 x e1 e c)]
52-
[(Begin e1 e2)
53-
(compile-begin e1 e2 c)]))
48+
[(Begin e1 e2) (compile-begin e1 e2 c)]))
5449

5550
;; Datum -> Asm
5651
(define (compile-datum d)

hoax-plus/compile-ops.rkt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(define (compile-op0 p)
1010
(match p
1111
['void (seq (Mov rax (value->bits (void))))]
12-
['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)]
13-
['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)]))
12+
['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)]
13+
['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)]))
1414

1515
;; Op1 -> Asm
1616
(define (compile-op1 p)
@@ -42,7 +42,8 @@
4242
(seq (Cmp rax (value->bits eof))
4343
if-equal)]
4444
['write-byte
45-
(seq (assert-byte rax)
45+
(seq (Extern 'write_byte)
46+
(assert-byte rax)
4647
pad-stack
4748
(Mov rdi rax)
4849
(Call 'write_byte)

hoax-plus/compile.rkt

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99
;; ClosedExpr -> Asm
1010
(define (compile e)
1111
(prog (Global 'entry)
12-
(Extern 'peek_byte)
13-
(Extern 'read_byte)
14-
(Extern 'write_byte)
15-
(Extern 'raise_error)
1612
(Label 'entry)
1713
;; save callee-saved register
1814
(Push r15)
@@ -27,6 +23,7 @@
2723
;; Error handler
2824
(Label 'err)
2925
pad-stack
26+
(Extern 'raise_error)
3027
(Call 'raise_error)
3128
(Data)
3229
(Label 'empty)
@@ -43,12 +40,9 @@
4340
[(Prim1 p e) (compile-prim1 p e c)]
4441
[(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)]
4542
[(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)]
46-
[(If e1 e2 e3)
47-
(compile-if e1 e2 e3 c)]
48-
[(Begin e1 e2)
49-
(compile-begin e1 e2 c)]
50-
[(Let x e1 e2)
51-
(compile-let x e1 e2 c)]))
43+
[(If e1 e2 e3) (compile-if e1 e2 e3 c)]
44+
[(Begin e1 e2) (compile-begin e1 e2 c)]
45+
[(Let x e1 e2) (compile-let x e1 e2 c)]))
5246

5347
;; Datum -> Asm
5448
(define (compile-datum d)

iniquity-plus/compile-ops.rkt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
(define (compile-op0 p)
1010
(match p
1111
['void (seq (Mov rax (value->bits (void))))]
12-
['read-byte (seq pad-stack (Call 'read_byte) unpad-stack)]
13-
['peek-byte (seq pad-stack (Call 'peek_byte) unpad-stack)]))
12+
['read-byte (seq (Extern 'read_byte) pad-stack (Call 'read_byte) unpad-stack)]
13+
['peek-byte (seq (Extern 'peek_byte) pad-stack (Call 'peek_byte) unpad-stack)]))
1414

1515
;; Op1 -> Asm
1616
(define (compile-op1 p)
@@ -42,7 +42,8 @@
4242
(seq (Cmp rax (value->bits eof))
4343
if-equal)]
4444
['write-byte
45-
(seq (assert-byte rax)
45+
(seq (Extern 'write_byte)
46+
(assert-byte rax)
4647
pad-stack
4748
(Mov rdi rax)
4849
(Call 'write_byte)

iniquity-plus/compile.rkt

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
(match p
1515
[(Prog ds e)
1616
(prog (Global 'entry)
17-
(Extern 'peek_byte)
18-
(Extern 'read_byte)
19-
(Extern 'write_byte)
20-
(Extern 'raise_error)
2117
(Label 'entry)
2218
(Push rbx) ; save callee-saved register
2319
(Push r15)
@@ -30,6 +26,7 @@
3026
(compile-defines ds)
3127
(Label 'err)
3228
pad-stack
29+
(Extern 'raise_error)
3330
(Call 'raise_error)
3431
(Data)
3532
(Label 'empty)
@@ -74,14 +71,10 @@
7471
[(Prim1 p e) (compile-prim1 p e c)]
7572
[(Prim2 p e1 e2) (compile-prim2 p e1 e2 c)]
7673
[(Prim3 p e1 e2 e3) (compile-prim3 p e1 e2 e3 c)]
77-
[(If e1 e2 e3)
78-
(compile-if e1 e2 e3 c)]
79-
[(Begin e1 e2)
80-
(compile-begin e1 e2 c)]
81-
[(Let x e1 e2)
82-
(compile-let x e1 e2 c)]
83-
[(App f es)
84-
(compile-app f es c)]
74+
[(If e1 e2 e3) (compile-if e1 e2 e3 c)]
75+
[(Begin e1 e2) (compile-begin e1 e2 c)]
76+
[(Let x e1 e2) (compile-let x e1 e2 c)]
77+
[(App f es) (compile-app f es c)]
8578
[(Apply f es e)
8679
(compile-apply f es e c)]))
8780

0 commit comments

Comments
 (0)