ghc-7.4.2: The GHC API

Safe Haskell | None

X86.Instr

# Documentation

data Instr

Constructors

COMMENT FastString |
LDATA Section (Alignment, CmmStatics) |
NEWBLOCK BlockId |
DELTA Int |
MOV Size Operand Operand |
MOVZxL Size Operand Operand |
MOVSxL Size Operand Operand |
LEA Size Operand Operand |
ADD Size Operand Operand |
ADC Size Operand Operand |
SUB Size Operand Operand |
MUL Size Operand Operand |
IMUL Size Operand Operand |
IMUL2 Size Operand |
DIV Size Operand |
IDIV Size Operand |
AND Size Operand Operand |
OR Size Operand Operand |
XOR Size Operand Operand |
NOT Size Operand |
NEGI Size Operand |
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 |
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 |

Instances

PlatformOutputable Instr |
Instruction Instr | Instruction instance for x86 instruction set.

data Operand

Constructors

OpReg Reg |
OpImm Imm |
OpAddr AddrMode |

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]

maxSpillSlots :: Bool -> Int

archWordSize :: Bool -> Size