control stack label lookup

This commit is contained in:
Danny Yoo 2011-03-07 17:54:55 -05:00
parent 4924f92528
commit 414f806580
2 changed files with 9 additions and 8 deletions

View File

@ -235,7 +235,8 @@
(error 'lookup-toplevel "not a toplevel: ~s" a-top)]))] (error 'lookup-toplevel "not a toplevel: ~s" a-top)]))]
[(GetControlStackLabel? op) [(GetControlStackLabel? op)
m]))) (target-updater m (frame-return (first (machine-control m))))])))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View File

@ -36,6 +36,7 @@
m])) m]))
;; Infinite loop
(let ([m (new-machine `(hello world ,(make-GotoStatement (make-Label 'hello))))]) (let ([m (new-machine `(hello world ,(make-GotoStatement (make-Label 'hello))))])
(test (machine-pc (step-n m 0)) 0) (test (machine-pc (step-n m 0)) 0)
(test (machine-pc (step-n m 1)) 1) (test (machine-pc (step-n m 1)) 1)
@ -415,10 +416,9 @@
(list 126389 42 (make-toplevel (list (lookup-primitive '+)))))) (list 126389 42 (make-toplevel (list (lookup-primitive '+))))))
;; GetControlStackLabel
#;(let ([m (new-machine `(,(make-AssignPrimOpStatement (make-LookupLexicalAddress))))]) (let ([m (new-machine `(foo
(test ...)) ,(make-PushControlFrame 'foo)
#;(let ([m (new-machine `(,(make-AssignPrimOpStatement (make-LookupToplevelAddress))))]) ,(make-AssignPrimOpStatement 'proc (make-GetControlStackLabel))))])
(test ...)) (test (machine-proc (run m))
#;(let ([m (new-machine `(,(make-AssignPrimOpStatement (make-GetControlStackLabel))))]) 'foo))
(test ...))