Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.X86.Instruction
Synopsis
- data Instruction = Instruction {}
- data Prefix
- data Operand
- data Immediate = Immediate {}
- operand_size :: Operand -> ByteSize
- mk_RSP_mem_operand :: ByteSize -> Operand
- srcs :: Instruction -> [Operand]
- canonicalize :: Instruction -> [Instruction]
- canonicalize_sextend1 :: Instruction -> [Instruction]
- canonicalize_sextend2 :: Instruction -> [Instruction]
- canonicalize_mul :: Instruction -> [Instruction]
- canonicalize_div :: Instruction -> [Instruction]
- mnemonic_reads_from_all_operands :: Opcode -> Bool
- mnemonic_reads_from_all_but_first_operands :: Opcode -> Bool
- remove_destination :: Opcode -> Bool
- do_not_modify :: Opcode -> Bool
- lowpart :: Opcode -> Opcode
- hipart :: Opcode -> Opcode
Documentation
data Instruction Source #
Constructors
Instruction | |
Instances
Constructors
PrefixO16 | |
PrefixA32 | |
PrefixRepNE | |
PrefixRep | |
PrefixLock | |
PrefixSeg SReg | |
PrefixRex Word8 |
Instances
Generic Prefix Source # | |
Show Prefix Source # | |
Serialize Prefix Source # | |
NFData Prefix Source # | |
Defined in Data.X86.Instruction | |
Eq Prefix Source # | |
Ord Prefix Source # | |
type Rep Prefix Source # | |
Defined in Data.X86.Instruction type Rep Prefix = D1 ('MetaData "Prefix" "Data.X86.Instruction" "foxdec-0.1.0.0-DGuc5MMkhbvOBLAebyTd5" 'False) ((C1 ('MetaCons "PrefixO16" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PrefixA32" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PrefixRepNE" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "PrefixRep" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PrefixLock" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PrefixSeg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SReg)) :+: C1 ('MetaCons "PrefixRex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8))))) |
Constructors
Op_Mem | |
Op_Reg Register | |
Op_Imm Immediate | |
Op_Jmp Immediate | |
Op_Const Int | |
Op_Near Operand | |
Op_Far Operand |
Instances
Instances
Generic Immediate Source # | |
Show Immediate Source # | |
Serialize Immediate Source # | |
NFData Immediate Source # | |
Defined in Data.X86.Instruction | |
Eq Immediate Source # | |
Ord Immediate Source # | |
type Rep Immediate Source # | |
Defined in Data.X86.Instruction type Rep Immediate = D1 ('MetaData "Immediate" "Data.X86.Instruction" "foxdec-0.1.0.0-DGuc5MMkhbvOBLAebyTd5" 'False) (C1 ('MetaCons "Immediate" 'PrefixI 'True) (S1 ('MetaSel ('Just "iSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BitSize) :*: S1 ('MetaSel ('Just "iValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) |
operand_size :: Operand -> ByteSize Source #
mk_RSP_mem_operand :: ByteSize -> Operand Source #
srcs :: Instruction -> [Operand] Source #
canonicalize :: Instruction -> [Instruction] Source #
Canonicalizes an instruction by making sure there is at most one output and inputs/outputs are syntactically clear. | For example, the IMUL instruction comes in different flavors that hide the actual inputs and outputs to multiple registers
canonicalize_mul :: Instruction -> [Instruction] Source #
canonicalize_div :: Instruction -> [Instruction] Source #
remove_destination :: Opcode -> Bool Source #
do_not_modify :: Opcode -> Bool Source #