Fix callerSaves, activeStgRegs, haveRegBase when unregisterised
authorSimon Marlow <marlowsd@gmail.com>
Fri, 24 Aug 2012 09:02:35 +0000 (10:02 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 28 Aug 2012 08:16:44 +0000 (09:16 +0100)
compiler/codeGen/CodeGen/Platform.hs

index 2ed9983..78fba97 100644 (file)
@@ -17,6 +17,8 @@ import qualified CodeGen.Platform.NoRegs     as NoRegs
 
 callerSaves :: Platform -> GlobalReg -> Bool
 callerSaves platform
+ | platformUnregisterised platform = NoRegs.callerSaves
+ | otherwise
  = case platformArch platform of
    ArchX86    -> X86.callerSaves
    ArchX86_64 -> X86_64.callerSaves
@@ -37,6 +39,8 @@ callerSaves platform
 -- possbily mapped to real registers.
 activeStgRegs :: Platform -> [GlobalReg]
 activeStgRegs platform
+ | platformUnregisterised platform = NoRegs.activeStgRegs
+ | otherwise
  = case platformArch platform of
    ArchX86    -> X86.activeStgRegs
    ArchX86_64 -> X86_64.activeStgRegs
@@ -52,6 +56,8 @@ activeStgRegs platform
 
 haveRegBase :: Platform -> Bool
 haveRegBase platform
+ | platformUnregisterised platform = NoRegs.haveRegBase
+ | otherwise
  = case platformArch platform of
    ArchX86    -> X86.haveRegBase
    ArchX86_64 -> X86_64.haveRegBase