[project @ 2005-07-11 20:33:45 by panne]
authorpanne <unknown>
Mon, 11 Jul 2005 20:33:45 +0000 (20:33 +0000)
committerpanne <unknown>
Mon, 11 Jul 2005 20:33:45 +0000 (20:33 +0000)
commit239c42e04d094d9801052540246894a2f9958b5c
tree14015ab722d7caeec4148e09c08a3decf895dc65
parentc77201452748a299caa3c0254bd7a76ba0c64bee
[project @ 2005-07-11 20:33:45 by panne]
After some experiments, it seems like we're stealing too many registers from
newer GCCs on SPARC, leading to

   "unable to find a register to spill in class `GENERAL_REGS'"

errors. The fix is to leave l6 and l7 to GCC. Tested with a full 2-stage
bootstrap (including OpenGL/GLUT packages) on SPARC Solaris 8 with GCC 3.4.4.

A test case for this (which I'm too lazy/tired to commit) is:

   module Blah ( foo ) where
   import Foreign.Ptr ( FunPtr )
   type Bar = Int -> Double -> Double -> Double -> IO ()
   foreign import ccall unsafe "dynamic" foo :: FunPtr Bar -> Bar

SimonM: MERGE TO STABLE (if nobody yells)
ghc/includes/MachRegs.h