cvs commit: fptools/ghc/rts StgCRun.c

ken@glass.cse.ogi.edu ken@glass.cse.ogi.edu
Tue, 7 Aug 2001 13:06:41 -0700


ken         2001/08/07 13:06:41 PDT

  Modified files:
    ghc/rts              StgCRun.c 
  Log:
  Fixed (I hope, and have reason to believe) mysterious segfaulting problem
  on the Alpha.
  
  The problem (I hope, and have reason to believe) was that, during a few
  instructions, the register saving/restoring code in StgRun() places data
  below the current SP value.  (I.e., it should first reserve stack space,
  then put data in said space, rather than first put data in, then reserve
  the space.)
  
     "The SP value might be used by the hardware when raising exceptions and
      asynchronous interrupts. It must be assumed that the contents of the stack
      below the current SP value and within the stack for the current thread are
      continually and unpredictably modified, as specified in the _Alpha
      Architecture Reference Manual_, and as a result of asynchronous software
      actions."
  
     -- Compaq Computer Corporation, Houston. Tru64 UNIX Calling Standard for
        Alpha Systems, 5.1 edition, August 2000, section 3.2.1.  http://www.
        tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/V51_PDF/ARH9MBTE.PDF
  
  Revision  Changes    Path
  1.25      +131 -43   fptools/ghc/rts/StgCRun.c