haskus-system-0.6.0.0: Haskus system programming framework

Safe HaskellNone
LanguageHaskell2010

Haskus.Arch.X86_64.ISA.Insn

Synopsis

Documentation

data EncodingVariant Source #

Instruction variant encoding

Constructors

Locked

Locked memory access

Reversed

Parameters are reversed (useful when some instructions have two valid encodings, e.g. CMP reg8, reg8)

ExplicitParam

A variant exists with an implicit parameter, but the explicit variant is used

RepeatZero

REP(Z) prefix

RepeatNonZero

REPNZ prefix

LockEllisionAcquire

XACQUIRE prefix

LockEllisionRelease

XRELEASE prefix

BranchHintTaken

Branch hint (branch taken)

BranchHintNotTaken

Branch hint (not taken)

SuperfluousSegmentOverride

Segment override equal to default segment

data Properties Source #

Instruction properties

Constructors

FailOnZero Int

Fail if the n-th parameter (indexed from 0) is 0

MemAlign Int

Memory alignment constraint in bytes

MemAlignDefault

Memory alignment constraint

data FlagOp a Source #

Flag state modification

Constructors

St [a]

Set flag to 1

Unset [a]

Set flag to 0

Modified [a]

Set flag depending on the result

Undefined [a]

Flag is undefined after the operation

Read [a]

Flag read by the instruction

Instances

Eq a => Eq (FlagOp a) Source # 

Methods

(==) :: FlagOp a -> FlagOp a -> Bool #

(/=) :: FlagOp a -> FlagOp a -> Bool #

Show a => Show (FlagOp a) Source # 

Methods

showsPrec :: Int -> FlagOp a -> ShowS #

show :: FlagOp a -> String #

showList :: [FlagOp a] -> ShowS #

data Flag Source #

Status flag

Constructors

CF

Carry flag

PF

Parity flag

AF

Adjust flag

ZF

Zero flag

SF

Sign flag

TF

Trap flag

OF

Overflow flag

DF

Direction flag

IF

Interrupt flag

AC

Alignment check

Instances

Enum Flag Source # 

Methods

succ :: Flag -> Flag #

pred :: Flag -> Flag #

toEnum :: Int -> Flag #

fromEnum :: Flag -> Int #

enumFrom :: Flag -> [Flag] #

enumFromThen :: Flag -> Flag -> [Flag] #

enumFromTo :: Flag -> Flag -> [Flag] #

enumFromThenTo :: Flag -> Flag -> Flag -> [Flag] #

Eq Flag Source # 

Methods

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

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

Show Flag Source # 

Methods

showsPrec :: Int -> Flag -> ShowS #

show :: Flag -> String #

showList :: [Flag] -> ShowS #

data InsnFamily Source #

Instruction taxonomy

Constructors

Call

Call-like instruction (branch then return to the next instruction)

Return

Return from a call, an interruption, etc.

Branch

Unconditional branch instruction

ConditionalBranch

Conditional branch instruction