module Bindings.Bfd.Disasm.I386.Operand where
import Bindings.Bfd.Disasm.I386.Address
import Bindings.Bfd.Disasm.I386.EffectiveAddr
data Operand = Abs {
address :: Address
}
| DirD {
direct :: String
}
| DirJ {
direct :: String
}
| Imm {
immed :: Int
}
| IndD {
section :: String
, effAddr :: EffectiveAddr
, displacement :: Maybe Int
, mbAddress :: Maybe Address
}
| IndJ {
effAddr :: EffectiveAddr
, displacement :: Maybe Int
, mbAddress :: Maybe Address
}
| Length {
len :: Int
}
deriving (Eq, Ord, Show)
isAbs
:: Operand
-> Bool
isAbs (Abs _) = True
isAbs _ = False
isIndJ
:: Operand
-> Bool
isIndJ (IndJ _ _ _) = True
isIndJ _ = False
isDirJ
:: Operand
-> Bool
isDirJ (DirJ _) = True
isDirJ _ = False