ghc-7.8.20140130: The GHC API

Safe HaskellNone
LanguageHaskell98

Reg

Description

An architecture independent description of a register. This needs to stay architecture independent because it is used by NCGMonad and the register allocators, which are shared by all architectures.

Synopsis

Documentation

type RegNo = IntSource

An identifier for a primitive real machine register.

data RegSource

A register, either virtual or real

Instances

Eq Reg 
Ord Reg 
Outputable Reg

Print a reg in a generic manner If you want the architecture specific names, then use the pprReg function from the appropriate Ppr module.

Uniquable Reg 

data RealRegSource

RealRegs are machine regs which are available for allocation, in the usual way. We know what class they are, because that's part of the processor's architecture.

RealRegPairs are pairs of real registers that are allocated together to hold a larger value, such as with Double regs on SPARC.

liftPatchFnToRegReg :: (VirtualReg -> RealReg) -> Reg -> RegSource

The patch function supplied by the allocator maps VirtualReg to RealReg regs, but sometimes we want to apply it to plain old Reg.