An identifier for a primitive real machine register.
Moduleghc-9.10.3GHC2021
GHC.Platform.Reg
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.
- 4 types
- 13 values
- Packageghc-9.10.3
- Exports17
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceReg.hs
A register, either virtual or real
Constructors
Instances5Eq, Ord, Show, Outputable, Uniquable
Eq RegDefined in ghc-9.10.3 · GHC.Platform.RegOrd RegDefined in ghc-9.10.3 · GHC.Platform.RegShow RegDefined in ghc-9.10.3 · GHC.Platform.RegOutputable RegDefined in ghc-9.10.3 · GHC.Platform.RegPrint a reg in a generic manner If you want the architecture specific names, then use the pprReg function from the appropriate Ppr module.
Uniquable RegDefined in ghc-9.10.3 · GHC.Platform.Reg
Constructors
Instances5Eq, Ord, Show, Outputable, Uniquable
Eq VirtualRegDefined in ghc-9.10.3 · GHC.Platform.RegOrd VirtualRegDefined in ghc-9.10.3 · GHC.Platform.RegShow VirtualRegDefined in ghc-9.10.3 · GHC.Platform.RegOutputable VirtualRegDefined in ghc-9.10.3 · GHC.Platform.RegUniquable VirtualRegDefined in ghc-9.10.3 · GHC.Platform.Reg
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
Instances5Eq, Ord, Show, Outputable, Uniquable
The patch function supplied by the allocator maps VirtualReg to RealReg regs, but sometimes we want to apply it to plain old Reg.