| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
SPARC.CodeGen.Base
Synopsis
- type InstrBlock = OrdList Instr
- data CondCode = CondCode Bool Cond InstrBlock
- data ChildCode64 = ChildCode64 InstrBlock Reg
- data Amode = Amode AddrMode InstrBlock
- data Register
- = Fixed Format Reg InstrBlock
- | Any Format (Reg -> InstrBlock)
- setFormatOfRegister :: Register -> Format -> Register
- getRegisterReg :: Platform -> CmmReg -> Reg
- mangleIndexTree :: DynFlags -> CmmExpr -> CmmExpr
Documentation
type InstrBlock = OrdList Instr #
InstrBlocks are the insn sequences generated by the insn selectors.
They are really trees of insns to facilitate fast appending, where a
left-to-right traversal yields the insns in the correct order.
data ChildCode64 #
a.k.a Register64 Reg is the lower 32-bit temporary which contains the result. Use getHiVRegFromLo to find the other VRegUnique.
Rules of this simplified insn selection game are therefore that the returned Reg may be modified
Constructors
| ChildCode64 InstrBlock Reg |
Code to produce a result into a register. If the result must go in a specific register, it comes out as Fixed. Otherwise, the parent can decide which register to put it in.
Constructors
| Fixed Format Reg InstrBlock | |
| Any Format (Reg -> InstrBlock) |
setFormatOfRegister :: Register -> Format -> Register #
Change the format field in a Register.
getRegisterReg :: Platform -> CmmReg -> Reg #
Grab the Reg for a CmmReg
mangleIndexTree :: DynFlags -> CmmExpr -> CmmExpr #