diff options
author | Andy Wingo <wingo@pobox.com> | 2013-11-15 17:13:10 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-11-15 17:13:27 +0100 |
commit | f8085163d6c457e79d3f54934723707260ac8dd8 (patch) | |
tree | edc28ec3fd02c183a92894ab4124831f4f36e80b /libguile/vm.c | |
parent | 840ec33422e7ccae5ac158584e5587d88ff42d85 (diff) | |
download | guile-f8085163d6c457e79d3f54934723707260ac8dd8.tar.gz |
Remove MVRA from VM frames
* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump for frame layout
change.
* libguile/frames.c: Update some static checks.
(scm_frame_num_locals, scm_frame_local_ref, scm_frame_local_set_x):
Update to not skip over uninitialized frames, as that's not a thing
any more.
* libguile/frames.h: Update to remove MVRA. Woo!
* libguile/vm-engine.c (ALLOC_FRAME, RETURN_ONE_VALUE):
(rtl_vm_engine): Update for 3 words per frame instead of 4.
* libguile/vm.c (vm_return_to_continuation): Likewise.
* module/language/cps/slot-allocation.scm (allocate-slots): 3 words per
frame, not 4.
* module/system/vm/assembler.scm (*bytecode-minor-version*): Bump. Also
remove a couple of tc7's that aren't around any more.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r-- | libguile/vm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/vm.c b/libguile/vm.c index 07500e3ca..9550f81f3 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -144,7 +144,7 @@ vm_return_to_continuation (SCM vm, SCM cont, size_t n, SCM *argv) vp = SCM_VM_DATA (vm); cp = SCM_VM_CONT_DATA (cont); - if (vp->stack_size < cp->stack_size + n + 4) + if (vp->stack_size < cp->stack_size + n + 3) scm_misc_error ("vm-engine", "not enough space to reinstate continuation", scm_list_2 (vm, cont)); @@ -165,7 +165,7 @@ vm_return_to_continuation (SCM vm, SCM cont, size_t n, SCM *argv) size_t i; /* Push on an empty frame, as the continuation expects. */ - for (i = 0; i < 4; i++) + for (i = 0; i < 3; i++) { vp->sp++; *vp->sp = SCM_BOOL_F; |