diff options
author | Andy Wingo <wingo@igalia.com> | 2013-10-14 16:13:57 +0200 |
---|---|---|
committer | Andy Wingo <wingo@igalia.com> | 2013-10-14 16:13:57 +0200 |
commit | 8d59d55e866666a4ed3b9695638265be62b20af0 (patch) | |
tree | 3e1cbb7f192f89096cc9ca0414c946bf65baef95 /module/system/vm/disassembler.scm | |
parent | 82f4bac420db15b3d41313f1f0213ea34a443d60 (diff) | |
download | guile-8d59d55e866666a4ed3b9695638265be62b20af0.tar.gz |
RTL: Compile prompts
* libguile/vm-engine.c (prompt): Adapt to explicitly set the saved SP so
we know how many incoming values the handler will receive, and to make
escape-only? a flag.
* module/language/cps/compile-rtl.scm (emit-rtl-sequence): $prompt
should only be found in a "seq" context, as it just pushes on a prompt
and doesn't bind any values. On the other hand it should emit
appropriate code for the handler to bind its values, so do that.
* module/language/cps/slot-allocation.scm ($cont-allocation): Add a note
that proc-slot is used by prompts as well.
(allocate-slots): Compute the allocation of a prompt handler's args.
* module/language/tree-il/compile-cps.scm (convert): Use "unwind"
instead of the nonexistent "pop-prompt".
* module/system/vm/disassembler.scm (code-annotation): Adapt to change
in prompt VM op.
Diffstat (limited to 'module/system/vm/disassembler.scm')
-rw-r--r-- | module/system/vm/disassembler.scm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/module/system/vm/disassembler.scm b/module/system/vm/disassembler.scm index 4917743db..09ca337bf 100644 --- a/module/system/vm/disassembler.scm +++ b/module/system/vm/disassembler.scm @@ -217,7 +217,7 @@ address of that offset." 'br-if-char 'br-if-tc7 'br-if-eq 'br-if-eqv 'br-if-equal 'br-if-= 'br-if-< 'br-if-<= 'br-if-> 'br-if->=) _ ... target) (list "-> ~A" (vector-ref labels (- (+ offset target) start)))) - (('prompt tag flags handler) + (('prompt tag escape-only? proc-slot handler) ;; The H is for handler. (list "H -> ~A" (vector-ref labels (- (+ offset handler) start)))) (((or 'make-short-immediate 'make-long-immediate) _ imm) |