Skip to content

Commit 1673fb6

Browse files
authored
Merge pull request #60 from cmsc430/main-crook
crook
2 parents 514222f + 6f84c91 commit 1673fb6

File tree

21 files changed

+74
-124
lines changed

21 files changed

+74
-124
lines changed

con/compile.rkt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
(match e
1919
[(Lit i) (seq (Mov rax i))]
2020
[(Prim1 p e) (compile-prim1 p e)]
21-
[(IfZero e1 e2 e3)
22-
(compile-ifzero e1 e2 e3)]))
21+
[(IfZero e1 e2 e3) (compile-ifzero e1 e2 e3)]))
2322

2423
;; Op1 Expr -> Asm
2524
(define (compile-prim1 p e)

dodger/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

2524
;; Datum -> Asm
2625
(define (compile-datum d)

dupe/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

2524
;; Datum -> Asm
2625
(define (compile-datum d)

evildoer/compile-ops.rkt

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

1414
;; Op1 -> Asm
1515
(define (compile-op1 p)
@@ -37,7 +37,7 @@
3737
(seq (Cmp rax (value->bits eof))
3838
if-equal)]
3939
['write-byte
40-
(seq
40+
(seq (Extern 'write_byte)
4141
(Mov rdi rax)
4242
(Call 'write_byte))]))
4343

evildoer/compile.rkt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@
1010
;; Expr -> Asm
1111
(define (compile e)
1212
(prog (Global 'entry)
13-
(Extern 'peek_byte)
14-
(Extern 'read_byte)
15-
(Extern 'write_byte)
1613
(Label 'entry)
1714
(Sub rsp 8)
1815
(compile-e e)
@@ -26,10 +23,8 @@
2623
[(Eof) (seq (Mov rax (value->bits eof)))]
2724
[(Prim0 p) (compile-prim0 p)]
2825
[(Prim1 p e) (compile-prim1 p e)]
29-
[(If e1 e2 e3)
30-
(compile-if e1 e2 e3)]
31-
[(Begin e1 e2)
32-
(compile-begin e1 e2)]))
26+
[(If e1 e2 e3) (compile-if e1 e2 e3)]
27+
[(Begin e1 e2) (compile-begin e1 e2)]))
3328

3429
;; Datum -> Asm
3530
(define (compile-datum d)

extort/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)
@@ -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
(Mov rdi rax)
4748
(Call 'write_byte))]))
4849

extort/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,10 +27,8 @@
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)]
35-
[(Begin e1 e2)
36-
(compile-begin e1 e2)]))
30+
[(If e1 e2 e3) (compile-if e1 e2 e3)]
31+
[(Begin e1 e2) (compile-begin e1 e2)]))
3732

3833
;; Datum -> Asm
3934
(define (compile-datum d)

fraud/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)

fraud/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)
@@ -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,12 +32,9 @@
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)]
40-
[(Begin e1 e2)
41-
(compile-begin e1 e2 c)]
42-
[(Let x e1 e2)
43-
(compile-let x e1 e2 c)]))
35+
[(If e1 e2 e3) (compile-if e1 e2 e3 c)]
36+
[(Begin e1 e2) (compile-begin e1 e2 c)]
37+
[(Let x e1 e2) (compile-let x e1 e2 c)]))
4438

4539
;; Datum -> Asm
4640
(define (compile-datum d)

hoax/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)

0 commit comments

Comments
 (0)