GHC.CmmToAsm.X86.Instr
Documentation
Constructors
Instances
Instruction Instr Source # | Instruction instance for x86 instruction set. |
Defined in GHC.CmmToAsm.X86 Methods regUsageOfInstr :: Platform -> Instr -> RegUsage Source # patchRegsOfInstr :: Instr -> (Reg -> Reg) -> Instr Source # isJumpishInstr :: Instr -> Bool Source # jumpDestsOfInstr :: Instr -> [BlockId] Source # patchJumpInstr :: Instr -> (BlockId -> BlockId) -> Instr Source # mkSpillInstr :: NCGConfig -> Reg -> Int -> Int -> [Instr] Source # mkLoadInstr :: NCGConfig -> Reg -> Int -> Int -> [Instr] Source # takeDeltaInstr :: Instr -> Maybe Int Source # isMetaInstr :: Instr -> Bool Source # mkRegRegMoveInstr :: Platform -> Reg -> Reg -> Instr Source # takeRegRegMoveInstr :: Instr -> Maybe (Reg, Reg) Source # mkJumpInstr :: BlockId -> [Instr] Source # mkStackAllocInstr :: Platform -> Int -> [Instr] Source # mkStackDeallocInstr :: Platform -> Int -> [Instr] Source # |
Constructors
DestBlockId BlockId | |
DestImm Imm |
Instances
shortcutStatics :: (BlockId -> Maybe JumpDest) -> (Alignment, RawCmmStatics) -> (Alignment, RawCmmStatics) Source #
allocMoreStack :: Platform -> Int -> NatCmmDecl statics Instr -> UniqSM (NatCmmDecl statics Instr, [(BlockId, BlockId)]) Source #
maxSpillSlots :: NCGConfig -> Int Source #
archWordFormat :: Bool -> Format Source #
takeRegRegMoveInstr :: Instr -> Maybe (Reg, Reg) Source #
Check whether an instruction represents a reg-reg move. The register allocator attempts to eliminate reg->reg moves whenever it can, by assigning the src and dest temporaries to the same real register.
regUsageOfInstr :: Platform -> Instr -> RegUsage Source #
Returns which registers are read and written as a (read, written) pair.
takeDeltaInstr :: Instr -> Maybe Int Source #
See if this instruction is telling us the current C stack delta
mkJumpInstr :: BlockId -> [Instr] Source #
Make an unconditional branch instruction.
jumpDestsOfInstr :: Instr -> [BlockId] Source #
patchRegsOfInstr :: Instr -> (Reg -> Reg) -> Instr Source #
Applies the supplied function to all registers in instructions. Typically used to change virtual registers to real registers.
isMetaInstr :: Instr -> Bool Source #
isJumpishInstr :: Instr -> Bool Source #