reorder frame layout
authorAndy Wingo <wingo@pobox.com>
Sat, 15 Aug 2009 12:13:08 +0000 (14:13 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 20 Aug 2009 16:52:49 +0000 (18:52 +0200)
commit03e6c1659623d1aac4121730c1e453c626042c47
tree4137603e61a866ff9ab725d21c0d11c7b3648103
parentd94be25f72d217a484b4f4c9b742c610fc9e501c
reorder frame layout

* libguile/frames.h: Reorder the frame layout so the return address
  comes below the arguments.working
  (SCM_FRAME_SET_RETURN_ADDRESS, SCM_FRAME_SET_MV_RETURN_ADDRESS): New
  macros.

* libguile/frames.c (scm_vm_frame_arguments): Use the macros to access
  the arguments.

* libguile/vm-engine.c (vm_engine): Fix for new calling convention.

* libguile/vm-engine.h (INIT_FRAME): New macro. Does part of what
  NEW_FRAME used to do.

* libguile/vm-i-system.c (call, mv-call): Shuffle args up to make room
  for the stack, and adapt to new calling convention.
  (goto/args): Shuffling down is easier now.
  (return, return/args): Adapt to new frame layout.

* libguile/vm.c (vm_mark_stack): Adapt to new frame layout, and the
  possibility of there being crap on the stack.
  (really_make_boot_program): Remove extraneous comment.
libguile/frames.c
libguile/frames.h
libguile/vm-engine.c
libguile/vm-engine.h
libguile/vm-i-system.c
libguile/vm.c