File tree Expand file tree Collapse file tree 4 files changed +13
-10
lines changed
Expand file tree Collapse file tree 4 files changed +13
-10
lines changed Original file line number Diff line number Diff line change 234234 (Mov r9 (Mem r8 (- type-vect)))
235235 (Cmp r10 r9)
236236 (Jge 'err )
237- (Sar r10 1 ) ; convert to byte offset
238- (Mov (Mem r8 r10 (- 8 type-vect)) rax)
237+ (Sar r10 1 ) ; convert to byte offset
238+ (Mov (Mem r8 r10 (- 8 type-vect)) rax)
239239 (Mov rax (value->bits (void))))]))
240240
241241(define (type-pred mask type)
Original file line number Diff line number Diff line change 222222 (Mov r9 (Mem r8 (- type-vect)))
223223 (Cmp r10 r9)
224224 (Jge 'err )
225- (Sar r10 1 ) ; convert to byte offset
226- (Mov (Mem r8 r10 (- 8 type-vect)) rax)
225+ (Sar r10 1 ) ; convert to byte offset
226+ (Mov (Mem r8 r10 (- 8 type-vect)) rax)
227227 (Mov rax (value->bits (void))))]))
228228
229229(define (type-pred mask type)
Original file line number Diff line number Diff line change 5151;; | (Box Pat)
5252;; | (Cons Pat Pat)
5353;; | (Conj Pat Pat)
54+ ;; | (List [Listof Pat])
55+ ;; | (Vect [Listof Pat])
56+ ;; | (Pred Id)
5457
5558(struct Eof () #:prefab )
5659(struct Lit (d) #:prefab )
Original file line number Diff line number Diff line change 222222 (Mov r9 (Mem r8 (- type-vect)))
223223 (Cmp r10 r9)
224224 (Jge 'err )
225- (Sar r10 1 ) ; convert to byte offset
226- (Mov (Mem r8 r10 (- 8 type-vect)) rax)
225+ (Sar r10 1 ) ; convert to byte offset
226+ (Mov (Mem r8 r10 (- 8 type-vect)) rax)
227227 (Mov rax (value->bits (void))))]))
228228
229229;; OpN Natural -> Asm
234234 (compile-op-list n))]
235235 ['vector
236236 (match n
237- [0 (seq (Mov rax type-vect))]
237+ [0 (seq (Lea rax (Mem 'empty type-vect) ))]
238238 [n (seq (compile-op-vect n)
239- (Mov r9 n )
239+ (Mov r9 (value->bits n) )
240240 (Mov (Mem rbx) r9)
241241 (Mov rax rbx)
242242 (Xor rax type-vect)
246246 (match n
247247 [0 (seq)]
248248 [n (seq (Pop r9)
249- (Mov (Mem rbx) ' rax )
250- (Mov (Mem rbx 8 ) ' r9 )
249+ (Mov (Mem rbx 8 ) rax)
250+ (Mov (Mem rbx 0 ) r9)
251251 (Mov rax rbx)
252252 (Xor rax type-cons)
253253 (Add rbx 16 )
You can’t perform that action at this time.
0 commit comments