| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
PPC.Instr
- archWordSize :: Size
- data RI
- data Instr
- = COMMENT FastString
- | LDATA Section CmmStatics
- | NEWBLOCK BlockId
- | DELTA Int
- | LD Size Reg AddrMode
- | LA Size Reg AddrMode
- | ST Size Reg AddrMode
- | STU Size Reg AddrMode
- | LIS Reg Imm
- | LI Reg Imm
- | MR Reg Reg
- | CMP Size Reg RI
- | CMPL Size Reg RI
- | BCC Cond BlockId
- | BCCFAR Cond BlockId
- | JMP CLabel
- | MTCTR Reg
- | BCTR [Maybe BlockId] (Maybe CLabel)
- | BL CLabel [Reg]
- | BCTRL [Reg]
- | ADD Reg Reg RI
- | ADDC Reg Reg Reg
- | ADDE Reg Reg Reg
- | ADDIS Reg Reg Imm
- | SUBF Reg Reg Reg
- | MULLW Reg Reg RI
- | DIVW Reg Reg Reg
- | DIVWU Reg Reg Reg
- | MULLW_MayOflo Reg Reg Reg
- | AND Reg Reg RI
- | OR Reg Reg RI
- | XOR Reg Reg RI
- | XORIS Reg Reg Imm
- | EXTS Size Reg Reg
- | NEG Reg Reg
- | NOT Reg Reg
- | SLW Reg Reg RI
- | SRW Reg Reg RI
- | SRAW Reg Reg RI
- | RLWINM Reg Reg Int Int Int
- | FADD Size Reg Reg Reg
- | FSUB Size Reg Reg Reg
- | FMUL Size Reg Reg Reg
- | FDIV Size Reg Reg Reg
- | FNEG Reg Reg
- | FCMP Reg Reg
- | FCTIWZ Reg Reg
- | FRSP Reg Reg
- | CRNOR Int Int Int
- | MFCR Reg
- | MFLR Reg
- | FETCHPC Reg
- | LWSYNC
- maxSpillSlots :: DynFlags -> Int
- allocMoreStack :: Platform -> Int -> NatCmmDecl statics Instr -> UniqSM (NatCmmDecl statics Instr)
- makeFarBranches :: BlockEnv CmmStatics -> [NatBasicBlock Instr] -> [NatBasicBlock Instr]
Documentation
archWordSize :: Size
data Instr
Constructors
| COMMENT FastString | |
| LDATA Section CmmStatics | |
| NEWBLOCK BlockId | |
| DELTA Int | |
| LD Size Reg AddrMode | |
| LA Size Reg AddrMode | |
| ST Size Reg AddrMode | |
| STU Size Reg AddrMode | |
| LIS Reg Imm | |
| LI Reg Imm | |
| MR Reg Reg | |
| CMP Size Reg RI | |
| CMPL Size Reg RI | |
| BCC Cond BlockId | |
| BCCFAR Cond BlockId | |
| JMP CLabel | |
| MTCTR Reg | |
| BCTR [Maybe BlockId] (Maybe CLabel) | |
| BL CLabel [Reg] | |
| BCTRL [Reg] | |
| ADD Reg Reg RI | |
| ADDC Reg Reg Reg | |
| ADDE Reg Reg Reg | |
| ADDIS Reg Reg Imm | |
| SUBF Reg Reg Reg | |
| MULLW Reg Reg RI | |
| DIVW Reg Reg Reg | |
| DIVWU Reg Reg Reg | |
| MULLW_MayOflo Reg Reg Reg | |
| AND Reg Reg RI | |
| OR Reg Reg RI | |
| XOR Reg Reg RI | |
| XORIS Reg Reg Imm | |
| EXTS Size Reg Reg | |
| NEG Reg Reg | |
| NOT Reg Reg | |
| SLW Reg Reg RI | |
| SRW Reg Reg RI | |
| SRAW Reg Reg RI | |
| RLWINM Reg Reg Int Int Int | |
| FADD Size Reg Reg Reg | |
| FSUB Size Reg Reg Reg | |
| FMUL Size Reg Reg Reg | |
| FDIV Size Reg Reg Reg | |
| FNEG Reg Reg | |
| FCMP Reg Reg | |
| FCTIWZ Reg Reg | |
| FRSP Reg Reg | |
| CRNOR Int Int Int | |
| MFCR Reg | |
| MFLR Reg | |
| FETCHPC Reg | |
| LWSYNC |
Instances
| Outputable Instr | |
| Instruction Instr | Instruction instance for powerpc |
maxSpillSlots :: DynFlags -> Int
The number of spill slots available without allocating more.
allocMoreStack :: Platform -> Int -> NatCmmDecl statics Instr -> UniqSM (NatCmmDecl statics Instr)
makeFarBranches :: BlockEnv CmmStatics -> [NatBasicBlock Instr] -> [NatBasicBlock Instr]