GHC.CmmToAsm.Monad
Documentation
data NcgImpl statics instr jumpDest Source #
Constructors
NcgImpl | |
Fields
|
data NatM_State Source #
Constructors
NatM_State | |
Fields
|
mkNatM_State :: UniqSupply -> Int -> NCGConfig -> ModLocation -> DwarfFiles -> LabelMap DebugBlock -> CFG -> NatM_State Source #
Instances
Applicative NatM Source # | |
Functor NatM Source # | |
Monad NatM Source # | |
CmmMakeDynamicReferenceM NatM Source # | |
MonadUnique NatM Source # | |
Defined in GHC.CmmToAsm.Monad Methods getUniqueSupplyM :: NatM UniqSupply Source # getUniqueM :: NatM Unique Source # getUniquesM :: NatM [Unique] Source # | |
HasModule NatM Source # | |
initNat :: NatM_State -> NatM a -> (a, NatM_State) Source #
addImportNat :: CLabel -> NatM () Source #
addNodeBetweenNat :: BlockId -> BlockId -> BlockId -> NatM () Source #
Record that we added a block between from
and old
.
mapAccumLNat :: (acc -> x -> NatM (acc, y)) -> acc -> [x] -> NatM (acc, [y]) Source #
setDeltaNat :: Int -> NatM () Source #
getPlatform :: NatM Platform Source #
Get target platform from native code generator configuration
getDeltaNat :: NatM Int Source #
getCfgWeights :: NatM Weights Source #
Get CFG edge weights
getDebugBlock :: Label -> NatM (Maybe DebugBlock) Source #
type DwarfFiles = UniqFM FastString (FastString, Int) Source #
64-bit registers on 32-bit architectures
Two 32-bit regs used as a single virtual 64-bit register
Two 32-bit regs used as a single virtual 64-bit register and the code to set them appropriately
getNewReg64 :: NatM Reg64 Source #
Return a virtual 64-bit register
localReg64 :: HasDebugCallStack => LocalReg -> Reg64 Source #
Convert a 64-bit LocalReg into two virtual 32-bit regs.
Used to handle 64-bit "registers" on 32-bit architectures