X86.Instr

ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

X86.Instr

# Documentation

data Instr

Constructors

COMMENT FastString |
LOCATION Int Int Int String |
LDATA Section (Alignment, CmmStatics) |
NEWBLOCK BlockId |
DELTA Int |
MOV Size Operand Operand |
CMOV Cond Size Operand Reg |
MOVZxL Size Operand Operand |
MOVSxL Size Operand Operand |
LEA Size Operand Operand |
ADD Size Operand Operand |
ADC Size Operand Operand |
SUB Size Operand Operand |
SBB Size Operand Operand |
MUL Size Operand Operand |
MUL2 Size Operand |
IMUL Size Operand Operand |
IMUL2 Size Operand |
DIV Size Operand |
IDIV Size Operand |
ADD_CC Size Operand Operand |
SUB_CC Size Operand Operand |
AND Size Operand Operand |
OR Size Operand Operand |
XOR Size Operand Operand |
NOT Size Operand |
NEGI Size Operand |
BSWAP Size Reg |
SHL Size Operand Operand |
SAR Size Operand Operand |
SHR Size Operand Operand |
BT Size Imm Operand |
NOP |
GMOV Reg Reg |
GLD Size AddrMode Reg |
GST Size Reg AddrMode |
GLDZ Reg |
GLD1 Reg |
GFTOI Reg Reg |
GDTOI Reg Reg |
GITOF Reg Reg |
GITOD Reg Reg |
GDTOF Reg Reg |
GADD Size Reg Reg Reg |
GDIV Size Reg Reg Reg |
GSUB Size Reg Reg Reg |
GMUL Size Reg Reg Reg |
GCMP Cond Reg Reg |
GABS Size Reg Reg |
GNEG Size Reg Reg |
GSQRT Size Reg Reg |
GSIN Size CLabel CLabel Reg Reg |
GCOS Size CLabel CLabel Reg Reg |
GTAN Size CLabel CLabel Reg Reg |
GFREE |
CVTSS2SD Reg Reg |
CVTSD2SS Reg Reg |
CVTTSS2SIQ Size Operand Reg |
CVTTSD2SIQ Size Operand Reg |
CVTSI2SS Size Operand Reg |
CVTSI2SD Size Operand Reg |
FDIV Size Operand Operand |
SQRT Size Operand Reg |
TEST Size Operand Operand |
CMP Size Operand Operand |
SETCC Cond Operand |
PUSH Size Operand |
POP Size Operand |
JMP Operand [Reg] |
JXX Cond BlockId |
JXX_GBL Cond Imm |
JMP_TBL Operand [Maybe BlockId] Section CLabel |
CALL (Either Imm Reg) [Reg] |
CLTD Size |
FETCHGOT Reg |
FETCHPC Reg |
POPCNT Size Operand Reg |
BSF Size Operand Reg |
BSR Size Operand Reg |
PREFETCH PrefetchVariant Size Operand |
LOCK Instr |
XADD Size Operand Operand |
CMPXCHG Size Operand Operand |
MFENCE |

Instances

Instruction Instr | Instruction instance for x86 instruction set.

data Operand

Constructors

OpReg Reg |
OpImm Imm |
OpAddr AddrMode |

data PrefetchVariant

Constructors

NTA |
Lvl0 |
Lvl1 |
Lvl2 |

data JumpDest

getJumpDestBlockId :: JumpDest -> Maybe BlockId

canShortcut :: Instr -> Maybe JumpDest

shortcutStatics :: (BlockId -> Maybe JumpDest) -> (Alignment, CmmStatics) -> (Alignment, CmmStatics)

shortcutJump :: (BlockId -> Maybe JumpDest) -> Instr -> Instr

i386_insert_ffrees :: [GenBasicBlock Instr] -> [GenBasicBlock Instr]

allocMoreStack :: Platform -> Int -> NatCmmDecl statics Instr -> UniqSM (NatCmmDecl statics Instr)

maxSpillSlots :: DynFlags -> Int

archWordSize :: Bool -> Size