#include "HsVersions.h"
-import Cmm ( BlockId(..) )
+import BlockId
import CLabel ( CLabel, mkAsmTempLabel )
import MachRegs
-import MachOp ( MachRep )
import UniqSupply
import Unique ( Unique )
import DynFlags
newtype NatM result = NatM (NatM_State -> (result, NatM_State))
+unNat :: NatM a -> NatM_State -> (a, NatM_State)
unNat (NatM a) = a
mkNatM_State :: UniqSupply -> Int -> DynFlags -> NatM_State
-> [x]
-> NatM (acc, [y])
-mapAccumLNat f b []
+mapAccumLNat _ b []
= return (b, [])
mapAccumLNat f b (x:xs)
= do (b__2, x__2) <- f b x
getNewLabelNat :: NatM CLabel
getNewLabelNat = do u <- getUniqueNat; return (mkAsmTempLabel u)
-getNewRegNat :: MachRep -> NatM Reg
+getNewRegNat :: Size -> NatM Reg
getNewRegNat rep = do u <- getUniqueNat; return (mkVReg u rep)
-getNewRegPairNat :: MachRep -> NatM (Reg,Reg)
+getNewRegPairNat :: Size -> NatM (Reg,Reg)
getNewRegPairNat rep = do
u <- getUniqueNat
let lo = mkVReg u rep; hi = getHiVRegFromLo lo
getPicBaseMaybeNat :: NatM (Maybe Reg)
getPicBaseMaybeNat = NatM (\state -> (natm_pic state, state))
-getPicBaseNat :: MachRep -> NatM Reg
+getPicBaseNat :: Size -> NatM Reg
getPicBaseNat rep = do
mbPicBase <- getPicBaseMaybeNat
case mbPicBase of