SPARC.CodeGen.Base

ghc-8.2.2: The GHC API

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 Source #

`InstrBlock`s 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 CondCode Source #

Condition codes passed up the tree.

Constructors

CondCode Bool Cond InstrBlock |

data ChildCode64 Source #

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 |

data Amode Source #

Holds code that references a memory address.

Constructors

Amode AddrMode InstrBlock |

data Register Source #

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 Source #

Change the format field in a Register.

getRegisterReg :: Platform -> CmmReg -> Reg Source #

Grab the Reg for a CmmReg

mangleIndexTree :: DynFlags -> CmmExpr -> CmmExpr Source #