Safe Haskell | None |
---|---|
Language | Haskell98 |
- data RI
- riZero :: RI -> Bool
- fpRelEA :: Int -> Reg -> Instr
- moveSp :: Int -> Instr
- isUnconditionalJump :: Instr -> Bool
- data Instr
- = COMMENT FastString
- | LDATA Section CmmStatics
- | NEWBLOCK BlockId
- | DELTA Int
- | LD Size AddrMode Reg
- | ST Size Reg AddrMode
- | ADD Bool Bool Reg RI Reg
- | SUB Bool Bool Reg RI Reg
- | UMUL Bool Reg RI Reg
- | SMUL Bool Reg RI Reg
- | UDIV Bool Reg RI Reg
- | SDIV Bool Reg RI Reg
- | RDY Reg
- | WRY Reg Reg
- | AND Bool Reg RI Reg
- | ANDN Bool Reg RI Reg
- | OR Bool Reg RI Reg
- | ORN Bool Reg RI Reg
- | XOR Bool Reg RI Reg
- | XNOR Bool Reg RI Reg
- | SLL Reg RI Reg
- | SRL Reg RI Reg
- | SRA Reg RI Reg
- | SETHI Imm Reg
- | NOP
- | FABS Size Reg Reg
- | FADD Size Reg Reg Reg
- | FCMP Bool Size Reg Reg
- | FDIV Size Reg Reg Reg
- | FMOV Size Reg Reg
- | FMUL Size Reg Reg Reg
- | FNEG Size Reg Reg
- | FSQRT Size Reg Reg
- | FSUB Size Reg Reg Reg
- | FxTOy Size Size Reg Reg
- | BI Cond Bool BlockId
- | BF Cond Bool BlockId
- | JMP AddrMode
- | JMP_TBL AddrMode [Maybe BlockId] CLabel
- | CALL (Either Imm Reg) Int Bool
- maxSpillSlots :: DynFlags -> Int
Documentation
Check if a RI represents a zero value. - a literal zero - register %g0, which is always zero.
fpRelEA :: Int -> Reg -> Instr Source
Calculate the effective address which would be used by the corresponding fpRel sequence.
isUnconditionalJump :: Instr -> Bool Source
An instruction that will cause the one after it never to be exectuted
SPARC instruction set. Not complete. This is only the ones we need.
COMMENT FastString | |
LDATA Section CmmStatics | |
NEWBLOCK BlockId | |
DELTA Int | |
LD Size AddrMode Reg | |
ST Size Reg AddrMode | |
ADD Bool Bool Reg RI Reg | |
SUB Bool Bool Reg RI Reg | |
UMUL Bool Reg RI Reg | |
SMUL Bool Reg RI Reg | |
UDIV Bool Reg RI Reg | |
SDIV Bool Reg RI Reg | |
RDY Reg | |
WRY Reg Reg | |
AND Bool Reg RI Reg | |
ANDN Bool Reg RI Reg | |
OR Bool Reg RI Reg | |
ORN Bool Reg RI Reg | |
XOR Bool Reg RI Reg | |
XNOR Bool Reg RI Reg | |
SLL Reg RI Reg | |
SRL Reg RI Reg | |
SRA Reg RI Reg | |
SETHI Imm Reg | |
NOP | |
FABS Size Reg Reg | |
FADD Size Reg Reg Reg | |
FCMP Bool Size Reg Reg | |
FDIV Size Reg Reg Reg | |
FMOV Size Reg Reg | |
FMUL Size Reg Reg Reg | |
FNEG Size Reg Reg | |
FSQRT Size Reg Reg | |
FSUB Size Reg Reg Reg | |
FxTOy Size Size Reg Reg | |
BI Cond Bool BlockId | |
BF Cond Bool BlockId | |
JMP AddrMode | |
JMP_TBL AddrMode [Maybe BlockId] CLabel | |
CALL (Either Imm Reg) Int Bool |
Outputable Instr | |
Instruction Instr | instance for sparc instruction set |
maxSpillSlots :: DynFlags -> Int Source
The maximum number of spill slots available on the C stack. If we use up all of the slots, then we're screwed.
Why do we reserve 64 bytes, instead of using the whole thing?? -- BL 20090215