From: Matt Birkholz <matt@birkholz.chandler.az.us>
Date: Fri, 3 Feb 2012 23:40:24 +0000 (-0700)
Subject: svm: IMPORT_REGS should restore dynamic-link.
X-Git-Tag: release-9.2.0~322
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=6087cf64c0f0792598ec639a7635bc94e1bffda6;p=mit-scheme.git

svm: IMPORT_REGS should restore dynamic-link.

The i386's interface_to_scheme restores this register from the
CC_STACK_ENV pushed by comutil_interrupt_dlink via
compiler_interrupt_common.  comp_interrupt_restart has popped the
CC_STACK_ENV into the value register and interface_to_scheme takes it
from there.
---

diff --git a/src/microcode/svm1-interp.c b/src/microcode/svm1-interp.c
index a6433b618..28a1cf7cb 100644
--- a/src/microcode/svm1-interp.c
+++ b/src/microcode/svm1-interp.c
@@ -187,6 +187,7 @@ initialize_svm1 (void)
   WREG_SET (SVM1_REG_STACK_POINTER, ((word_t)stack_pointer));		\
   WREG_SET (SVM1_REG_FREE_POINTER, ((word_t)Free));			\
   WREG_SET (SVM1_REG_VALUE, GET_VAL);					\
+  WREG_SET (SVM1_REG_DYNAMIC_LINK, BYTE_ADDR(OBJECT_ADDRESS(GET_VAL)));	\
 } while (0)
 
 #define EXPORT_REGS() do						\