{-# LINE 1 "src/Hapstone/Internal/XCore.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module Hapstone.Internal.XCore where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Storable as C2HSImp
{-# LINE 25 "src/Hapstone/Internal/XCore.chs" #-}
import Foreign
import Foreign.C.Types
data XCoreOpType = XcoreOpInvalid
| XcoreOpReg
| XcoreOpImm
| XcoreOpMem
deriving (Int -> XCoreOpType -> ShowS
[XCoreOpType] -> ShowS
XCoreOpType -> String
(Int -> XCoreOpType -> ShowS)
-> (XCoreOpType -> String)
-> ([XCoreOpType] -> ShowS)
-> Show XCoreOpType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [XCoreOpType] -> ShowS
$cshowList :: [XCoreOpType] -> ShowS
show :: XCoreOpType -> String
$cshow :: XCoreOpType -> String
showsPrec :: Int -> XCoreOpType -> ShowS
$cshowsPrec :: Int -> XCoreOpType -> ShowS
Show,XCoreOpType -> XCoreOpType -> Bool
(XCoreOpType -> XCoreOpType -> Bool)
-> (XCoreOpType -> XCoreOpType -> Bool) -> Eq XCoreOpType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: XCoreOpType -> XCoreOpType -> Bool
$c/= :: XCoreOpType -> XCoreOpType -> Bool
== :: XCoreOpType -> XCoreOpType -> Bool
$c== :: XCoreOpType -> XCoreOpType -> Bool
Eq,XCoreOpType
XCoreOpType -> XCoreOpType -> Bounded XCoreOpType
forall a. a -> a -> Bounded a
maxBound :: XCoreOpType
$cmaxBound :: XCoreOpType
minBound :: XCoreOpType
$cminBound :: XCoreOpType
Bounded)
instance Enum XCoreOpType where
succ :: XCoreOpType -> XCoreOpType
succ XCoreOpType
XcoreOpInvalid = XCoreOpType
XcoreOpReg
succ XCoreOpType
XcoreOpReg = XCoreOpType
XcoreOpImm
succ XCoreOpType
XcoreOpImm = XCoreOpType
XcoreOpMem
succ XCoreOpType
XcoreOpMem = String -> XCoreOpType
forall a. HasCallStack => String -> a
error String
"XCoreOpType.succ: XcoreOpMem has no successor"
pred :: XCoreOpType -> XCoreOpType
pred XCoreOpType
XcoreOpReg = XCoreOpType
XcoreOpInvalid
pred XCoreOpType
XcoreOpImm = XCoreOpType
XcoreOpReg
pred XCoreOpType
XcoreOpMem = XCoreOpType
XcoreOpImm
pred XCoreOpType
XcoreOpInvalid = String -> XCoreOpType
forall a. HasCallStack => String -> a
error String
"XCoreOpType.pred: XcoreOpInvalid has no predecessor"
enumFromTo from to = go from
where
end = fromEnum to
go v = case compare (fromEnum v) end of
LT -> v : go (succ v)
EQ -> [v]
GT -> []
enumFrom from = enumFromTo from XcoreOpMem
fromEnum :: XCoreOpType -> Int
fromEnum XCoreOpType
XcoreOpInvalid = Int
0
fromEnum XCoreOpType
XcoreOpReg = Int
1
fromEnum XCoreOpType
XcoreOpImm = Int
2
fromEnum XCoreOpType
XcoreOpMem = Int
3
toEnum :: Int -> XCoreOpType
toEnum Int
0 = XCoreOpType
XcoreOpInvalid
toEnum Int
1 = XCoreOpType
XcoreOpReg
toEnum Int
2 = XCoreOpType
XcoreOpImm
toEnum Int
3 = XCoreOpType
XcoreOpMem
toEnum Int
unmatched = String -> XCoreOpType
forall a. HasCallStack => String -> a
error (String
"XCoreOpType.toEnum: Cannot match " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Int -> String
forall a. Show a => a -> String
show Int
unmatched)
{-# LINE 32 "src/Hapstone/Internal/XCore.chs" #-}
data XCoreReg = XcoreRegInvalid
| XcoreRegCp
| XcoreRegDp
| XcoreRegLr
| XcoreRegSp
| XcoreRegR0
| XcoreRegR1
| XcoreRegR2
| XcoreRegR3
| XcoreRegR4
| XcoreRegR5
| XcoreRegR6
| XcoreRegR7
| XcoreRegR8
| XcoreRegR9
| XcoreRegR10
| XcoreRegR11
| XcoreRegPc
| XcoreRegScp
| XcoreRegSsr
| XcoreRegEt
| XcoreRegEd
| XcoreRegSed
| XcoreRegKep
| XcoreRegKsp
| XcoreRegId
| XcoreRegEnding
deriving (Show,Eq,Bounded)
instance Enum XCoreReg where
succ XcoreRegInvalid = XcoreRegCp
succ XcoreRegCp = XcoreRegDp
succ XcoreRegDp = XcoreRegLr
succ XcoreRegLr = XcoreRegSp
succ XcoreRegSp = XcoreRegR0
succ XcoreRegR0 = XcoreRegR1
succ XcoreRegR1 = XcoreRegR2
succ XcoreRegR2 = XcoreRegR3
succ XcoreRegR3 = XcoreRegR4
succ XcoreRegR4 = XcoreRegR5
succ XcoreRegR5 = XcoreRegR6
succ XcoreRegR6 = XcoreRegR7
succ XcoreRegR7 = XcoreRegR8
succ XcoreRegR8 = XcoreRegR9
succ XcoreRegR9 = XcoreRegR10
succ XcoreRegR10 = XcoreRegR11
succ XcoreRegR11 = XcoreRegPc
succ XcoreRegPc = XcoreRegScp
succ XcoreRegScp = XcoreRegSsr
succ XcoreRegSsr = XcoreRegEt
succ XcoreRegEt = XcoreRegEd
succ XcoreRegEd = XcoreRegSed
succ XcoreRegSed = XcoreRegKep
succ XcoreRegKep = XcoreRegKsp
succ XcoreRegKsp = XcoreRegId
succ XcoreRegId = XcoreRegEnding
succ XcoreRegEnding = error "XCoreReg.succ: XcoreRegEnding has no successor"
pred :: XCoreReg -> XCoreReg
pred XCoreReg
XcoreRegCp = XCoreReg
XcoreRegInvalid
pred XCoreReg
XcoreRegDp = XCoreReg
XcoreRegCp
pred XCoreReg
XcoreRegLr = XCoreReg
XcoreRegDp
pred XCoreReg
XcoreRegSp = XCoreReg
XcoreRegLr
pred XCoreReg
XcoreRegR0 = XCoreReg
XcoreRegSp
pred XCoreReg
XcoreRegR1 = XCoreReg
XcoreRegR0
pred XCoreReg
XcoreRegR2 = XCoreReg
XcoreRegR1
pred XcoreRegR3 = XcoreRegR2
pred XcoreRegR4 = XcoreRegR3
pred XcoreRegR5 = XcoreRegR4
pred XcoreRegR6 = XcoreRegR5
pred XcoreRegR7 = XcoreRegR6
pred XcoreRegR8 = XcoreRegR7
pred XcoreRegR9 = XcoreRegR8
pred XcoreRegR10 = XcoreRegR9
pred XcoreRegR11 = XcoreRegR10
pred XcoreRegPc = XcoreRegR11
pred XcoreRegScp = XcoreRegPc
pred XCoreReg
XcoreRegSsr = XCoreReg
XcoreRegScp
pred XCoreReg
XcoreRegEt = XCoreReg
XcoreRegSsr
pred XCoreReg
XcoreRegEd = XCoreReg
XcoreRegEt
pred XCoreReg
XcoreRegSed = XCoreReg
XcoreRegEd
pred XCoreReg
XcoreRegKep = XCoreReg
XcoreRegSed
pred XCoreReg
XcoreRegKsp = XCoreReg
XcoreRegKep
pred XCoreReg
XcoreRegId = XCoreReg
XcoreRegKsp
pred XCoreReg
XcoreRegEnding = XCoreReg
XcoreRegId
pred XCoreReg
XcoreRegInvalid = String -> XCoreReg
forall a. HasCallStack => String -> a
error String
"XCoreReg.pred: XcoreRegInvalid has no predecessor"
enumFromTo :: XCoreReg -> XCoreReg -> [XCoreReg]
enumFromTo XCoreReg
from XCoreReg
to = go from
where
end = fromEnum to
go :: t -> [t]
go t
v = case Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (t -> Int
forall a. Enum a => a -> Int
fromEnum t
v) Int
end of
Ordering
LT -> t
v t -> [t] -> [t]
forall a. a -> [a] -> [a]
: t -> [t]
go (t -> t
forall a. Enum a => a -> a
succ t
v)
Ordering
EQ -> [t
v]
Ordering
GT -> []
enumFrom :: XCoreReg -> [XCoreReg]
enumFrom XCoreReg
from = XCoreReg -> XCoreReg -> [XCoreReg]
forall a. Enum a => a -> a -> [a]
enumFromTo XCoreReg
from XCoreReg
XcoreRegEnding
fromEnum XcoreRegInvalid = 0
fromEnum XcoreRegCp = 1
fromEnum XcoreRegDp = 2
fromEnum XcoreRegLr = 3
fromEnum XcoreRegSp = 4
fromEnum XcoreRegR0 = 5
enumFrom :: XCoreInsnGroup -> [XCoreInsnGroup]
fromEnum XcoreRegR1 = 6
fromEnum XcoreRegR2 = 7
fromEnum :: XCoreInsnGroup -> Int
fromEnum XcoreRegR3 = 8
fromEnum XcoreRegR4 = 9
fromEnum XcoreRegR5 = 10
fromEnum XcoreRegR6 = 11
fromEnum XcoreRegR7 = 12
fromEnum XcoreRegR8 = 13
fromEnum XcoreRegR9 = 14
fromEnum XcoreRegR10 = 15
fromEnum XcoreRegR11 = 16
fromEnum XcoreRegPc = 17
fromEnum XcoreRegScp = 18
fromEnum XcoreRegSsr = 19
fromEnum XcoreRegEt = 20
fromEnum XcoreRegEd = 21
fromEnum XcoreRegSed = 22
fromEnum XcoreRegKep = 23
fromEnum XcoreRegKsp = 24
fromEnum XcoreRegId = 25
fromEnum XcoreRegEnding = 26
toEnum :: Int -> XCoreReg
toEnum Int
0 = XCoreReg
XcoreRegInvalid
toEnum Int
1 = XCoreReg
XcoreRegCp
toEnum Int
2 = XCoreReg
XcoreRegDp
toEnum Int
3 = XCoreReg
XcoreRegLr
toEnum Int
4 = XCoreReg
XcoreRegSp
toEnum Int
5 = XCoreReg
XcoreRegR0
toEnum Int
6 = XCoreReg
XcoreRegR1
toEnum Int
7 = XCoreReg
XcoreRegR2
toEnum Int
8 = XCoreReg
XcoreRegR3
toEnum Int
9 = XCoreReg
XcoreRegR4
toEnum Int
10 = XCoreReg
XcoreRegR5
toEnum Int
11 = XCoreReg
XcoreRegR6
toEnum Int
12 = XCoreReg
XcoreRegR7
toEnum Int
13 = XCoreReg
XcoreRegR8
toEnum Int
14 = XCoreReg
XcoreRegR9
toEnum Int
15 = XCoreReg
XcoreRegR10
toEnum Int
16 = XCoreReg
XcoreRegR11
toEnum Int
17 = XCoreReg
XcoreRegPc
toEnum Int
18 = XCoreReg
XcoreRegScp
toEnum Int
19 = XCoreReg
XcoreRegSsr
toEnum Int
20 = XCoreReg
XcoreRegEt
toEnum Int
21 = XCoreReg
XcoreRegEd
toEnum Int
22 = XCoreReg
XcoreRegSed
toEnum Int
23 = XCoreReg
XcoreRegKep
toEnum Int
24 = XCoreReg
XcoreRegKsp
toEnum Int
25 = XCoreReg
XcoreRegId
toEnum Int
26 = XCoreReg
XcoreRegEnding
toEnum Int
unmatched = String -> XCoreReg
forall a. HasCallStack => String -> a
error (String
"XCoreReg.toEnum: Cannot match " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Int -> String
forall a. Show a => a -> String
show Int
unmatched)
{-# LINE 36 "src/Hapstone/Internal/XCore.chs" #-}
data XCoreOpMemStruct = XCoreOpMemStruct
{ base :: Word8
, index :: Word8
, disp :: Int32
, direct :: Int32
} deriving (Show, Eq)
instance Storable XCoreOpMemStruct where
sizeOf _ = 12
{-# LINE 48 "src/Hapstone/Internal/XCore.chs" #-}
alignment _ = 4
{-# LINE 49 "src/Hapstone/Internal/XCore.chs" #-}
peek p = XCoreOpMemStruct
<$> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CUChar}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 1 :: IO C2HSImp.CUChar}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CInt}) p)
poke p (XCoreOpMemStruct b i disp dir) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CUChar)}) p (fromIntegral b)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 1 (val :: C2HSImp.CUChar)}) p (fromIntegral i)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral disp)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CInt)}) p (fromIntegral dir)
data CsXCoreOp
= Reg XCoreReg
| Imm Int32
| Mem XCoreOpMemStruct
| Undefined
deriving (Show, Eq)
instance Storable CsXCoreOp where
sizeOf _ = 16
alignment _ = 4
peek p = do
t <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p
let bP = plusPtr p 4
case toEnum t of
XcoreOpReg -> (Reg . toEnum . fromIntegral) <$> (peek bP :: IO Int32)
XcoreOpImm -> Imm <$> peek bP
XcoreOpMem -> Mem <$> peek bP
_ -> return Undefined
poke p op = do
let bP = plusPtr p 4
setType = (\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p . fromIntegral . fromEnum
case op of
Reg r -> do poke bP (fromIntegral $ fromEnum r :: Int32)
setType XcoreOpReg
Imm i -> poke bP i >> setType XcoreOpImm
Mem m -> poke bP m >> setType XcoreOpMem
_ -> setType XcoreOpInvalid
newtype CsXCore = CsXCore [CsXCoreOp]
deriving (Show, Eq)
instance Storable CsXCore where
sizeOf _ = 132
alignment _ = 4
peek p = do
num <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CUChar}) p
CsXCore <$> peekArray num (plusPtr p (4))
poke p (CsXCore o) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CUChar)}) p (fromIntegral $ length o)
if length o > 8
then error "operands overflew 8 elements"
else pokeArray (plusPtr p (4)) o
data XCoreInsn = XcoreInsInvalid
| XcoreInsAdd
| XcoreInsAndnot
| XcoreInsAnd
| XcoreInsAshr
| XcoreInsBau
| XcoreInsBitrev
| XcoreInsBla
| XcoreInsBlat
| XcoreInsBl
| XcoreInsBf
| XcoreInsBt
| XcoreInsBu
| XcoreInsBru
| XcoreInsByterev
| XcoreInsChkct
| XcoreInsClre
| XcoreInsClrpt
| XcoreInsClrsr
| XcoreInsClz
| XcoreInsCrc8
| XcoreInsCrc32
| XcoreInsDcall
| XcoreInsDentsp
| XcoreInsDgetreg
| XcoreInsDivs
| XcoreInsDivu
| XcoreInsDrestsp
| XcoreInsDret
| XcoreInsEcallf
| XcoreInsEcallt
| XcoreInsEdu
| XcoreInsEef
| XcoreInsEet
| XcoreInsEeu
| XcoreInsEndin
| XcoreInsEntsp
| XcoreInsEq
| XcoreInsExtdp
| XcoreInsExtsp
| XcoreInsFreer
| XcoreInsFreet
| XcoreInsGetd
| XcoreInsGet
| XcoreInsGetn
| XcoreInsGetr
| XcoreInsGetsr
| XcoreInsGetst
| XcoreInsGetts
| XcoreInsInct
| XcoreInsInit
| XcoreInsInpw
| XcoreInsInshr
| XcoreInsInt
| XcoreInsIn
| XcoreInsKcall
| XcoreInsKentsp
| XcoreInsKrestsp
| XcoreInsKret
| XcoreInsLadd
| XcoreInsLd16s
| XcoreInsLd8u
| XcoreInsLda16
| XcoreInsLdap
| XcoreInsLdaw
| XcoreInsLdc
| XcoreInsLdw
| XcoreInsLdivu
| XcoreInsLmul
| XcoreInsLss
| XcoreInsLsub
| XcoreInsLsu
| XcoreInsMaccs
| XcoreInsMaccu
| XcoreInsMjoin
| XcoreInsMkmsk
| XcoreInsMsync
| XcoreInsMul
| XcoreInsNeg
| XcoreInsNot
| XcoreInsOr
| XcoreInsOutct
| XcoreInsOutpw
| XcoreInsOutshr
| XcoreInsOutt
| XcoreInsOut
| XcoreInsPeek
| XcoreInsRems
| XcoreInsRemu
| XcoreInsRetsp
| XcoreInsSetclk
| XcoreInsSet
| XcoreInsSetc
| XcoreInsSetd
| XcoreInsSetev
| XcoreInsSetn
| XcoreInsSetpsc
| XcoreInsSetpt
| XcoreInsSetrdy
| XcoreInsSetsr
| XcoreInsSettw
| XcoreInsSetv
| XcoreInsSext
| XcoreInsShl
| XcoreInsShr
| XcoreInsSsync
| XcoreInsSt16
| XcoreInsSt8
| XcoreInsStw
| XcoreInsSub
| XcoreInsSyncr
| XcoreInsTestct
| XcoreInsTestlcl
| XcoreInsTestwct
| XcoreInsTsetmr
| XcoreInsStart
| XcoreInsWaitef
| XcoreInsWaitet
| XcoreInsWaiteu
| XcoreInsXor
| XcoreInsZext
| XcoreInsEnding
deriving (Int -> XCoreInsn -> ShowS
[XCoreInsn] -> ShowS
XCoreInsn -> String
(Int -> XCoreInsn -> ShowS)
-> (XCoreInsn -> String)
-> ([XCoreInsn] -> ShowS)
-> Show XCoreInsn
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [XCoreInsn] -> ShowS
$cshowList :: [XCoreInsn] -> ShowS
show :: XCoreInsn -> String
$cshow :: XCoreInsn -> String
showsPrec :: Int -> XCoreInsn -> ShowS
$cshowsPrec :: Int -> XCoreInsn -> ShowS
Show,XCoreInsn -> XCoreInsn -> Bool
(XCoreInsn -> XCoreInsn -> Bool)
-> (XCoreInsn -> XCoreInsn -> Bool) -> Eq XCoreInsn
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: XCoreInsn -> XCoreInsn -> Bool
$c/= :: XCoreInsn -> XCoreInsn -> Bool
== :: XCoreInsn -> XCoreInsn -> Bool
$c== :: XCoreInsn -> XCoreInsn -> Bool
Eq,XCoreInsn
XCoreInsn -> XCoreInsn -> Bounded XCoreInsn
forall a. a -> a -> Bounded a
maxBound :: XCoreInsn
$cmaxBound :: XCoreInsn
minBound :: XCoreInsn
$cminBound :: XCoreInsn
Bounded)
instance Enum XCoreInsn where
succ :: XCoreInsn -> XCoreInsn
succ XCoreInsn
XcoreInsInvalid = XCoreInsn
XcoreInsAdd
succ XCoreInsn
XcoreInsAdd = XCoreInsn
XcoreInsAndnot
succ XCoreInsn
XcoreInsAndnot = XCoreInsn
XcoreInsAnd
succ XCoreInsn
XcoreInsAnd = XCoreInsn
XcoreInsAshr
succ XCoreInsn
XcoreInsAshr = XCoreInsn
XcoreInsBau
succ XCoreInsn
XcoreInsBau = XCoreInsn
XcoreInsBitrev
succ XCoreInsn
XcoreInsBitrev = XCoreInsn
XcoreInsBla
succ XCoreInsn
XcoreInsBla = XCoreInsn
XcoreInsBlat
succ XCoreInsn
XcoreInsBlat = XCoreInsn
XcoreInsBl
succ XCoreInsn
XcoreInsBl = XCoreInsn
XcoreInsBf
succ XCoreInsn
XcoreInsBf = XCoreInsn
XcoreInsBt
succ XCoreInsn
XcoreInsBt = XCoreInsn
XcoreInsBu
succ XCoreInsn
XcoreInsBu = XCoreInsn
XcoreInsBru
succ XCoreInsn
XcoreInsBru = XCoreInsn
XcoreInsByterev
succ XCoreInsn
XcoreInsByterev = XCoreInsn
XcoreInsChkct
succ XCoreInsn
XcoreInsChkct = XCoreInsn
XcoreInsClre
succ XCoreInsn
XcoreInsClre = XCoreInsn
XcoreInsClrpt
succ XCoreInsn
XcoreInsClrpt = XCoreInsn
XcoreInsClrsr
succ XCoreInsn
XcoreInsClrsr = XCoreInsn
XcoreInsClz
succ XCoreInsn
XcoreInsClz = XCoreInsn
XcoreInsCrc8
succ XCoreInsn
XcoreInsCrc8 = XCoreInsn
XcoreInsCrc32
succ XCoreInsn
XcoreInsCrc32 = XCoreInsn
XcoreInsDcall
succ XCoreInsn
XcoreInsDcall = XCoreInsn
XcoreInsDentsp
succ XCoreInsn
XcoreInsDentsp = XCoreInsn
XcoreInsDgetreg
succ XCoreInsn
XcoreInsDgetreg = XCoreInsn
XcoreInsDivs
succ XCoreInsn
XcoreInsDivs = XCoreInsn
XcoreInsDivu
succ XCoreInsn
XcoreInsDivu = XCoreInsn
XcoreInsDrestsp
succ XCoreInsn
XcoreInsDrestsp = XCoreInsn
XcoreInsDret
succ XCoreInsn
XcoreInsDret = XCoreInsn
XcoreInsEcallf
succ XCoreInsn
XcoreInsEcallf = XCoreInsn
XcoreInsEcallt
succ XCoreInsn
XcoreInsEcallt = XCoreInsn
XcoreInsEdu
succ XCoreInsn
XcoreInsEdu = XCoreInsn
XcoreInsEef
succ XCoreInsn
XcoreInsEef = XCoreInsn
XcoreInsEet
succ XCoreInsn
XcoreInsEet = XCoreInsn
XcoreInsEeu
succ XCoreInsn
XcoreInsEeu = XCoreInsn
XcoreInsEndin
succ XCoreInsn
XcoreInsEndin = XCoreInsn
XcoreInsEntsp
succ XCoreInsn
XcoreInsEntsp = XCoreInsn
XcoreInsEq
succ XCoreInsn
XcoreInsEq = XCoreInsn
XcoreInsExtdp
succ XCoreInsn
XcoreInsExtdp = XCoreInsn
XcoreInsExtsp
succ XCoreInsn
XcoreInsExtsp = XCoreInsn
XcoreInsFreer
succ XCoreInsn
XcoreInsFreer = XCoreInsn
XcoreInsFreet
succ XCoreInsn
XcoreInsFreet = XCoreInsn
XcoreInsGetd
succ XCoreInsn
XcoreInsGetd = XCoreInsn
XcoreInsGet
succ XCoreInsn
XcoreInsGet = XCoreInsn
XcoreInsGetn
succ XCoreInsn
XcoreInsGetn = XCoreInsn
XcoreInsGetr
succ XCoreInsn
XcoreInsGetr = XCoreInsn
XcoreInsGetsr
succ XCoreInsn
XcoreInsGetsr = XCoreInsn
XcoreInsGetst
succ XCoreInsn
XcoreInsGetst = XCoreInsn
XcoreInsGetts
succ XCoreInsn
XcoreInsGetts = XCoreInsn
XcoreInsInct
succ XCoreInsn
XcoreInsInct = XCoreInsn
XcoreInsInit
succ XCoreInsn
XcoreInsInit = XCoreInsn
XcoreInsInpw
succ XCoreInsn
XcoreInsInpw = XCoreInsn
XcoreInsInshr
succ XCoreInsn
XcoreInsInshr = XCoreInsn
XcoreInsInt
succ XCoreInsn
XcoreInsInt = XCoreInsn
XcoreInsIn
succ XCoreInsn
XcoreInsIn = XCoreInsn
XcoreInsKcall
succ XCoreInsn
XcoreInsKcall = XCoreInsn
XcoreInsKentsp
succ XCoreInsn
XcoreInsKentsp = XCoreInsn
XcoreInsKrestsp
succ XCoreInsn
XcoreInsKrestsp = XCoreInsn
XcoreInsKret
succ XCoreInsn
XcoreInsKret = XCoreInsn
XcoreInsLadd
succ XCoreInsn
XcoreInsLadd = XCoreInsn
XcoreInsLd16s
succ XCoreInsn
XcoreInsLd16s = XCoreInsn
XcoreInsLd8u
succ XCoreInsn
XcoreInsLd8u = XCoreInsn
XcoreInsLda16
succ XCoreInsn
XcoreInsLda16 = XCoreInsn
XcoreInsLdap
succ XCoreInsn
XcoreInsLdap = XCoreInsn
XcoreInsLdaw
succ XCoreInsn
XcoreInsLdaw = XCoreInsn
XcoreInsLdc
succ XCoreInsn
XcoreInsLdc = XCoreInsn
XcoreInsLdw
succ XCoreInsn
XcoreInsLdw = XCoreInsn
XcoreInsLdivu
succ XCoreInsn
XcoreInsLdivu = XCoreInsn
XcoreInsLmul
succ XCoreInsn
XcoreInsLmul = XCoreInsn
XcoreInsLss
succ XCoreInsn
XcoreInsLss = XCoreInsn
XcoreInsLsub
succ XCoreInsn
XcoreInsLsub = XCoreInsn
XcoreInsLsu
succ XCoreInsn
XcoreInsLsu = XCoreInsn
XcoreInsMaccs
succ XCoreInsn
XcoreInsMaccs = XCoreInsn
XcoreInsMaccu
succ XCoreInsn
XcoreInsMaccu = XCoreInsn
XcoreInsMjoin
succ XCoreInsn
XcoreInsMjoin = XCoreInsn
XcoreInsMkmsk
succ XCoreInsn
XcoreInsMkmsk = XCoreInsn
XcoreInsMsync
succ XCoreInsn
XcoreInsMsync = XCoreInsn
XcoreInsMul
succ XCoreInsn
XcoreInsMul = XCoreInsn
XcoreInsNeg
succ XCoreInsn
XcoreInsNeg = XCoreInsn
XcoreInsNot
succ XCoreInsn
XcoreInsNot = XCoreInsn
XcoreInsOr
succ XCoreInsn
XcoreInsOr = XCoreInsn
XcoreInsOutct
succ XCoreInsn
XcoreInsOutct = XCoreInsn
XcoreInsOutpw
succ XCoreInsn
XcoreInsOutpw = XCoreInsn
XcoreInsOutshr
succ XCoreInsn
XcoreInsOutshr = XCoreInsn
XcoreInsOutt
succ XCoreInsn
XcoreInsOutt = XCoreInsn
XcoreInsOut
succ XCoreInsn
XcoreInsOut = XCoreInsn
XcoreInsPeek
succ XCoreInsn
XcoreInsPeek = XCoreInsn
XcoreInsRems
succ XCoreInsn
XcoreInsRems = XCoreInsn
XcoreInsRemu
succ XCoreInsn
XcoreInsRemu = XCoreInsn
XcoreInsRetsp
succ XCoreInsn
XcoreInsRetsp = XCoreInsn
XcoreInsSetclk
succ XCoreInsn
XcoreInsSetclk = XCoreInsn
XcoreInsSet
succ XCoreInsn
XcoreInsSet = XCoreInsn
XcoreInsSetc
succ XCoreInsn
XcoreInsSetc = XCoreInsn
XcoreInsSetd
succ XCoreInsn
XcoreInsSetd = XCoreInsn
XcoreInsSetev
succ XCoreInsn
XcoreInsSetev = XCoreInsn
XcoreInsSetn
succ XCoreInsn
XcoreInsSetn = XCoreInsn
XcoreInsSetpsc
succ XCoreInsn
XcoreInsSetpsc = XCoreInsn
XcoreInsSetpt
succ XCoreInsn
XcoreInsSetpt = XCoreInsn
XcoreInsSetrdy
succ XCoreInsn
XcoreInsSetrdy = XCoreInsn
XcoreInsSetsr
succ XCoreInsn
XcoreInsSetsr = XCoreInsn
XcoreInsSettw
succ XCoreInsn
XcoreInsSettw = XCoreInsn
XcoreInsSetv
succ XCoreInsn
XcoreInsSetv = XCoreInsn
XcoreInsSext
succ XCoreInsn
XcoreInsSext = XCoreInsn
XcoreInsShl
succ XCoreInsn
XcoreInsShl = XCoreInsn
XcoreInsShr
succ XCoreInsn
XcoreInsShr = XCoreInsn
XcoreInsSsync
succ XCoreInsn
XcoreInsSsync = XCoreInsn
XcoreInsSt16
succ XCoreInsn
XcoreInsSt16 = XCoreInsn
XcoreInsSt8
succ XCoreInsn
XcoreInsSt8 = XCoreInsn
XcoreInsStw
succ XCoreInsn
XcoreInsStw = XCoreInsn
XcoreInsSub
succ XCoreInsn
XcoreInsSub = XCoreInsn
XcoreInsSyncr
succ XCoreInsn
XcoreInsSyncr = XCoreInsn
XcoreInsTestct
succ XCoreInsn
XcoreInsTestct = XCoreInsn
XcoreInsTestlcl
succ XCoreInsn
XcoreInsTestlcl = XCoreInsn
XcoreInsTestwct
succ XCoreInsn
XcoreInsTestwct = XCoreInsn
XcoreInsTsetmr
succ XCoreInsn
XcoreInsTsetmr = XCoreInsn
XcoreInsStart
succ XCoreInsn
XcoreInsStart = XCoreInsn
XcoreInsWaitef
succ XCoreInsn
XcoreInsWaitef = XCoreInsn
XcoreInsWaitet
succ XCoreInsn
XcoreInsWaitet = XCoreInsn
XcoreInsWaiteu
succ XCoreInsn
XcoreInsWaiteu = XCoreInsn
XcoreInsXor
succ XCoreInsn
XcoreInsXor = XCoreInsn
XcoreInsZext
succ XCoreInsn
XcoreInsZext = XCoreInsn
XcoreInsEnding
succ XCoreInsn
XcoreInsEnding = String -> XCoreInsn
forall a. HasCallStack => String -> a
error String
"XCoreInsn.succ: XcoreInsEnding has no successor"
pred :: XCoreInsn -> XCoreInsn
pred XCoreInsn
XcoreInsAdd = XCoreInsn
XcoreInsInvalid
pred XCoreInsn
XcoreInsAndnot = XCoreInsn
XcoreInsAdd
pred XCoreInsn
XcoreInsAnd = XCoreInsn
XcoreInsAndnot
pred XCoreInsn
XcoreInsAshr = XCoreInsn
XcoreInsAnd
pred XCoreInsn
XcoreInsBau = XCoreInsn
XcoreInsAshr
pred XCoreInsn
XcoreInsBitrev = XCoreInsn
XcoreInsBau
pred XCoreInsn
XcoreInsBla = XCoreInsn
XcoreInsBitrev
pred XCoreInsn
XcoreInsBlat = XCoreInsn
XcoreInsBla
pred XCoreInsn
XcoreInsBl = XCoreInsn
XcoreInsBlat
pred XCoreInsn
XcoreInsBf = XCoreInsn
XcoreInsBl
pred XCoreInsn
XcoreInsBt = XCoreInsn
XcoreInsBf
pred XCoreInsn
XcoreInsBu = XCoreInsn
XcoreInsBt
pred XCoreInsn
XcoreInsBru = XCoreInsn
XcoreInsBu
pred XCoreInsn
XcoreInsByterev = XCoreInsn
XcoreInsBru
pred XCoreInsn
XcoreInsChkct = XCoreInsn
XcoreInsByterev
pred XCoreInsn
XcoreInsClre = XCoreInsn
XcoreInsChkct
pred XCoreInsn
XcoreInsClrpt = XCoreInsn
XcoreInsClre
pred XCoreInsn
XcoreInsClrsr = XCoreInsn
XcoreInsClrpt
pred XCoreInsn
XcoreInsClz = XCoreInsn
XcoreInsClrsr
pred XCoreInsn
XcoreInsCrc8 = XCoreInsn
XcoreInsClz
pred XCoreInsn
XcoreInsCrc32 = XCoreInsn
XcoreInsCrc8
pred XCoreInsn
XcoreInsDcall = XCoreInsn
XcoreInsCrc32
pred XCoreInsn
XcoreInsDentsp = XCoreInsn
XcoreInsDcall
pred XCoreInsn
XcoreInsDgetreg = XCoreInsn
XcoreInsDentsp
pred XCoreInsn
XcoreInsDivs = XCoreInsn
XcoreInsDgetreg
pred XCoreInsn
XcoreInsDivu = XCoreInsn
XcoreInsDivs
pred XCoreInsn
XcoreInsDrestsp = XCoreInsn
XcoreInsDivu
pred XCoreInsn
XcoreInsDret = XCoreInsn
XcoreInsDrestsp
pred XCoreInsn
XcoreInsEcallf = XCoreInsn
XcoreInsDret
pred XCoreInsn
XcoreInsEcallt = XCoreInsn
XcoreInsEcallf
pred XCoreInsn
XcoreInsEdu = XCoreInsn
XcoreInsEcallt
pred XCoreInsn
XcoreInsEef = XCoreInsn
XcoreInsEdu
pred XCoreInsn
XcoreInsEet = XCoreInsn
XcoreInsEef
pred XCoreInsn
XcoreInsEeu = XCoreInsn
XcoreInsEet
pred XCoreInsn
XcoreInsEndin = XCoreInsn
XcoreInsEeu
pred XCoreInsn
XcoreInsEntsp = XCoreInsn
XcoreInsEndin
pred XCoreInsn
XcoreInsEq = XCoreInsn
XcoreInsEntsp
pred XCoreInsn
XcoreInsExtdp = XCoreInsn
XcoreInsEq
pred XCoreInsn
XcoreInsExtsp = XCoreInsn
XcoreInsExtdp
pred XCoreInsn
XcoreInsFreer = XCoreInsn
XcoreInsExtsp
pred XCoreInsn
XcoreInsFreet = XCoreInsn
XcoreInsFreer
pred XCoreInsn
XcoreInsGetd = XCoreInsn
XcoreInsFreet
pred XCoreInsn
XcoreInsGet = XCoreInsn
XcoreInsGetd
pred XCoreInsn
XcoreInsGetn = XCoreInsn
XcoreInsGet
pred XCoreInsn
XcoreInsGetr = XCoreInsn
XcoreInsGetn
pred XCoreInsn
XcoreInsGetsr = XCoreInsn
XcoreInsGetr
pred XCoreInsn
XcoreInsGetst = XCoreInsn
XcoreInsGetsr
pred XCoreInsn
XcoreInsGetts = XCoreInsn
XcoreInsGetst
pred XCoreInsn
XcoreInsInct = XCoreInsn
XcoreInsGetts
pred XCoreInsn
XcoreInsInit = XCoreInsn
XcoreInsInct
pred XCoreInsn
XcoreInsInpw = XCoreInsn
XcoreInsInit
pred XCoreInsn
XcoreInsInshr = XCoreInsn
XcoreInsInpw
pred XCoreInsn
XcoreInsInt = XCoreInsn
XcoreInsInshr
pred XCoreInsn
XcoreInsIn = XCoreInsn
XcoreInsInt
pred XCoreInsn
XcoreInsKcall = XCoreInsn
XcoreInsIn
pred XCoreInsn
XcoreInsKentsp = XCoreInsn
XcoreInsKcall
pred XCoreInsn
XcoreInsKrestsp = XCoreInsn
XcoreInsKentsp
pred XCoreInsn
XcoreInsKret = XCoreInsn
XcoreInsKrestsp
pred XCoreInsn
XcoreInsLadd = XCoreInsn
XcoreInsKret
pred XCoreInsn
XcoreInsLd16s = XCoreInsn
XcoreInsLadd
pred XCoreInsn
XcoreInsLd8u = XCoreInsn
XcoreInsLd16s
pred XCoreInsn
XcoreInsLda16 = XCoreInsn
XcoreInsLd8u
pred XCoreInsn
XcoreInsLdap = XCoreInsn
XcoreInsLda16
pred XCoreInsn
XcoreInsLdaw = XCoreInsn
XcoreInsLdap
pred XCoreInsn
XcoreInsLdc = XCoreInsn
XcoreInsLdaw
pred XCoreInsn
XcoreInsLdw = XCoreInsn
XcoreInsLdc
pred XCoreInsn
XcoreInsLdivu = XCoreInsn
XcoreInsLdw
pred XCoreInsn
XcoreInsLmul = XCoreInsn
XcoreInsLdivu
pred XCoreInsn
XcoreInsLss = XCoreInsn
XcoreInsLmul
pred XCoreInsn
XcoreInsLsub = XCoreInsn
XcoreInsLss
pred XCoreInsn
XcoreInsLsu = XCoreInsn
XcoreInsLsub
pred XCoreInsn
XcoreInsMaccs = XCoreInsn
XcoreInsLsu
pred XCoreInsn
XcoreInsMaccu = XCoreInsn
XcoreInsMaccs
pred XCoreInsn
XcoreInsMjoin = XCoreInsn
XcoreInsMaccu
pred XCoreInsn
XcoreInsMkmsk = XCoreInsn
XcoreInsMjoin
pred XCoreInsn
XcoreInsMsync = XCoreInsn
XcoreInsMkmsk
pred XCoreInsn
XcoreInsMul = XCoreInsn
XcoreInsMsync
pred XCoreInsn
XcoreInsNeg = XCoreInsn
XcoreInsMul
pred XCoreInsn
XcoreInsNot = XCoreInsn
XcoreInsNeg
pred XCoreInsn
XcoreInsOr = XCoreInsn
XcoreInsNot
pred XCoreInsn
XcoreInsOutct = XCoreInsn
XcoreInsOr
pred XCoreInsn
XcoreInsOutpw = XCoreInsn
XcoreInsOutct
pred XCoreInsn
XcoreInsOutshr = XCoreInsn
XcoreInsOutpw
pred XCoreInsn
XcoreInsOutt = XCoreInsn
XcoreInsOutshr
pred XCoreInsn
XcoreInsOut = XCoreInsn
XcoreInsOutt
pred XCoreInsn
XcoreInsPeek = XCoreInsn
XcoreInsOut
pred XCoreInsn
XcoreInsRems = XCoreInsn
XcoreInsPeek
pred XCoreInsn
XcoreInsRemu = XCoreInsn
XcoreInsRems
pred XCoreInsn
XcoreInsRetsp = XCoreInsn
XcoreInsRemu
pred XCoreInsn
XcoreInsSetclk = XCoreInsn
XcoreInsRetsp
pred XCoreInsn
XcoreInsSet = XCoreInsn
XcoreInsSetclk
pred XCoreInsn
XcoreInsSetc = XCoreInsn
XcoreInsSet
pred XCoreInsn
XcoreInsSetd = XCoreInsn
XcoreInsSetc
pred XCoreInsn
XcoreInsSetev = XCoreInsn
XcoreInsSetd
pred XCoreInsn
XcoreInsSetn = XCoreInsn
XcoreInsSetev
pred XCoreInsn
XcoreInsSetpsc = XCoreInsn
XcoreInsSetn
pred XCoreInsn
XcoreInsSetpt = XCoreInsn
XcoreInsSetpsc
pred XCoreInsn
XcoreInsSetrdy = XCoreInsn
XcoreInsSetpt
pred XCoreInsn
XcoreInsSetsr = XCoreInsn
XcoreInsSetrdy
pred XCoreInsn
XcoreInsSettw = XCoreInsn
XcoreInsSetsr
pred XCoreInsn
XcoreInsSetv = XCoreInsn
XcoreInsSettw
pred XCoreInsn
XcoreInsSext = XCoreInsn
XcoreInsSetv
pred XCoreInsn
XcoreInsShl = XCoreInsn
XcoreInsSext
pred XCoreInsn
XcoreInsShr = XCoreInsn
XcoreInsShl
pred XCoreInsn
XcoreInsSsync = XCoreInsn
XcoreInsShr
pred XCoreInsn
XcoreInsSt16 = XCoreInsn
XcoreInsSsync
pred XCoreInsn
XcoreInsSt8 = XCoreInsn
XcoreInsSt16
pred XCoreInsn
XcoreInsStw = XCoreInsn
XcoreInsSt8
pred XCoreInsn
XcoreInsSub = XCoreInsn
XcoreInsStw
pred XCoreInsn
XcoreInsSyncr = XCoreInsn
XcoreInsSub
pred XCoreInsn
XcoreInsTestct = XCoreInsn
XcoreInsSyncr
pred XCoreInsn
XcoreInsTestlcl = XCoreInsn
XcoreInsTestct
pred XCoreInsn
XcoreInsTestwct = XCoreInsn
XcoreInsTestlcl
pred XCoreInsn
XcoreInsTsetmr = XCoreInsn
XcoreInsTestwct
pred XCoreInsn
XcoreInsStart = XCoreInsn
XcoreInsTsetmr
pred XCoreInsn
XcoreInsWaitef = XCoreInsn
XcoreInsStart
pred XCoreInsn
XcoreInsWaitet = XCoreInsn
XcoreInsWaitef
pred XCoreInsn
XcoreInsWaiteu = XCoreInsn
XcoreInsWaitet
pred XCoreInsn
XcoreInsXor = XCoreInsn
XcoreInsWaiteu
pred XCoreInsn
XcoreInsZext = XCoreInsn
XcoreInsXor
pred XCoreInsn
XcoreInsEnding = XCoreInsn
XcoreInsZext
pred XCoreInsn
XcoreInsInvalid = String -> XCoreInsn
forall a. HasCallStack => String -> a
error String
"XCoreInsn.pred: XcoreInsInvalid has no predecessor"
enumFromTo :: XCoreInsn -> XCoreInsn -> [XCoreInsn]
enumFromTo XCoreInsn
from XCoreInsn
to = XCoreInsn -> [XCoreInsn]
forall t. Enum t => t -> [t]
go XCoreInsn
from
where
end :: Int
end = XCoreInsn -> Int
forall a. Enum a => a -> Int
fromEnum XCoreInsn
to
go :: t -> [t]
go t
v = case Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (t -> Int
forall a. Enum a => a -> Int
fromEnum t
v) Int
end of
Ordering
LT -> t
v t -> [t] -> [t]
forall a. a -> [a] -> [a]
: t -> [t]
go (t -> t
forall a. Enum a => a -> a
succ t
v)
Ordering
EQ -> [t
v]
Ordering
GT -> []
enumFrom :: XCoreInsn -> [XCoreInsn]
enumFrom XCoreInsn
from = XCoreInsn -> XCoreInsn -> [XCoreInsn]
forall a. Enum a => a -> a -> [a]
enumFromTo XCoreInsn
from XCoreInsn
XcoreInsEnding
fromEnum :: XCoreInsn -> Int
fromEnum XCoreInsn
XcoreInsInvalid = Int
0
fromEnum XCoreInsn
XcoreInsAdd = Int
1
fromEnum XCoreInsn
XcoreInsAndnot = Int
2
fromEnum XCoreInsn
XcoreInsAnd = Int
3
fromEnum XCoreInsn
XcoreInsAshr = Int
4
fromEnum XCoreInsn
XcoreInsBau = Int
5
fromEnum XCoreInsn
XcoreInsBitrev = Int
6
fromEnum XCoreInsn
XcoreInsBla = Int
7
fromEnum XCoreInsn
XcoreInsBlat = Int
8
fromEnum XCoreInsn
XcoreInsBl = Int
9
fromEnum XCoreInsn
XcoreInsBf = Int
10
fromEnum XCoreInsn
XcoreInsBt = Int
11
fromEnum XCoreInsn
XcoreInsBu = Int
12
fromEnum XCoreInsn
XcoreInsBru = Int
13
fromEnum XCoreInsn
XcoreInsByterev = Int
14
fromEnum XCoreInsn
XcoreInsChkct = Int
15
fromEnum XCoreInsn
XcoreInsClre = Int
16
fromEnum XCoreInsn
XcoreInsClrpt = Int
17
fromEnum XCoreInsn
XcoreInsClrsr = Int
18
fromEnum XCoreInsn
XcoreInsClz = Int
19
fromEnum XCoreInsn
XcoreInsCrc8 = Int
20
fromEnum XCoreInsn
XcoreInsCrc32 = Int
21
fromEnum XCoreInsn
XcoreInsDcall = Int
22
fromEnum XCoreInsn
XcoreInsDentsp = Int
23
fromEnum XCoreInsn
XcoreInsDgetreg = Int
24
fromEnum XCoreInsn
XcoreInsDivs = Int
25
fromEnum XCoreInsn
XcoreInsDivu = Int
26
fromEnum XCoreInsn
XcoreInsDrestsp = Int
27
fromEnum XCoreInsn
XcoreInsDret = Int
28
fromEnum XCoreInsn
XcoreInsEcallf = Int
29
fromEnum XCoreInsn
XcoreInsEcallt = Int
30
fromEnum XCoreInsn
XcoreInsEdu = Int
31
fromEnum XCoreInsn
XcoreInsEef = Int
32
fromEnum XCoreInsn
XcoreInsEet = Int
33
fromEnum XCoreInsn
XcoreInsEeu = Int
34
fromEnum XCoreInsn
XcoreInsEndin = Int
35
fromEnum XCoreInsn
XcoreInsEntsp = Int
36
fromEnum XCoreInsn
XcoreInsEq = Int
37
fromEnum XCoreInsn
XcoreInsExtdp = Int
38
fromEnum XCoreInsn
XcoreInsExtsp = Int
39
fromEnum XCoreInsn
XcoreInsFreer = Int
40
fromEnum XCoreInsn
XcoreInsFreet = Int
41
fromEnum XCoreInsn
XcoreInsGetd = Int
42
fromEnum XCoreInsn
XcoreInsGet = Int
43
fromEnum XCoreInsn
XcoreInsGetn = Int
44
fromEnum XCoreInsn
XcoreInsGetr = Int
45
fromEnum XCoreInsn
XcoreInsGetsr = Int
46
fromEnum XCoreInsn
XcoreInsGetst = Int
47
fromEnum XCoreInsn
XcoreInsGetts = Int
48
fromEnum XCoreInsn
XcoreInsInct = Int
49
fromEnum XCoreInsn
XcoreInsInit = Int
50
fromEnum XCoreInsn
XcoreInsInpw = Int
51
fromEnum XCoreInsn
XcoreInsInshr = Int
52
fromEnum XCoreInsn
XcoreInsInt = Int
53
fromEnum XCoreInsn
XcoreInsIn = Int
54
fromEnum XCoreInsn
XcoreInsKcall = Int
55
fromEnum XCoreInsn
XcoreInsKentsp = Int
56
fromEnum XCoreInsn
XcoreInsKrestsp = Int
57
fromEnum XCoreInsn
XcoreInsKret = Int
58
fromEnum XCoreInsn
XcoreInsLadd = Int
59
fromEnum XCoreInsn
XcoreInsLd16s = Int
60
fromEnum XCoreInsn
XcoreInsLd8u = Int
61
fromEnum XCoreInsn
XcoreInsLda16 = Int
62
fromEnum XCoreInsn
XcoreInsLdap = Int
63
fromEnum XCoreInsn
XcoreInsLdaw = Int
64
fromEnum XCoreInsn
XcoreInsLdc = Int
65
fromEnum XCoreInsn
XcoreInsLdw = Int
66
fromEnum XCoreInsn
XcoreInsLdivu = Int
67
fromEnum XCoreInsn
XcoreInsLmul = Int
68
fromEnum XCoreInsn
XcoreInsLss = Int
69
fromEnum XCoreInsn
XcoreInsLsub = Int
70
fromEnum XCoreInsn
XcoreInsLsu = Int
71
fromEnum XCoreInsn
XcoreInsMaccs = Int
72
fromEnum XCoreInsn
XcoreInsMaccu = Int
73
fromEnum XCoreInsn
XcoreInsMjoin = Int
74
fromEnum XCoreInsn
XcoreInsMkmsk = Int
75
fromEnum XCoreInsn
XcoreInsMsync = Int
76
fromEnum XCoreInsn
XcoreInsMul = Int
77
fromEnum XCoreInsn
XcoreInsNeg = Int
78
fromEnum XCoreInsn
XcoreInsNot = Int
79
fromEnum XCoreInsn
XcoreInsOr = Int
80
fromEnum XCoreInsn
XcoreInsOutct = Int
81
fromEnum XCoreInsn
XcoreInsOutpw = Int
82
fromEnum XCoreInsn
XcoreInsOutshr = Int
83
fromEnum XCoreInsn
XcoreInsOutt = Int
84
fromEnum XCoreInsn
XcoreInsOut = Int
85
fromEnum XCoreInsn
XcoreInsPeek = Int
86
fromEnum XCoreInsn
XcoreInsRems = Int
87
fromEnum XCoreInsn
XcoreInsRemu = Int
88
fromEnum XCoreInsn
XcoreInsRetsp = Int
89
fromEnum XCoreInsn
XcoreInsSetclk = Int
90
fromEnum XCoreInsn
XcoreInsSet = Int
91
fromEnum XCoreInsn
XcoreInsSetc = Int
92
fromEnum XCoreInsn
XcoreInsSetd = Int
93
fromEnum XCoreInsn
XcoreInsSetev = Int
94
fromEnum XCoreInsn
XcoreInsSetn = Int
95
fromEnum XCoreInsn
XcoreInsSetpsc = Int
96
fromEnum XCoreInsn
XcoreInsSetpt = Int
97
fromEnum XCoreInsn
XcoreInsSetrdy = Int
98
fromEnum XCoreInsn
XcoreInsSetsr = Int
99
fromEnum XCoreInsn
XcoreInsSettw = Int
100
fromEnum XCoreInsn
XcoreInsSetv = Int
101
fromEnum XCoreInsn
XcoreInsSext = Int
102
fromEnum XCoreInsn
XcoreInsShl = Int
103
fromEnum XCoreInsn
XcoreInsShr = Int
104
fromEnum XCoreInsn
XcoreInsSsync = Int
105
fromEnum XCoreInsn
XcoreInsSt16 = Int
106
fromEnum XCoreInsn
XcoreInsSt8 = Int
107
fromEnum XCoreInsn
XcoreInsStw = Int
108
fromEnum XCoreInsn
XcoreInsSub = Int
109
fromEnum XCoreInsn
XcoreInsSyncr = Int
110
fromEnum XCoreInsn
XcoreInsTestct = Int
111
fromEnum XCoreInsn
XcoreInsTestlcl = Int
112
fromEnum XCoreInsn
XcoreInsTestwct = Int
113
fromEnum XCoreInsn
XcoreInsTsetmr = Int
114
fromEnum XCoreInsn
XcoreInsStart = Int
115
fromEnum XCoreInsn
XcoreInsWaitef = Int
116
fromEnum XCoreInsn
XcoreInsWaitet = Int
117
fromEnum XCoreInsn
XcoreInsWaiteu = Int
118
fromEnum XCoreInsn
XcoreInsXor = Int
119
fromEnum XCoreInsn
XcoreInsZext = Int
120
fromEnum XCoreInsn
XcoreInsEnding = Int
121
toEnum :: Int -> XCoreInsn
toEnum Int
0 = XCoreInsn
XcoreInsInvalid
toEnum Int
1 = XCoreInsn
XcoreInsAdd
toEnum Int
2 = XCoreInsn
XcoreInsAndnot
toEnum Int
3 = XCoreInsn
XcoreInsAnd
toEnum Int
4 = XCoreInsn
XcoreInsAshr
toEnum Int
5 = XCoreInsn
XcoreInsBau
toEnum Int
6 = XCoreInsn
XcoreInsBitrev
toEnum Int
7 = XCoreInsn
XcoreInsBla
toEnum Int
8 = XCoreInsn
XcoreInsBlat
toEnum Int
9 = XCoreInsn
XcoreInsBl
toEnum Int
10 = XCoreInsn
XcoreInsBf
toEnum Int
11 = XCoreInsn
XcoreInsBt
toEnum Int
12 = XCoreInsn
XcoreInsBu
toEnum Int
13 = XCoreInsn
XcoreInsBru
toEnum Int
14 = XCoreInsn
XcoreInsByterev
toEnum Int
15 = XCoreInsn
XcoreInsChkct
toEnum Int
16 = XCoreInsn
XcoreInsClre
toEnum Int
17 = XCoreInsn
XcoreInsClrpt
toEnum Int
18 = XCoreInsn
XcoreInsClrsr
toEnum Int
19 = XCoreInsn
XcoreInsClz
toEnum Int
20 = XCoreInsn
XcoreInsCrc8
toEnum Int
21 = XCoreInsn
XcoreInsCrc32
toEnum Int
22 = XCoreInsn
XcoreInsDcall
toEnum Int
23 = XCoreInsn
XcoreInsDentsp
toEnum Int
24 = XCoreInsn
XcoreInsDgetreg
toEnum Int
25 = XCoreInsn
XcoreInsDivs
toEnum Int
26 = XCoreInsn
XcoreInsDivu
toEnum Int
27 = XCoreInsn
XcoreInsDrestsp
toEnum Int
28 = XCoreInsn
XcoreInsDret
toEnum Int
29 = XCoreInsn
XcoreInsEcallf
toEnum Int
30 = XCoreInsn
XcoreInsEcallt
toEnum Int
31 = XCoreInsn
XcoreInsEdu
toEnum Int
32 = XCoreInsn
XcoreInsEef
toEnum Int
33 = XCoreInsn
XcoreInsEet
toEnum Int
34 = XCoreInsn
XcoreInsEeu
toEnum Int
35 = XCoreInsn
XcoreInsEndin
toEnum Int
36 = XCoreInsn
XcoreInsEntsp
toEnum Int
37 = XCoreInsn
XcoreInsEq
toEnum Int
38 = XCoreInsn
XcoreInsExtdp
toEnum Int
39 = XCoreInsn
XcoreInsExtsp
toEnum Int
40 = XCoreInsn
XcoreInsFreer
toEnum Int
41 = XCoreInsn
XcoreInsFreet
toEnum Int
42 = XCoreInsn
XcoreInsGetd
toEnum Int
43 = XCoreInsn
XcoreInsGet
toEnum Int
44 = XCoreInsn
XcoreInsGetn
toEnum Int
45 = XCoreInsn
XcoreInsGetr
toEnum Int
46 = XCoreInsn
XcoreInsGetsr
toEnum Int
47 = XCoreInsn
XcoreInsGetst
toEnum Int
48 = XCoreInsn
XcoreInsGetts
toEnum Int
49 = XCoreInsn
XcoreInsInct
toEnum Int
50 = XCoreInsn
XcoreInsInit
toEnum Int
51 = XCoreInsn
XcoreInsInpw
toEnum Int
52 = XCoreInsn
XcoreInsInshr
toEnum Int
53 = XCoreInsn
XcoreInsInt
toEnum Int
54 = XCoreInsn
XcoreInsIn
toEnum Int
55 = XCoreInsn
XcoreInsKcall
toEnum Int
56 = XCoreInsn
XcoreInsKentsp
toEnum Int
57 = XCoreInsn
XcoreInsKrestsp
toEnum Int
58 = XCoreInsn
XcoreInsKret
toEnum Int
59 = XCoreInsn
XcoreInsLadd
toEnum Int
60 = XCoreInsn
XcoreInsLd16s
toEnum Int
61 = XCoreInsn
XcoreInsLd8u
toEnum Int
62 = XCoreInsn
XcoreInsLda16
toEnum Int
63 = XCoreInsn
XcoreInsLdap
toEnum Int
64 = XCoreInsn
XcoreInsLdaw
toEnum Int
65 = XCoreInsn
XcoreInsLdc
toEnum Int
66 = XCoreInsn
XcoreInsLdw
toEnum Int
67 = XCoreInsn
XcoreInsLdivu
toEnum Int
68 = XCoreInsn
XcoreInsLmul
toEnum Int
69 = XCoreInsn
XcoreInsLss
toEnum Int
70 = XCoreInsn
XcoreInsLsub
toEnum Int
71 = XCoreInsn
XcoreInsLsu
toEnum Int
72 = XCoreInsn
XcoreInsMaccs
toEnum Int
73 = XCoreInsn
XcoreInsMaccu
toEnum Int
74 = XCoreInsn
XcoreInsMjoin
toEnum Int
75 = XCoreInsn
XcoreInsMkmsk
toEnum Int
76 = XCoreInsn
XcoreInsMsync
toEnum Int
77 = XCoreInsn
XcoreInsMul
toEnum Int
78 = XCoreInsn
XcoreInsNeg
toEnum Int
79 = XCoreInsn
XcoreInsNot
toEnum Int
80 = XCoreInsn
XcoreInsOr
toEnum Int
81 = XCoreInsn
XcoreInsOutct
toEnum Int
82 = XCoreInsn
XcoreInsOutpw
toEnum Int
83 = XCoreInsn
XcoreInsOutshr
toEnum Int
84 = XCoreInsn
XcoreInsOutt
toEnum Int
85 = XCoreInsn
XcoreInsOut
toEnum Int
86 = XCoreInsn
XcoreInsPeek
toEnum Int
87 = XCoreInsn
XcoreInsRems
toEnum Int
88 = XCoreInsn
XcoreInsRemu
toEnum Int
89 = XCoreInsn
XcoreInsRetsp
toEnum Int
90 = XCoreInsn
XcoreInsSetclk
toEnum Int
91 = XCoreInsn
XcoreInsSet
toEnum Int
92 = XCoreInsn
XcoreInsSetc
toEnum Int
93 = XCoreInsn
XcoreInsSetd
toEnum Int
94 = XCoreInsn
XcoreInsSetev
toEnum Int
95 = XCoreInsn
XcoreInsSetn
toEnum Int
96 = XCoreInsn
XcoreInsSetpsc
toEnum Int
97 = XCoreInsn
XcoreInsSetpt
toEnum Int
98 = XCoreInsn
XcoreInsSetrdy
toEnum Int
99 = XCoreInsn
XcoreInsSetsr
toEnum Int
100 = XCoreInsn
XcoreInsSettw
toEnum Int
101 = XCoreInsn
XcoreInsSetv
toEnum Int
102 = XCoreInsn
XcoreInsSext
toEnum Int
103 = XCoreInsn
XcoreInsShl
toEnum Int
104 = XCoreInsn
XcoreInsShr
toEnum Int
105 = XCoreInsn
XcoreInsSsync
toEnum Int
106 = XCoreInsn
XcoreInsSt16
toEnum Int
107 = XCoreInsn
XcoreInsSt8
toEnum Int
108 = XCoreInsn
XcoreInsStw
toEnum Int
109 = XCoreInsn
XcoreInsSub
toEnum Int
110 = XCoreInsn
XcoreInsSyncr
toEnum Int
111 = XCoreInsn
XcoreInsTestct
toEnum Int
112 = XCoreInsn
XcoreInsTestlcl
toEnum Int
113 = XCoreInsn
XcoreInsTestwct
toEnum Int
114 = XCoreInsn
XcoreInsTsetmr
toEnum Int
115 = XCoreInsn
XcoreInsStart
toEnum Int
116 = XCoreInsn
XcoreInsWaitef
toEnum Int
117 = XCoreInsn
XcoreInsWaitet
toEnum Int
118 = XCoreInsn
XcoreInsWaiteu
toEnum Int
119 = XCoreInsn
XcoreInsXor
toEnum Int
120 = XCoreInsn
XcoreInsZext
toEnum Int
121 = XCoreInsn
XcoreInsEnding
toEnum Int
unmatched = String -> XCoreInsn
forall a. HasCallStack => String -> a
error (String
"XCoreInsn.toEnum: Cannot match " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Int -> String
forall a. Show a => a -> String
show Int
unmatched)
{-# LINE 113 "src/Hapstone/Internal/XCore.chs" #-}
data XCoreInsnGroup = XcoreGrpInvalid
| XcoreGrpJump
| XcoreGrpEnding
deriving (Show,Eq,Bounded)
instance Enum XCoreInsnGroup where
succ XcoreGrpInvalid = XcoreGrpJump
succ XcoreGrpJump = XcoreGrpEnding
succ XcoreGrpEnding = error "XCoreInsnGroup.succ: XcoreGrpEnding has no successor"
pred XcoreGrpJump = XcoreGrpInvalid
pred XcoreGrpEnding = XcoreGrpJump
pred XcoreGrpInvalid = error "XCoreInsnGroup.pred: XcoreGrpInvalid has no predecessor"
enumFromTo from to = go from
where
end = fromEnum to
go v = case compare (fromEnum v) end of
LT -> v : go (succ v)
EQ -> [v]
GT -> []
enumFrom from = enumFromTo from XcoreGrpEnding
fromEnum XcoreGrpInvalid = 0
fromEnum XcoreGrpJump = 1
fromEnum XcoreGrpEnding = 2
toEnum 0 = XcoreGrpInvalid
toEnum 1 = XcoreGrpJump
toEnum 2 = XcoreGrpEnding
toEnum unmatched = error ("XCoreInsnGroup.toEnum: Cannot match " ++ show unmatched)
{-# LINE 116 "src/Hapstone/Internal/XCore.chs" #-}