ghc-lib-parser-9.8.1.20231009: The GHC API, decoupled from GHC versions
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Platform.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 = Int #

An identifier for a primitive real machine register.

data Reg #

A register, either virtual or real

Instances

Instances details
Show Reg # 
Instance details

Defined in GHC.Platform.Reg

Methods

showsPrec :: Int -> Reg -> ShowS #

show :: Reg -> String #

showList :: [Reg] -> ShowS #

Uniquable Reg # 
Instance details

Defined in GHC.Platform.Reg

Methods

getUnique :: Reg -> Unique #

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.

Instance details

Defined in GHC.Platform.Reg

Methods

ppr :: Reg -> SDoc #

Eq Reg # 
Instance details

Defined in GHC.Platform.Reg

Methods

(==) :: Reg -> Reg -> Bool #

(/=) :: Reg -> Reg -> Bool #

Ord Reg # 
Instance details

Defined in GHC.Platform.Reg

Methods

compare :: Reg -> Reg -> Ordering #

(<) :: Reg -> Reg -> Bool #

(<=) :: Reg -> Reg -> Bool #

(>) :: Reg -> Reg -> Bool #

(>=) :: Reg -> Reg -> Bool #

max :: Reg -> Reg -> Reg #

min :: Reg -> Reg -> Reg #

data VirtualReg #

Instances

Instances details
Show VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

Uniquable VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

Outputable VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

Methods

ppr :: VirtualReg -> SDoc #

Eq VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

Ord VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

newtype RealReg #

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.

Constructors

RealRegSingle RegNo 

Instances

Instances details
Show RealReg # 
Instance details

Defined in GHC.Platform.Reg

Uniquable RealReg # 
Instance details

Defined in GHC.Platform.Reg

Methods

getUnique :: RealReg -> Unique #

Outputable RealReg # 
Instance details

Defined in GHC.Platform.Reg

Methods

ppr :: RealReg -> SDoc #

Eq RealReg # 
Instance details

Defined in GHC.Platform.Reg

Methods

(==) :: RealReg -> RealReg -> Bool #

(/=) :: RealReg -> RealReg -> Bool #

Ord RealReg # 
Instance details

Defined in GHC.Platform.Reg

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

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