X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FnativeGen%2FNCGMonad.hs;h=8b9629b1d898b9b881703c22fd9f990f9ae7c303;hb=9a82b1ffa35fa4c3927c66a1037a37d436cf6aac;hp=ed59d2bd0ae22b922978ddee18d7dce7923128d8;hpb=b04a210e26ca57242fd052f2aa91011a80b76299;p=ghc-hetmet.git diff --git a/compiler/nativeGen/NCGMonad.hs b/compiler/nativeGen/NCGMonad.hs index ed59d2b..8b9629b 100644 --- a/compiler/nativeGen/NCGMonad.hs +++ b/compiler/nativeGen/NCGMonad.hs @@ -90,8 +90,8 @@ mapAccumLNat f b (x:xs) getUniqueNat :: NatM Unique getUniqueNat = NatM $ \ (NatM_State us delta imports pic dflags) -> - case splitUniqSupply us of - (us1,us2) -> (uniqFromSupply us1, (NatM_State us2 delta imports pic dflags)) + case takeUniqFromSupply us of + (uniq, us') -> (uniq, (NatM_State us' delta imports pic dflags)) getDynFlagsNat :: NatM DynFlags @@ -132,14 +132,16 @@ getNewLabelNat getNewRegNat :: Size -> NatM Reg getNewRegNat rep = do u <- getUniqueNat - return (targetMkVReg u rep) + return (RegVirtual $ targetMkVirtualReg u rep) getNewRegPairNat :: Size -> NatM (Reg,Reg) getNewRegPairNat rep = do u <- getUniqueNat - let lo = targetMkVReg u rep; hi = getHiVRegFromLo lo - return (lo,hi) + let vLo = targetMkVirtualReg u rep + let lo = RegVirtual $ targetMkVirtualReg u rep + let hi = RegVirtual $ getHiVirtualRegFromLo vLo + return (lo, hi) getPicBaseMaybeNat :: NatM (Maybe Reg)