Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/runtime/gc/import-heap.c
ViewVC logotype

Diff of /sml/trunk/src/runtime/gc/import-heap.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 48, Sun Mar 22 22:26:22 1998 UTC revision 251, Mon Apr 19 02:55:26 1999 UTC
# Line 10  Line 10 
10  #include "ml-base.h"  #include "ml-base.h"
11  #include "machine-id.h"  #include "machine-id.h"
12  #include "memory.h"  #include "memory.h"
 #include "reg-mask.h"  
13  #include "cache-flush.h"  #include "cache-flush.h"
14  #include "ml-state.h"  #include "ml-state.h"
15  #include "ml-values.h"  #include "ml-values.h"
# Line 152  Line 151 
151      if (imHdr.kind == EXPORT_HEAP_IMAGE) {      if (imHdr.kind == EXPORT_HEAP_IMAGE) {
152        /* Load the live registers */        /* Load the live registers */
153          ASSIGN(MLSignalHandler, image.sigHandler);          ASSIGN(MLSignalHandler, image.sigHandler);
         msp->ml_liveRegMask     = RET_MASK;  
154          msp->ml_arg             = image.stdArg;          msp->ml_arg             = image.stdArg;
         msp->ml_closure         = image.stdClos;  
155          msp->ml_cont            = image.stdCont;          msp->ml_cont            = image.stdCont;
156          msp->ml_exnCont         = image.exnCont;          msp->ml_closure         = image.stdClos;
157          msp->ml_pc              = image.pc;          msp->ml_pc              = image.pc;
158  #if (CALLEESAVE > 0)          msp->ml_exnCont         = image.exnCont;
159          for (i = 0;  i < CALLEESAVE;  i++)          msp->ml_varReg          = image.varReg;
160              msp->ml_calleeSave(i) = image.calleeSaves[i];          msp->ml_calleeSave[0]   = image.calleeSave[0];
161  #endif          msp->ml_calleeSave[1]   = image.calleeSave[1];
162  #if (FLOAT_CALLEESAVE > 0)          msp->ml_calleeSave[2]   = image.calleeSave[2];
         /** LOAD FLOAT CALLEE SAVES **/  
 #endif  
163        /* read the ML heap */        /* read the ML heap */
164          ReadHeap (&inBuf, &heapHdr, msp, externs);          ReadHeap (&inBuf, &heapHdr, msp, externs);
165        /* GC message are on by default for interactive images */        /* GC message are on by default for interactive images */
# Line 408  Line 403 
403    /* Adjust the ML registers to the new address space */    /* Adjust the ML registers to the new address space */
404      ASSIGN(MLSignalHandler, RepairWord (      ASSIGN(MLSignalHandler, RepairWord (
405          DEREF(MLSignalHandler), oldBIBOP, addrOffset, boRegionTbl, externs));          DEREF(MLSignalHandler), oldBIBOP, addrOffset, boRegionTbl, externs));
406      for (i = 0;  i < NROOTS;  i++) {      msp->ml_arg = RepairWord (
407          msp->ml_roots[i] = RepairWord (          msp->ml_arg, oldBIBOP, addrOffset, boRegionTbl, externs);
408              msp->ml_roots[i], oldBIBOP, addrOffset, boRegionTbl, externs);      msp->ml_cont = RepairWord (
409      }          msp->ml_cont, oldBIBOP, addrOffset, boRegionTbl, externs);
410        msp->ml_closure = RepairWord (
411            msp->ml_closure, oldBIBOP, addrOffset, boRegionTbl, externs);
412        msp->ml_pc = RepairWord (
413            msp->ml_pc, oldBIBOP, addrOffset, boRegionTbl, externs);
414        msp->ml_linkReg = RepairWord (
415            msp->ml_linkReg, oldBIBOP, addrOffset, boRegionTbl, externs);
416        msp->ml_exnCont = RepairWord (
417            msp->ml_exnCont, oldBIBOP, addrOffset, boRegionTbl, externs);
418        msp->ml_varReg = RepairWord (
419            msp->ml_varReg, oldBIBOP, addrOffset, boRegionTbl, externs);
420        msp->ml_calleeSave[0] = RepairWord (
421            msp->ml_calleeSave[0], oldBIBOP, addrOffset, boRegionTbl, externs);
422        msp->ml_calleeSave[1] = RepairWord (
423            msp->ml_calleeSave[1], oldBIBOP, addrOffset, boRegionTbl, externs);
424        msp->ml_calleeSave[2] = RepairWord (
425            msp->ml_calleeSave[2], oldBIBOP, addrOffset, boRegionTbl, externs);
426    
427    /* release storage */    /* release storage */
428      for (i = 0; i < hdr->numBORegions;  i++) {      for (i = 0; i < hdr->numBORegions;  i++) {

Legend:
Removed from v.48  
changed lines
  Added in v.251

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0