projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SPARC NCG: fill branch delay slot after tabled jump (doh!)
[ghc-hetmet.git]
/
compiler
/
nativeGen
/
NCGMonad.hs
diff --git
a/compiler/nativeGen/NCGMonad.hs
b/compiler/nativeGen/NCGMonad.hs
index
02491d1
..
98bffb6
100644
(file)
--- a/
compiler/nativeGen/NCGMonad.hs
+++ b/
compiler/nativeGen/NCGMonad.hs
@@
-18,10
+18,9
@@
module NCGMonad (
#include "HsVersions.h"
#include "HsVersions.h"
-import Cmm ( BlockId(..) )
+import BlockId
import CLabel ( CLabel, mkAsmTempLabel )
import MachRegs
import CLabel ( CLabel, mkAsmTempLabel )
import MachRegs
-import MachOp ( MachRep )
import UniqSupply
import Unique ( Unique )
import DynFlags
import UniqSupply
import Unique ( Unique )
import DynFlags
@@
-36,6
+35,7
@@
data NatM_State = NatM_State {
newtype NatM result = NatM (NatM_State -> (result, NatM_State))
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
unNat (NatM a) = a
mkNatM_State :: UniqSupply -> Int -> DynFlags -> NatM_State
@@
-61,7
+61,7
@@
mapAccumLNat :: (acc -> x -> NatM (acc, y))
-> [x]
-> NatM (acc, [y])
-> [x]
-> NatM (acc, [y])
-mapAccumLNat f b []
+mapAccumLNat _ b []
= return (b, [])
mapAccumLNat f b (x:xs)
= do (b__2, x__2) <- f b x
= return (b, [])
mapAccumLNat f b (x:xs)
= do (b__2, x__2) <- f b x
@@
-95,10
+95,10
@@
getBlockIdNat = do u <- getUniqueNat; return (BlockId u)
getNewLabelNat :: NatM CLabel
getNewLabelNat = do u <- getUniqueNat; return (mkAsmTempLabel u)
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)
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
getNewRegPairNat rep = do
u <- getUniqueNat
let lo = mkVReg u rep; hi = getHiVRegFromLo lo
@@
-107,7
+107,7
@@
getNewRegPairNat rep = do
getPicBaseMaybeNat :: NatM (Maybe Reg)
getPicBaseMaybeNat = NatM (\state -> (natm_pic state, state))
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
getPicBaseNat rep = do
mbPicBase <- getPicBaseMaybeNat
case mbPicBase of