VM copes with moving FP
authorAndy Wingo <wingo@pobox.com>
Fri, 22 Nov 2013 17:35:02 +0000 (18:35 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 22 Nov 2013 17:44:33 +0000 (18:44 +0100)
commit4a1ce0169db0f767fd13e4deba17732e444e72ee
tree22658286e56c67749150109027c1228672cfeb15
parent56280be9838db09465c1449cd3345e54236fbc85
VM copes with moving FP

* libguile/_scm.h (SCM_ASYNC_TICK_WITH_GUARD_CODE): New macro.
* libguile/vm-engine.c (VM_HANDLE_INTERRUPTS): Restore FP after
  ticking.
  (CACHE_FP): New macro.
  (CHECK_OVERFLOW): Use CACHE_FP.
  (BR_ARITHMETIC, RETURN_EXP, RETURN_ONE_VALUE, BINARY_INTEGER_OP):
  (call, return-values, subr-call, foreign-call)
  (resolve, define!, toplevel-box, module-box): Restore the FP from the
  vp where needed.
libguile/_scm.h
libguile/vm-engine.c