[project @ 1996-03-19 08:58:34 by partain]
[ghc-hetmet.git] / ghc / compiler / nativeGen / AlphaDesc.lhs
index 2c0eeb5..43852f2 100644 (file)
@@ -7,40 +7,36 @@
 #include "HsVersions.h"
 
 module AlphaDesc (
-       mkAlpha,
+       mkAlpha
 
        -- and assorted nonsense referenced by the class methods
-
-        PprStyle, SMRep, MagicId, RegLoc, StixTree, PrimKind, SwitchResult
-
     ) where
 
 import AbsCSyn
-import AbsPrel         ( PrimOp(..)
+import PrelInfo                ( PrimOp(..)
                          IF_ATTACK_PRAGMAS(COMMA tagOf_PrimOp)
                          IF_ATTACK_PRAGMAS(COMMA pprPrimOp)
                        )
 import AsmRegAlloc     ( Reg, MachineCode(..), MachineRegisters(..),
                          RegUsage(..), RegLiveness(..), FutureLive(..)
                        )
-import CLabelInfo      ( CLabel )
+import CLabel          ( CLabel )
 import CmdLineOpts     ( GlobalSwitch(..), stringSwitchSet,
                          switchIsOn, SwitchResult(..)
                        )
 import HeapOffs                ( hpRelToInt )
-import MachDesc                
+import MachDesc
 import Maybes          ( Maybe(..) )
-import OrdList         
-import Outputable      
-import PrimKind                ( PrimKind(..) )
+import OrdList
+import Outputable
+import PrimRep         ( PrimRep(..) )
 import SMRep           ( SMRep(..), SMSpecRepKind(..), SMUpdateKind(..) )
-import AlphaCode       
+import AlphaCode
 import AlphaGen                ( alphaCodeGen )
 import Stix
 import StixMacro
 import StixPrim
-import SplitUniq
-import Unique
+import UniqSupply
 import Util
 
 \end{code}
@@ -89,11 +85,11 @@ alphaReg switches x =
            StkStubReg -> sStLitLbl SLIT("STK_STUB_closure")
            StdUpdRetVecReg -> sStLitLbl SLIT("vtbl_StdUpdFrame")
            BaseReg -> sStLitLbl SLIT("MainRegTable")
-           Hp -> StInd PtrKind (sStLitLbl SLIT("StorageMgrInfo"))
-           HpLim -> StInd PtrKind (sStLitLbl SLIT("StorageMgrInfo+8"))
-           TagReg -> StInd IntKind (StPrim IntSubOp [infoptr, StInt (1*8)])
-                     where 
-                         r2 = VanillaReg PtrKind ILIT(2)
+           Hp -> StInd PtrRep (sStLitLbl SLIT("StorageMgrInfo"))
+           HpLim -> StInd PtrRep (sStLitLbl SLIT("StorageMgrInfo+8"))
+           TagReg -> StInd IntRep (StPrim IntSubOp [infoptr, StInt (1*8)])
+                     where
+                         r2 = VanillaReg PtrRep ILIT(2)
                          infoptr = case alphaReg switches r2 of
                                        Always tree -> tree
                                        Save _ -> StReg (StixMagicId r2)
@@ -102,8 +98,8 @@ alphaReg switches x =
          baseLoc = case stgRegMap BaseReg of
            Just _ -> StReg (StixMagicId BaseReg)
            Nothing -> sStLitLbl SLIT("MainRegTable")
-          offset = baseRegOffset x
-                   
+         offset = baseRegOffset x
+
 \end{code}
 
 Sizes in bytes.
@@ -121,20 +117,20 @@ because some are reloaded from constants.
 
 \begin{code}
 
-vsaves switches vols = 
+vsaves switches vols =
     map save ((filter callerSaves) ([BaseReg,SpA,SuA,SpB,SuB,Hp,HpLim,RetReg{-,ActivityReg-}] ++ vols))
     where
-        save x = StAssign (kindFromMagicId x) loc reg
+       save x = StAssign (kindFromMagicId x) loc reg
                    where reg = StReg (StixMagicId x)
                          loc = case alphaReg switches x of
                                    Save loc -> loc
                                    Always loc -> panic "vsaves"
 
-vrests switches vols = 
-    map restore ((filter callerSaves) 
+vrests switches vols =
+    map restore ((filter callerSaves)
        ([BaseReg,SpA,SuA,SpB,SuB,Hp,HpLim,RetReg,{-ActivityReg,-}StkStubReg,StdUpdRetVecReg] ++ vols))
     where
-        restore x = StAssign (kindFromMagicId x) reg loc
+       restore x = StAssign (kindFromMagicId x) reg loc
                    where reg = StReg (StixMagicId x)
                          loc = case alphaReg switches x of
                                    Save loc -> loc
@@ -148,22 +144,22 @@ Static closure sizes.
 
 charLikeSize, intLikeSize :: Target -> Int
 
-charLikeSize target = 
-    size PtrKind * (fixedHeaderSize target + varHeaderSize target charLikeRep + 1)
+charLikeSize target =
+    size PtrRep * (fixedHeaderSize target + varHeaderSize target charLikeRep + 1)
     where charLikeRep = SpecialisedRep CharLikeRep 0 1 SMNormalForm
 
-intLikeSize target = 
-    size PtrKind * (fixedHeaderSize target + varHeaderSize target intLikeRep + 1)
+intLikeSize target =
+    size PtrRep * (fixedHeaderSize target + varHeaderSize target intLikeRep + 1)
     where intLikeRep = SpecialisedRep IntLikeRep 0 1 SMNormalForm
 
 mhs, dhs :: (GlobalSwitch -> SwitchResult) -> StixTree
 
 mhs switches = StInt (toInteger words)
-  where 
+  where
     words = fhs switches + vhs switches (MuTupleRep 0)
 
 dhs switches = StInt (toInteger words)
-  where 
+  where
     words = fhs switches + vhs switches (DataRep 0)
 
 \end{code}
@@ -174,27 +170,27 @@ Setting up a alpha target.
 
 mkAlpha :: (GlobalSwitch -> SwitchResult)
        -> (Target,
-           (PprStyle -> [[StixTree]] -> SUniqSM Unpretty), -- codeGen
+           (PprStyle -> [[StixTree]] -> UniqSM Unpretty), -- codeGen
            Bool,                                           -- underscore
            (String -> String))                             -- fmtAsmLbl
 
-mkAlpha switches = 
+mkAlpha switches =
     let
        fhs' = fhs switches
        vhs' = vhs switches
        alphaReg' = alphaReg switches
        vsaves' = vsaves switches
        vrests' = vrests switches
-       hprel = hpRelToInt target 
-        as = amodeCode target
-        as' = amodeCode' target
+       hprel = hpRelToInt target
+       as = amodeCode target
+       as' = amodeCode' target
        csz = charLikeSize target
        isz = intLikeSize target
        mhs' = mhs switches
        dhs' = dhs switches
        ps = genPrimCode target
        mc = genMacroCode target
-       hc = doHeapCheck --UNUSED NOW: target
+       hc = doHeapCheck
        target = mkTarget {-switches-} fhs' vhs' alphaReg' {-id-} size
                          hprel as as'
                          (vsaves', vrests', csz, isz, mhs', dhs', ps, mc, hc)