mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
partial-cont-call works
* libguile/vm-i-system.c (partial-cont-call): Sync registers before splatting a partial continuation, and cache them back afterwards. * libguile/vm.c (vm_reinstate_partial_continuation): Actually implement, except dynamic-wind.
This commit is contained in:
parent
6d804376e9
commit
078014374c
2 changed files with 53 additions and 5 deletions
|
@ -999,8 +999,12 @@ VM_DEFINE_INSTRUCTION (94, partial_cont_call, "partial-cont-call", 0, -1, 0)
|
|||
POP (extwinds);
|
||||
POP (intwinds);
|
||||
POP (vmcont);
|
||||
|
||||
vm_reinstate_partial_continuation (vm, vmcont, intwinds, extwinds);
|
||||
SYNC_REGISTER ();
|
||||
vm_reinstate_partial_continuation (vm, vmcont, intwinds, extwinds,
|
||||
sp + 1 - fp, fp);
|
||||
CACHE_REGISTER ();
|
||||
program = SCM_FRAME_PROGRAM (fp);
|
||||
CACHE_PROGRAM ();
|
||||
NEXT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue