[project @ 2001-01-18 11:33:08 by sewardj]
authorsewardj <unknown>
Thu, 18 Jan 2001 11:33:08 +0000 (11:33 +0000)
committersewardj <unknown>
Thu, 18 Jan 2001 11:33:08 +0000 (11:33 +0000)
On sparc, do not make %i7 and %o7 available for allocation.  Quite how
it ever worked before I don't know (and I bootstrapped the compiler with
the sparc NCG).  Perhaps it was all just an illusion.  Reminds me of how
Bobby Ewing was (utterly implausibly) bought back to life in Dallas.

ghc/compiler/nativeGen/MachRegs.lhs

index f30a1cb..904b612 100644 (file)
@@ -913,7 +913,9 @@ freeReg g5 = fastBool False  --     %g5 is reserved (ABI).
 freeReg g6 = fastBool False  --        %g6 is reserved (ABI).
 freeReg g7 = fastBool False  --        %g7 is reserved (ABI).
 freeReg i6 = fastBool False  --        %i6 is our frame pointer.
+freeReg i7 = fastBool False  --        %i7 tends to have ret-addr-ish things
 freeReg o6 = fastBool False  --        %o6 is our stack pointer.
+freeReg o7 = fastBool False  --        %o7 holds ret addrs (???)
 freeReg f0 = fastBool False  --  %f0/%f1 are the C fp return registers.
 freeReg f1 = fastBool False
 #endif