Safe Haskell | None |
---|---|
Language | GHC2021 |
Synopsis
- x0RegNo :: RegNo
- x1RegNo :: RegNo
- raRegNo :: RegNo
- x5RegNo :: RegNo
- t0RegNo :: RegNo
- x7RegNo :: RegNo
- t2RegNo :: RegNo
- x28RegNo :: RegNo
- t3RegNo :: RegNo
- x31RegNo :: RegNo
- t6RegNo :: RegNo
- tmpRegNo :: RegNo
- d0RegNo :: RegNo
- ft0RegNo :: RegNo
- d7RegNo :: RegNo
- ft7RegNo :: RegNo
- d31RegNo :: RegNo
- x10RegNo :: RegNo
- a0RegNo :: RegNo
- x17RegNo :: RegNo
- a7RegNo :: RegNo
- d10RegNo :: RegNo
- fa0RegNo :: RegNo
- d17RegNo :: RegNo
- fa7RegNo :: RegNo
- zeroReg :: Reg
- raReg :: Reg
- spMachReg :: Reg
- tmpReg :: Reg
- allMachRegNos :: [RegNo]
- allocatableRegs :: Platform -> [RealReg]
- allGpArgRegs :: [Reg]
- allFpArgRegs :: [Reg]
- data AddrMode
- = AddrRegImm Reg Imm
- | AddrReg Reg
- data Imm
- litToImm :: CmmLit -> Imm
- virtualRegSqueeze :: RegClass -> VirtualReg -> Int
- realRegSqueeze :: RegClass -> RealReg -> Int
- mkVirtualReg :: Unique -> Format -> VirtualReg
- classOfRealReg :: RealReg -> RegClass
- regDotColor :: RealReg -> SDoc
Registers
allMachRegNos :: [RegNo] Source #
All machine register numbers.
allocatableRegs :: Platform -> [RealReg] Source #
Registers available to the register allocator.
These are all registers minus those with a fixed role in RISCV ABI (zero, lr, sp, gp, tp, fp, tmp) and GHC RTS (Base, Sp, Hp, HpLim, R1..R8, F1..F6, D1..D6.)
allGpArgRegs :: [Reg] Source #
Integer argument registers according to the calling convention
allFpArgRegs :: [Reg] Source #
Floating point argument registers according to the calling convention
Addressing modes
Addressing modes
AddrRegImm Reg Imm | A register plus some immediate integer, e.g. |
AddrReg Reg | A register |
Immediates
virtualRegSqueeze :: RegClass -> VirtualReg -> Int Source #
regSqueeze_class reg Calculate the maximum number of register colors that could be denied to a node of this class due to having this reg as a neighbour.
mkVirtualReg :: Unique -> Format -> VirtualReg Source #
classOfRealReg :: RealReg -> RegClass Source #
regDotColor :: RealReg -> SDoc Source #