| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
GHC.CmmToAsm.X86.Regs
Synopsis
- virtualRegSqueeze :: RegClass -> VirtualReg -> Int
 - realRegSqueeze :: RegClass -> RealReg -> Int
 - data Imm
 - strImmLit :: FastString -> Imm
 - litToImm :: CmmLit -> Imm
 - data AddrMode
 - addrOffset :: AddrMode -> Int -> Maybe AddrMode
 - spRel :: Platform -> Int -> AddrMode
 - argRegs :: RegNo -> [Reg]
 - allArgRegs :: Platform -> [(Reg, Reg)]
 - allIntArgRegs :: Platform -> [Reg]
 - callClobberedRegs :: Platform -> [Reg]
 - instrClobberedRegs :: Platform -> [Reg]
 - allMachRegNos :: Platform -> [RegNo]
 - classOfRealReg :: Platform -> RealReg -> RegClass
 - showReg :: Platform -> RegNo -> String
 - data EABase
 - data EAIndex
- = EAIndexNone
 - | EAIndex Reg Int
 
 - addrModeRegs :: AddrMode -> [Reg]
 - eax :: Reg
 - ebx :: Reg
 - ecx :: Reg
 - edx :: Reg
 - esi :: Reg
 - edi :: Reg
 - ebp :: Reg
 - esp :: Reg
 - rax :: Reg
 - rbx :: Reg
 - rcx :: Reg
 - rdx :: Reg
 - rsi :: Reg
 - rdi :: Reg
 - rbp :: Reg
 - rsp :: Reg
 - r8 :: Reg
 - r9 :: Reg
 - r10 :: Reg
 - r11 :: Reg
 - r12 :: Reg
 - r13 :: Reg
 - r14 :: Reg
 - r15 :: Reg
 - lastint :: Platform -> RegNo
 - xmm0 :: Reg
 - xmm1 :: Reg
 - xmm2 :: Reg
 - xmm3 :: Reg
 - xmm4 :: Reg
 - xmm5 :: Reg
 - xmm6 :: Reg
 - xmm7 :: Reg
 - xmm8 :: Reg
 - xmm9 :: Reg
 - xmm10 :: Reg
 - xmm11 :: Reg
 - xmm12 :: Reg
 - xmm13 :: Reg
 - xmm14 :: Reg
 - xmm15 :: Reg
 - xmm :: RegNo -> Reg
 - firstxmm :: RegNo
 - lastxmm :: Platform -> RegNo
 - ripRel :: Displacement -> AddrMode
 - allFPArgRegs :: Platform -> [Reg]
 - allocatableRegs :: Platform -> [RealReg]
 
Documentation
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.
strImmLit :: FastString -> Imm Source #
allIntArgRegs :: Platform -> [Reg] Source #
callClobberedRegs :: Platform -> [Reg] Source #
these are the regs which we cannot assume stay alive over a C call.
instrClobberedRegs :: Platform -> [Reg] Source #
allMachRegNos :: Platform -> [RegNo] Source #
The complete set of machine registers.
showReg :: Platform -> RegNo -> String Source #
Get the name of the register with this number. NOTE: fixme, we dont track which "way" the XMM registers are used
addrModeRegs :: AddrMode -> [Reg] Source #
allFPArgRegs :: Platform -> [Reg] Source #
on 64bit platforms we pass the first 8 float/double arguments in the xmm registers.
allocatableRegs :: Platform -> [RealReg] Source #