crucible-llvm-0.6: Support for translating and executing LLVM code in Crucible
Safe HaskellSafe-Inferred
LanguageHaskell2010

Lang.Crucible.LLVM.Arch.X86

Synopsis

Documentation

data AVXOp1 Source #

Constructors

VShiftL Word8

Shift left by this many bytes New bytes are 0.

VShufD Word8

Shuffle 32-bit words of vector according to pattern in the word8

Instances

Instances details
Eq AVXOp1 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

(==) :: AVXOp1 -> AVXOp1 -> Bool #

(/=) :: AVXOp1 -> AVXOp1 -> Bool #

Ord AVXOp1 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

data ExtX86 :: (CrucibleType -> Type) -> CrucibleType -> Type where Source #

Constructors

VOp1 :: 1 <= n => !(NatRepr n) -> !AVXOp1 -> !(f (BVType n)) -> ExtX86 f (BVType n)

Unary operation on a vector. Should have no side effects.

Instances

Instances details
TypeApp ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

appType :: forall (f :: CrucibleType -> Type) (x :: CrucibleType). ExtX86 f x -> TypeRepr x #

PrettyApp ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

ppApp :: (forall (x :: k). f x -> Doc ann) -> forall (x :: k). ExtX86 f x -> Doc ann #

FoldableFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

foldMapFC :: forall f m. Monoid m => (forall (x :: k). f x -> m) -> forall (x :: l). ExtX86 f x -> m #

foldrFC :: (forall (x :: k). f x -> b -> b) -> forall (x :: l). b -> ExtX86 f x -> b #

foldlFC :: forall f b. (forall (x :: k). b -> f x -> b) -> forall (x :: l). b -> ExtX86 f x -> b #

foldrFC' :: (forall (x :: k). f x -> b -> b) -> forall (x :: l). b -> ExtX86 f x -> b #

foldlFC' :: forall f b. (forall (x :: k). b -> f x -> b) -> forall (x :: l). b -> ExtX86 f x -> b #

toListFC :: (forall (x :: k). f x -> a) -> forall (x :: l). ExtX86 f x -> [a] #

FunctorFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

fmapFC :: (forall (x :: k). f x -> g x) -> forall (x :: l). ExtX86 f x -> ExtX86 g x #

HashableFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

hashWithSaltFC :: (forall (x :: k). Int -> f x -> Int) -> forall (x :: l). Int -> ExtX86 f x -> Int #

OrdFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

compareFC :: (forall (x :: k) (y :: k). f x -> f y -> OrderingF x y) -> forall (x :: l) (y :: l). ExtX86 f x -> ExtX86 f y -> OrderingF x y #

ShowFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

showFC :: (forall (x :: k). f x -> String) -> forall (x :: l). ExtX86 f x -> String #

showsPrecFC :: (forall (x :: k). Int -> f x -> ShowS) -> forall (x :: l). Int -> ExtX86 f x -> ShowS #

TestEqualityFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

testEqualityFC :: (forall (x :: k) (y :: k). f x -> f y -> Maybe (x :~: y)) -> forall (x :: l) (y :: l). ExtX86 f x -> ExtX86 f y -> Maybe (x :~: y) #

TraversableFC ExtX86 Source # 
Instance details

Defined in Lang.Crucible.LLVM.Arch.X86

Methods

traverseFC :: forall f g m. Applicative m => (forall (x :: k). f x -> m (g x)) -> forall (x :: l). ExtX86 f x -> m (ExtX86 g x) #

eval :: forall sym f tp. IsSymExprBuilder sym => sym -> (forall subT. f subT -> IO (RegValue sym subT)) -> ExtX86 f tp -> IO (RegValue sym tp) Source #

vShiftL :: (IsSymExprBuilder sym, 1 <= w) => sym -> NatRepr w -> Word8 -> SymBV sym w -> IO (SymBV sym w) Source #

See vpslldq

vShufD :: forall sym w. IsSymExprBuilder sym => sym -> NatRepr w -> Word8 -> SymBV sym w -> IO (SymBV sym w) Source #

See vpshufd