mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
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.
This commit is contained in:
parent
840ec33422
commit
f8085163d6
7 changed files with 45 additions and 100 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue