ghc-7.0.3: The GHC API

SPARC.Regs

Synopsis

- showReg :: RegNo -> String
- virtualRegSqueeze :: RegClass -> VirtualReg -> FastInt
- realRegSqueeze :: RegClass -> RealReg -> FastInt
- classOfRealReg :: RealReg -> RegClass
- allRealRegs :: [RealReg]
- gReg :: Int -> RegNo
- iReg :: Int -> RegNo
- lReg :: Int -> RegNo
- oReg :: Int -> RegNo
- fReg :: Int -> RegNo
- fp :: Reg
- sp :: Reg
- g0 :: Reg
- g1 :: Reg
- g2 :: Reg
- o0 :: Reg
- o1 :: Reg
- f0 :: Reg
- f1 :: Reg
- f6 :: Reg
- f8 :: Reg
- f22 :: Reg
- f26 :: Reg
- f27 :: Reg
- allocatableRegs :: [RealReg]
- argRegs :: RegNo -> [Reg]
- allArgRegs :: [Reg]
- callClobberedRegs :: [Reg]
- mkVirtualReg :: Unique -> Size -> VirtualReg
- regDotColor :: RealReg -> SDoc

# Documentation

showReg :: RegNo -> String

Get the standard name for the register with this number.

virtualRegSqueeze :: RegClass -> VirtualReg -> FastInt

regSqueeze_class reg Calculuate the maximum number of register colors that could be denied to a node of this class due to having this reg as a neighbour.

realRegSqueeze :: RegClass -> RealReg -> FastInt

classOfRealReg :: RealReg -> RegClass

allRealRegs :: [RealReg]

All the allocatable registers in the machine, including register pairs.

gReg :: Int -> RegNo

iReg :: Int -> RegNo

lReg :: Int -> RegNo

Get the regno for this sort of reg

oReg :: Int -> RegNo

fReg :: Int -> RegNo

fp :: Reg

sp :: Reg

g0 :: Reg

g1 :: Reg

Some specific regs used by the code generator.

g2 :: Reg

o0 :: Reg

o1 :: Reg

f0 :: Reg

f1 :: Reg

f6 :: Reg

f8 :: Reg

f22 :: Reg

f26 :: Reg

f27 :: Reg

allocatableRegs :: [RealReg]

Produce the second-half-of-a-double register given the first half.

All the regs that the register allocator can allocate to, with the the fixed use regs removed.

argRegs :: RegNo -> [Reg]

The registers to place arguments for function calls, for some number of arguments.

allArgRegs :: [Reg]

All all the regs that could possibly be returned by argRegs

callClobberedRegs :: [Reg]

mkVirtualReg :: Unique -> Size -> VirtualReg

Make a virtual reg with this size.

regDotColor :: RealReg -> SDoc