| 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 #