module Bindings.Bfd.Disasm.I386.Insn.Operand where
import Bindings.Bfd.Disasm.I386.Insn.EffectiveAddr
data Operand = Imm {
immed :: Int
}
| IndD {
section :: String
, effAddr :: EffectiveAddr
, displacement :: Maybe Int
, address :: Maybe Int
}
| IndJ {
effAddr :: EffectiveAddr
, displacement :: Maybe Int
, address :: Maybe Int
}
| DirD {
direct :: String
}
| DirJ {
direct :: String
}
| Abs {
absolute :: Int
}
| ImmSym {
symbolIndex :: Int
}
| IndDSym {
effAddr :: EffectiveAddr
, symbolIndex :: Int
, addend :: Int
}
| IndJSym {
effAddr :: EffectiveAddr
, symbolIndex :: Int
, addend :: Int
}
| AbsSymT {
symbolIndex :: Int
}
| AbsSymL {
symbol :: String
}
deriving (Eq, Ord, Show)
isAbs
:: Operand
-> Bool
isAbs (Abs _) = True
isAbs _ = False