module Hapstone.Internal.Arm where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Storable as C2HSImp
import Foreign
import Foreign.C.Types
data ArmShifter = ArmSftInvalid
| ArmSftAsr
| ArmSftLsl
| ArmSftLsr
| ArmSftRor
| ArmSftRrx
| ArmSftAsrReg
| ArmSftLslReg
| ArmSftLsrReg
| ArmSftRorReg
| ArmSftRrxReg
deriving (Show,Eq,Bounded)
instance Enum ArmShifter where
succ ArmSftInvalid = ArmSftAsr
succ ArmSftAsr = ArmSftLsl
succ ArmSftLsl = ArmSftLsr
succ ArmSftLsr = ArmSftRor
succ ArmSftRor = ArmSftRrx
succ ArmSftRrx = ArmSftAsrReg
succ ArmSftAsrReg = ArmSftLslReg
succ ArmSftLslReg = ArmSftLsrReg
succ ArmSftLsrReg = ArmSftRorReg
succ ArmSftRorReg = ArmSftRrxReg
succ ArmSftRrxReg = error "ArmShifter.succ: ArmSftRrxReg has no successor"
pred ArmSftAsr = ArmSftInvalid
pred ArmSftLsl = ArmSftAsr
pred ArmSftLsr = ArmSftLsl
pred ArmSftRor = ArmSftLsr
pred ArmSftRrx = ArmSftRor
pred ArmSftAsrReg = ArmSftRrx
pred ArmSftLslReg = ArmSftAsrReg
pred ArmSftLsrReg = ArmSftLslReg
pred ArmSftRorReg = ArmSftLsrReg
pred ArmSftRrxReg = ArmSftRorReg
pred ArmSftInvalid = error "ArmShifter.pred: ArmSftInvalid 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 ArmSftRrxReg
fromEnum ArmSftInvalid = 0
fromEnum ArmSftAsr = 1
fromEnum ArmSftLsl = 2
fromEnum ArmSftLsr = 3
fromEnum ArmSftRor = 4
fromEnum ArmSftRrx = 5
fromEnum ArmSftAsrReg = 6
fromEnum ArmSftLslReg = 7
fromEnum ArmSftLsrReg = 8
fromEnum ArmSftRorReg = 9
fromEnum ArmSftRrxReg = 10
toEnum 0 = ArmSftInvalid
toEnum 1 = ArmSftAsr
toEnum 2 = ArmSftLsl
toEnum 3 = ArmSftLsr
toEnum 4 = ArmSftRor
toEnum 5 = ArmSftRrx
toEnum 6 = ArmSftAsrReg
toEnum 7 = ArmSftLslReg
toEnum 8 = ArmSftLsrReg
toEnum 9 = ArmSftRorReg
toEnum 10 = ArmSftRrxReg
toEnum unmatched = error ("ArmShifter.toEnum: Cannot match " ++ show unmatched)
data ArmConditionCode = ArmCcInvalid
| ArmCcEq
| ArmCcNe
| ArmCcHs
| ArmCcLo
| ArmCcMi
| ArmCcPl
| ArmCcVs
| ArmCcVc
| ArmCcHi
| ArmCcLs
| ArmCcGe
| ArmCcLt
| ArmCcGt
| ArmCcLe
| ArmCcAl
deriving (Show,Eq,Bounded)
instance Enum ArmConditionCode where
succ ArmCcInvalid = ArmCcEq
succ ArmCcEq = ArmCcNe
succ ArmCcNe = ArmCcHs
succ ArmCcHs = ArmCcLo
succ ArmCcLo = ArmCcMi
succ ArmCcMi = ArmCcPl
succ ArmCcPl = ArmCcVs
succ ArmCcVs = ArmCcVc
succ ArmCcVc = ArmCcHi
succ ArmCcHi = ArmCcLs
succ ArmCcLs = ArmCcGe
succ ArmCcGe = ArmCcLt
succ ArmCcLt = ArmCcGt
succ ArmCcGt = ArmCcLe
succ ArmCcLe = ArmCcAl
succ ArmCcAl = error "ArmConditionCode.succ: ArmCcAl has no successor"
pred ArmCcEq = ArmCcInvalid
pred ArmCcNe = ArmCcEq
pred ArmCcHs = ArmCcNe
pred ArmCcLo = ArmCcHs
pred ArmCcMi = ArmCcLo
pred ArmCcPl = ArmCcMi
pred ArmCcVs = ArmCcPl
pred ArmCcVc = ArmCcVs
pred ArmCcHi = ArmCcVc
pred ArmCcLs = ArmCcHi
pred ArmCcGe = ArmCcLs
pred ArmCcLt = ArmCcGe
pred ArmCcGt = ArmCcLt
pred ArmCcLe = ArmCcGt
pred ArmCcAl = ArmCcLe
pred ArmCcInvalid = error "ArmConditionCode.pred: ArmCcInvalid 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 ArmCcAl
fromEnum ArmCcInvalid = 0
fromEnum ArmCcEq = 1
fromEnum ArmCcNe = 2
fromEnum ArmCcHs = 3
fromEnum ArmCcLo = 4
fromEnum ArmCcMi = 5
fromEnum ArmCcPl = 6
fromEnum ArmCcVs = 7
fromEnum ArmCcVc = 8
fromEnum ArmCcHi = 9
fromEnum ArmCcLs = 10
fromEnum ArmCcGe = 11
fromEnum ArmCcLt = 12
fromEnum ArmCcGt = 13
fromEnum ArmCcLe = 14
fromEnum ArmCcAl = 15
toEnum 0 = ArmCcInvalid
toEnum 1 = ArmCcEq
toEnum 2 = ArmCcNe
toEnum 3 = ArmCcHs
toEnum 4 = ArmCcLo
toEnum 5 = ArmCcMi
toEnum 6 = ArmCcPl
toEnum 7 = ArmCcVs
toEnum 8 = ArmCcVc
toEnum 9 = ArmCcHi
toEnum 10 = ArmCcLs
toEnum 11 = ArmCcGe
toEnum 12 = ArmCcLt
toEnum 13 = ArmCcGt
toEnum 14 = ArmCcLe
toEnum 15 = ArmCcAl
toEnum unmatched = error ("ArmConditionCode.toEnum: Cannot match " ++ show unmatched)
data ArmSysreg = ArmSysregInvalid
| ArmSysregSpsrC
| ArmSysregSpsrX
| ArmSysregSpsrS
| ArmSysregSpsrF
| ArmSysregCpsrC
| ArmSysregCpsrX
| ArmSysregCpsrS
| ArmSysregCpsrF
| ArmSysregApsr
| ArmSysregApsrG
| ArmSysregApsrNzcvq
| ArmSysregApsrNzcvqg
| ArmSysregIapsr
| ArmSysregIapsrG
| ArmSysregIapsrNzcvqg
| ArmSysregIapsrNzcvq
| ArmSysregEapsr
| ArmSysregEapsrG
| ArmSysregEapsrNzcvqg
| ArmSysregEapsrNzcvq
| ArmSysregXpsr
| ArmSysregXpsrG
| ArmSysregXpsrNzcvqg
| ArmSysregXpsrNzcvq
| ArmSysregIpsr
| ArmSysregEpsr
| ArmSysregIepsr
| ArmSysregMsp
| ArmSysregPsp
| ArmSysregPrimask
| ArmSysregBasepri
| ArmSysregBasepriMax
| ArmSysregFaultmask
| ArmSysregControl
| ArmSysregR8Usr
| ArmSysregR9Usr
| ArmSysregR10Usr
| ArmSysregR11Usr
| ArmSysregR12Usr
| ArmSysregSpUsr
| ArmSysregLrUsr
| ArmSysregR8Fiq
| ArmSysregR9Fiq
| ArmSysregR10Fiq
| ArmSysregR11Fiq
| ArmSysregR12Fiq
| ArmSysregSpFiq
| ArmSysregLrFiq
| ArmSysregLrIrq
| ArmSysregSpIrq
| ArmSysregLrSvc
| ArmSysregSpSvc
| ArmSysregLrAbt
| ArmSysregSpAbt
| ArmSysregLrUnd
| ArmSysregSpUnd
| ArmSysregLrMon
| ArmSysregSpMon
| ArmSysregElrHyp
| ArmSysregSpHyp
| ArmSysregSpsrFiq
| ArmSysregSpsrIrq
| ArmSysregSpsrSvc
| ArmSysregSpsrAbt
| ArmSysregSpsrUnd
| ArmSysregSpsrMon
| ArmSysregSpsrHyp
deriving (Show,Eq,Bounded)
instance Enum ArmSysreg where
succ ArmSysregInvalid = ArmSysregSpsrC
succ ArmSysregSpsrC = ArmSysregSpsrX
succ ArmSysregSpsrX = ArmSysregSpsrS
succ ArmSysregSpsrS = ArmSysregSpsrF
succ ArmSysregSpsrF = ArmSysregCpsrC
succ ArmSysregCpsrC = ArmSysregCpsrX
succ ArmSysregCpsrX = ArmSysregCpsrS
succ ArmSysregCpsrS = ArmSysregCpsrF
succ ArmSysregCpsrF = ArmSysregApsr
succ ArmSysregApsr = ArmSysregApsrG
succ ArmSysregApsrG = ArmSysregApsrNzcvq
succ ArmSysregApsrNzcvq = ArmSysregApsrNzcvqg
succ ArmSysregApsrNzcvqg = ArmSysregIapsr
succ ArmSysregIapsr = ArmSysregIapsrG
succ ArmSysregIapsrG = ArmSysregIapsrNzcvqg
succ ArmSysregIapsrNzcvqg = ArmSysregIapsrNzcvq
succ ArmSysregIapsrNzcvq = ArmSysregEapsr
succ ArmSysregEapsr = ArmSysregEapsrG
succ ArmSysregEapsrG = ArmSysregEapsrNzcvqg
succ ArmSysregEapsrNzcvqg = ArmSysregEapsrNzcvq
succ ArmSysregEapsrNzcvq = ArmSysregXpsr
succ ArmSysregXpsr = ArmSysregXpsrG
succ ArmSysregXpsrG = ArmSysregXpsrNzcvqg
succ ArmSysregXpsrNzcvqg = ArmSysregXpsrNzcvq
succ ArmSysregXpsrNzcvq = ArmSysregIpsr
succ ArmSysregIpsr = ArmSysregEpsr
succ ArmSysregEpsr = ArmSysregIepsr
succ ArmSysregIepsr = ArmSysregMsp
succ ArmSysregMsp = ArmSysregPsp
succ ArmSysregPsp = ArmSysregPrimask
succ ArmSysregPrimask = ArmSysregBasepri
succ ArmSysregBasepri = ArmSysregBasepriMax
succ ArmSysregBasepriMax = ArmSysregFaultmask
succ ArmSysregFaultmask = ArmSysregControl
succ ArmSysregControl = ArmSysregR8Usr
succ ArmSysregR8Usr = ArmSysregR9Usr
succ ArmSysregR9Usr = ArmSysregR10Usr
succ ArmSysregR10Usr = ArmSysregR11Usr
succ ArmSysregR11Usr = ArmSysregR12Usr
succ ArmSysregR12Usr = ArmSysregSpUsr
succ ArmSysregSpUsr = ArmSysregLrUsr
succ ArmSysregLrUsr = ArmSysregR8Fiq
succ ArmSysregR8Fiq = ArmSysregR9Fiq
succ ArmSysregR9Fiq = ArmSysregR10Fiq
succ ArmSysregR10Fiq = ArmSysregR11Fiq
succ ArmSysregR11Fiq = ArmSysregR12Fiq
succ ArmSysregR12Fiq = ArmSysregSpFiq
succ ArmSysregSpFiq = ArmSysregLrFiq
succ ArmSysregLrFiq = ArmSysregLrIrq
succ ArmSysregLrIrq = ArmSysregSpIrq
succ ArmSysregSpIrq = ArmSysregLrSvc
succ ArmSysregLrSvc = ArmSysregSpSvc
succ ArmSysregSpSvc = ArmSysregLrAbt
succ ArmSysregLrAbt = ArmSysregSpAbt
succ ArmSysregSpAbt = ArmSysregLrUnd
succ ArmSysregLrUnd = ArmSysregSpUnd
succ ArmSysregSpUnd = ArmSysregLrMon
succ ArmSysregLrMon = ArmSysregSpMon
succ ArmSysregSpMon = ArmSysregElrHyp
succ ArmSysregElrHyp = ArmSysregSpHyp
succ ArmSysregSpHyp = ArmSysregSpsrFiq
succ ArmSysregSpsrFiq = ArmSysregSpsrIrq
succ ArmSysregSpsrIrq = ArmSysregSpsrSvc
succ ArmSysregSpsrSvc = ArmSysregSpsrAbt
succ ArmSysregSpsrAbt = ArmSysregSpsrUnd
succ ArmSysregSpsrUnd = ArmSysregSpsrMon
succ ArmSysregSpsrMon = ArmSysregSpsrHyp
succ ArmSysregSpsrHyp = error "ArmSysreg.succ: ArmSysregSpsrHyp has no successor"
pred ArmSysregSpsrC = ArmSysregInvalid
pred ArmSysregSpsrX = ArmSysregSpsrC
pred ArmSysregSpsrS = ArmSysregSpsrX
pred ArmSysregSpsrF = ArmSysregSpsrS
pred ArmSysregCpsrC = ArmSysregSpsrF
pred ArmSysregCpsrX = ArmSysregCpsrC
pred ArmSysregCpsrS = ArmSysregCpsrX
pred ArmSysregCpsrF = ArmSysregCpsrS
pred ArmSysregApsr = ArmSysregCpsrF
pred ArmSysregApsrG = ArmSysregApsr
pred ArmSysregApsrNzcvq = ArmSysregApsrG
pred ArmSysregApsrNzcvqg = ArmSysregApsrNzcvq
pred ArmSysregIapsr = ArmSysregApsrNzcvqg
pred ArmSysregIapsrG = ArmSysregIapsr
pred ArmSysregIapsrNzcvqg = ArmSysregIapsrG
pred ArmSysregIapsrNzcvq = ArmSysregIapsrNzcvqg
pred ArmSysregEapsr = ArmSysregIapsrNzcvq
pred ArmSysregEapsrG = ArmSysregEapsr
pred ArmSysregEapsrNzcvqg = ArmSysregEapsrG
pred ArmSysregEapsrNzcvq = ArmSysregEapsrNzcvqg
pred ArmSysregXpsr = ArmSysregEapsrNzcvq
pred ArmSysregXpsrG = ArmSysregXpsr
pred ArmSysregXpsrNzcvqg = ArmSysregXpsrG
pred ArmSysregXpsrNzcvq = ArmSysregXpsrNzcvqg
pred ArmSysregIpsr = ArmSysregXpsrNzcvq
pred ArmSysregEpsr = ArmSysregIpsr
pred ArmSysregIepsr = ArmSysregEpsr
pred ArmSysregMsp = ArmSysregIepsr
pred ArmSysregPsp = ArmSysregMsp
pred ArmSysregPrimask = ArmSysregPsp
pred ArmSysregBasepri = ArmSysregPrimask
pred ArmSysregBasepriMax = ArmSysregBasepri
pred ArmSysregFaultmask = ArmSysregBasepriMax
pred ArmSysregControl = ArmSysregFaultmask
pred ArmSysregR8Usr = ArmSysregControl
pred ArmSysregR9Usr = ArmSysregR8Usr
pred ArmSysregR10Usr = ArmSysregR9Usr
pred ArmSysregR11Usr = ArmSysregR10Usr
pred ArmSysregR12Usr = ArmSysregR11Usr
pred ArmSysregSpUsr = ArmSysregR12Usr
pred ArmSysregLrUsr = ArmSysregSpUsr
pred ArmSysregR8Fiq = ArmSysregLrUsr
pred ArmSysregR9Fiq = ArmSysregR8Fiq
pred ArmSysregR10Fiq = ArmSysregR9Fiq
pred ArmSysregR11Fiq = ArmSysregR10Fiq
pred ArmSysregR12Fiq = ArmSysregR11Fiq
pred ArmSysregSpFiq = ArmSysregR12Fiq
pred ArmSysregLrFiq = ArmSysregSpFiq
pred ArmSysregLrIrq = ArmSysregLrFiq
pred ArmSysregSpIrq = ArmSysregLrIrq
pred ArmSysregLrSvc = ArmSysregSpIrq
pred ArmSysregSpSvc = ArmSysregLrSvc
pred ArmSysregLrAbt = ArmSysregSpSvc
pred ArmSysregSpAbt = ArmSysregLrAbt
pred ArmSysregLrUnd = ArmSysregSpAbt
pred ArmSysregSpUnd = ArmSysregLrUnd
pred ArmSysregLrMon = ArmSysregSpUnd
pred ArmSysregSpMon = ArmSysregLrMon
pred ArmSysregElrHyp = ArmSysregSpMon
pred ArmSysregSpHyp = ArmSysregElrHyp
pred ArmSysregSpsrFiq = ArmSysregSpHyp
pred ArmSysregSpsrIrq = ArmSysregSpsrFiq
pred ArmSysregSpsrSvc = ArmSysregSpsrIrq
pred ArmSysregSpsrAbt = ArmSysregSpsrSvc
pred ArmSysregSpsrUnd = ArmSysregSpsrAbt
pred ArmSysregSpsrMon = ArmSysregSpsrUnd
pred ArmSysregSpsrHyp = ArmSysregSpsrMon
pred ArmSysregInvalid = error "ArmSysreg.pred: ArmSysregInvalid 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 ArmSysregSpsrHyp
fromEnum ArmSysregInvalid = 0
fromEnum ArmSysregSpsrC = 1
fromEnum ArmSysregSpsrX = 2
fromEnum ArmSysregSpsrS = 4
fromEnum ArmSysregSpsrF = 8
fromEnum ArmSysregCpsrC = 16
fromEnum ArmSysregCpsrX = 32
fromEnum ArmSysregCpsrS = 64
fromEnum ArmSysregCpsrF = 128
fromEnum ArmSysregApsr = 256
fromEnum ArmSysregApsrG = 257
fromEnum ArmSysregApsrNzcvq = 258
fromEnum ArmSysregApsrNzcvqg = 259
fromEnum ArmSysregIapsr = 260
fromEnum ArmSysregIapsrG = 261
fromEnum ArmSysregIapsrNzcvqg = 262
fromEnum ArmSysregIapsrNzcvq = 263
fromEnum ArmSysregEapsr = 264
fromEnum ArmSysregEapsrG = 265
fromEnum ArmSysregEapsrNzcvqg = 266
fromEnum ArmSysregEapsrNzcvq = 267
fromEnum ArmSysregXpsr = 268
fromEnum ArmSysregXpsrG = 269
fromEnum ArmSysregXpsrNzcvqg = 270
fromEnum ArmSysregXpsrNzcvq = 271
fromEnum ArmSysregIpsr = 272
fromEnum ArmSysregEpsr = 273
fromEnum ArmSysregIepsr = 274
fromEnum ArmSysregMsp = 275
fromEnum ArmSysregPsp = 276
fromEnum ArmSysregPrimask = 277
fromEnum ArmSysregBasepri = 278
fromEnum ArmSysregBasepriMax = 279
fromEnum ArmSysregFaultmask = 280
fromEnum ArmSysregControl = 281
fromEnum ArmSysregR8Usr = 282
fromEnum ArmSysregR9Usr = 283
fromEnum ArmSysregR10Usr = 284
fromEnum ArmSysregR11Usr = 285
fromEnum ArmSysregR12Usr = 286
fromEnum ArmSysregSpUsr = 287
fromEnum ArmSysregLrUsr = 288
fromEnum ArmSysregR8Fiq = 289
fromEnum ArmSysregR9Fiq = 290
fromEnum ArmSysregR10Fiq = 291
fromEnum ArmSysregR11Fiq = 292
fromEnum ArmSysregR12Fiq = 293
fromEnum ArmSysregSpFiq = 294
fromEnum ArmSysregLrFiq = 295
fromEnum ArmSysregLrIrq = 296
fromEnum ArmSysregSpIrq = 297
fromEnum ArmSysregLrSvc = 298
fromEnum ArmSysregSpSvc = 299
fromEnum ArmSysregLrAbt = 300
fromEnum ArmSysregSpAbt = 301
fromEnum ArmSysregLrUnd = 302
fromEnum ArmSysregSpUnd = 303
fromEnum ArmSysregLrMon = 304
fromEnum ArmSysregSpMon = 305
fromEnum ArmSysregElrHyp = 306
fromEnum ArmSysregSpHyp = 307
fromEnum ArmSysregSpsrFiq = 308
fromEnum ArmSysregSpsrIrq = 309
fromEnum ArmSysregSpsrSvc = 310
fromEnum ArmSysregSpsrAbt = 311
fromEnum ArmSysregSpsrUnd = 312
fromEnum ArmSysregSpsrMon = 313
fromEnum ArmSysregSpsrHyp = 314
toEnum 0 = ArmSysregInvalid
toEnum 1 = ArmSysregSpsrC
toEnum 2 = ArmSysregSpsrX
toEnum 4 = ArmSysregSpsrS
toEnum 8 = ArmSysregSpsrF
toEnum 16 = ArmSysregCpsrC
toEnum 32 = ArmSysregCpsrX
toEnum 64 = ArmSysregCpsrS
toEnum 128 = ArmSysregCpsrF
toEnum 256 = ArmSysregApsr
toEnum 257 = ArmSysregApsrG
toEnum 258 = ArmSysregApsrNzcvq
toEnum 259 = ArmSysregApsrNzcvqg
toEnum 260 = ArmSysregIapsr
toEnum 261 = ArmSysregIapsrG
toEnum 262 = ArmSysregIapsrNzcvqg
toEnum 263 = ArmSysregIapsrNzcvq
toEnum 264 = ArmSysregEapsr
toEnum 265 = ArmSysregEapsrG
toEnum 266 = ArmSysregEapsrNzcvqg
toEnum 267 = ArmSysregEapsrNzcvq
toEnum 268 = ArmSysregXpsr
toEnum 269 = ArmSysregXpsrG
toEnum 270 = ArmSysregXpsrNzcvqg
toEnum 271 = ArmSysregXpsrNzcvq
toEnum 272 = ArmSysregIpsr
toEnum 273 = ArmSysregEpsr
toEnum 274 = ArmSysregIepsr
toEnum 275 = ArmSysregMsp
toEnum 276 = ArmSysregPsp
toEnum 277 = ArmSysregPrimask
toEnum 278 = ArmSysregBasepri
toEnum 279 = ArmSysregBasepriMax
toEnum 280 = ArmSysregFaultmask
toEnum 281 = ArmSysregControl
toEnum 282 = ArmSysregR8Usr
toEnum 283 = ArmSysregR9Usr
toEnum 284 = ArmSysregR10Usr
toEnum 285 = ArmSysregR11Usr
toEnum 286 = ArmSysregR12Usr
toEnum 287 = ArmSysregSpUsr
toEnum 288 = ArmSysregLrUsr
toEnum 289 = ArmSysregR8Fiq
toEnum 290 = ArmSysregR9Fiq
toEnum 291 = ArmSysregR10Fiq
toEnum 292 = ArmSysregR11Fiq
toEnum 293 = ArmSysregR12Fiq
toEnum 294 = ArmSysregSpFiq
toEnum 295 = ArmSysregLrFiq
toEnum 296 = ArmSysregLrIrq
toEnum 297 = ArmSysregSpIrq
toEnum 298 = ArmSysregLrSvc
toEnum 299 = ArmSysregSpSvc
toEnum 300 = ArmSysregLrAbt
toEnum 301 = ArmSysregSpAbt
toEnum 302 = ArmSysregLrUnd
toEnum 303 = ArmSysregSpUnd
toEnum 304 = ArmSysregLrMon
toEnum 305 = ArmSysregSpMon
toEnum 306 = ArmSysregElrHyp
toEnum 307 = ArmSysregSpHyp
toEnum 308 = ArmSysregSpsrFiq
toEnum 309 = ArmSysregSpsrIrq
toEnum 310 = ArmSysregSpsrSvc
toEnum 311 = ArmSysregSpsrAbt
toEnum 312 = ArmSysregSpsrUnd
toEnum 313 = ArmSysregSpsrMon
toEnum 314 = ArmSysregSpsrHyp
toEnum unmatched = error ("ArmSysreg.toEnum: Cannot match " ++ show unmatched)
data ArmMemBarrier = ArmMbInvalid
| ArmMbReserved0
| ArmMbOshld
| ArmMbOshst
| ArmMbOsh
| ArmMbReserved4
| ArmMbNshld
| ArmMbNshst
| ArmMbNsh
| ArmMbReserved8
| ArmMbIshld
| ArmMbIshst
| ArmMbIsh
| ArmMbReserved12
| ArmMbLd
| ArmMbSt
| ArmMbSy
deriving (Show,Eq,Bounded)
instance Enum ArmMemBarrier where
succ ArmMbInvalid = ArmMbReserved0
succ ArmMbReserved0 = ArmMbOshld
succ ArmMbOshld = ArmMbOshst
succ ArmMbOshst = ArmMbOsh
succ ArmMbOsh = ArmMbReserved4
succ ArmMbReserved4 = ArmMbNshld
succ ArmMbNshld = ArmMbNshst
succ ArmMbNshst = ArmMbNsh
succ ArmMbNsh = ArmMbReserved8
succ ArmMbReserved8 = ArmMbIshld
succ ArmMbIshld = ArmMbIshst
succ ArmMbIshst = ArmMbIsh
succ ArmMbIsh = ArmMbReserved12
succ ArmMbReserved12 = ArmMbLd
succ ArmMbLd = ArmMbSt
succ ArmMbSt = ArmMbSy
succ ArmMbSy = error "ArmMemBarrier.succ: ArmMbSy has no successor"
pred ArmMbReserved0 = ArmMbInvalid
pred ArmMbOshld = ArmMbReserved0
pred ArmMbOshst = ArmMbOshld
pred ArmMbOsh = ArmMbOshst
pred ArmMbReserved4 = ArmMbOsh
pred ArmMbNshld = ArmMbReserved4
pred ArmMbNshst = ArmMbNshld
pred ArmMbNsh = ArmMbNshst
pred ArmMbReserved8 = ArmMbNsh
pred ArmMbIshld = ArmMbReserved8
pred ArmMbIshst = ArmMbIshld
pred ArmMbIsh = ArmMbIshst
pred ArmMbReserved12 = ArmMbIsh
pred ArmMbLd = ArmMbReserved12
pred ArmMbSt = ArmMbLd
pred ArmMbSy = ArmMbSt
pred ArmMbInvalid = error "ArmMemBarrier.pred: ArmMbInvalid 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 ArmMbSy
fromEnum ArmMbInvalid = 0
fromEnum ArmMbReserved0 = 1
fromEnum ArmMbOshld = 2
fromEnum ArmMbOshst = 3
fromEnum ArmMbOsh = 4
fromEnum ArmMbReserved4 = 5
fromEnum ArmMbNshld = 6
fromEnum ArmMbNshst = 7
fromEnum ArmMbNsh = 8
fromEnum ArmMbReserved8 = 9
fromEnum ArmMbIshld = 10
fromEnum ArmMbIshst = 11
fromEnum ArmMbIsh = 12
fromEnum ArmMbReserved12 = 13
fromEnum ArmMbLd = 14
fromEnum ArmMbSt = 15
fromEnum ArmMbSy = 16
toEnum 0 = ArmMbInvalid
toEnum 1 = ArmMbReserved0
toEnum 2 = ArmMbOshld
toEnum 3 = ArmMbOshst
toEnum 4 = ArmMbOsh
toEnum 5 = ArmMbReserved4
toEnum 6 = ArmMbNshld
toEnum 7 = ArmMbNshst
toEnum 8 = ArmMbNsh
toEnum 9 = ArmMbReserved8
toEnum 10 = ArmMbIshld
toEnum 11 = ArmMbIshst
toEnum 12 = ArmMbIsh
toEnum 13 = ArmMbReserved12
toEnum 14 = ArmMbLd
toEnum 15 = ArmMbSt
toEnum 16 = ArmMbSy
toEnum unmatched = error ("ArmMemBarrier.toEnum: Cannot match " ++ show unmatched)
data ArmOpType = ArmOpInvalid
| ArmOpReg
| ArmOpImm
| ArmOpMem
| ArmOpFp
| ArmOpCimm
| ArmOpPimm
| ArmOpSetend
| ArmOpSysreg
deriving (Show,Eq,Bounded)
instance Enum ArmOpType where
succ ArmOpInvalid = ArmOpReg
succ ArmOpReg = ArmOpImm
succ ArmOpImm = ArmOpMem
succ ArmOpMem = ArmOpFp
succ ArmOpFp = ArmOpCimm
succ ArmOpCimm = ArmOpPimm
succ ArmOpPimm = ArmOpSetend
succ ArmOpSetend = ArmOpSysreg
succ ArmOpSysreg = error "ArmOpType.succ: ArmOpSysreg has no successor"
pred ArmOpReg = ArmOpInvalid
pred ArmOpImm = ArmOpReg
pred ArmOpMem = ArmOpImm
pred ArmOpFp = ArmOpMem
pred ArmOpCimm = ArmOpFp
pred ArmOpPimm = ArmOpCimm
pred ArmOpSetend = ArmOpPimm
pred ArmOpSysreg = ArmOpSetend
pred ArmOpInvalid = error "ArmOpType.pred: ArmOpInvalid 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 ArmOpSysreg
fromEnum ArmOpInvalid = 0
fromEnum ArmOpReg = 1
fromEnum ArmOpImm = 2
fromEnum ArmOpMem = 3
fromEnum ArmOpFp = 4
fromEnum ArmOpCimm = 64
fromEnum ArmOpPimm = 65
fromEnum ArmOpSetend = 66
fromEnum ArmOpSysreg = 67
toEnum 0 = ArmOpInvalid
toEnum 1 = ArmOpReg
toEnum 2 = ArmOpImm
toEnum 3 = ArmOpMem
toEnum 4 = ArmOpFp
toEnum 64 = ArmOpCimm
toEnum 65 = ArmOpPimm
toEnum 66 = ArmOpSetend
toEnum 67 = ArmOpSysreg
toEnum unmatched = error ("ArmOpType.toEnum: Cannot match " ++ show unmatched)
data ArmSetendType = ArmSetendInvalid
| ArmSetendBe
| ArmSetendLe
deriving (Show,Eq,Bounded)
instance Enum ArmSetendType where
succ ArmSetendInvalid = ArmSetendBe
succ ArmSetendBe = ArmSetendLe
succ ArmSetendLe = error "ArmSetendType.succ: ArmSetendLe has no successor"
pred ArmSetendBe = ArmSetendInvalid
pred ArmSetendLe = ArmSetendBe
pred ArmSetendInvalid = error "ArmSetendType.pred: ArmSetendInvalid 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 ArmSetendLe
fromEnum ArmSetendInvalid = 0
fromEnum ArmSetendBe = 1
fromEnum ArmSetendLe = 2
toEnum 0 = ArmSetendInvalid
toEnum 1 = ArmSetendBe
toEnum 2 = ArmSetendLe
toEnum unmatched = error ("ArmSetendType.toEnum: Cannot match " ++ show unmatched)
data ArmCpsmodeType = ArmCpsmodeInvalid
| ArmCpsmodeIe
| ArmCpsmodeId
deriving (Show,Eq,Bounded)
instance Enum ArmCpsmodeType where
succ ArmCpsmodeInvalid = ArmCpsmodeIe
succ ArmCpsmodeIe = ArmCpsmodeId
succ ArmCpsmodeId = error "ArmCpsmodeType.succ: ArmCpsmodeId has no successor"
pred ArmCpsmodeIe = ArmCpsmodeInvalid
pred ArmCpsmodeId = ArmCpsmodeIe
pred ArmCpsmodeInvalid = error "ArmCpsmodeType.pred: ArmCpsmodeInvalid 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 ArmCpsmodeId
fromEnum ArmCpsmodeInvalid = 0
fromEnum ArmCpsmodeIe = 2
fromEnum ArmCpsmodeId = 3
toEnum 0 = ArmCpsmodeInvalid
toEnum 2 = ArmCpsmodeIe
toEnum 3 = ArmCpsmodeId
toEnum unmatched = error ("ArmCpsmodeType.toEnum: Cannot match " ++ show unmatched)
data ArmCpsflagType = ArmCpsflagInvalid
| ArmCpsflagF
| ArmCpsflagI
| ArmCpsflagA
| ArmCpsflagNone
deriving (Show,Eq,Bounded)
instance Enum ArmCpsflagType where
succ ArmCpsflagInvalid = ArmCpsflagF
succ ArmCpsflagF = ArmCpsflagI
succ ArmCpsflagI = ArmCpsflagA
succ ArmCpsflagA = ArmCpsflagNone
succ ArmCpsflagNone = error "ArmCpsflagType.succ: ArmCpsflagNone has no successor"
pred ArmCpsflagF = ArmCpsflagInvalid
pred ArmCpsflagI = ArmCpsflagF
pred ArmCpsflagA = ArmCpsflagI
pred ArmCpsflagNone = ArmCpsflagA
pred ArmCpsflagInvalid = error "ArmCpsflagType.pred: ArmCpsflagInvalid 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 ArmCpsflagNone
fromEnum ArmCpsflagInvalid = 0
fromEnum ArmCpsflagF = 1
fromEnum ArmCpsflagI = 2
fromEnum ArmCpsflagA = 4
fromEnum ArmCpsflagNone = 16
toEnum 0 = ArmCpsflagInvalid
toEnum 1 = ArmCpsflagF
toEnum 2 = ArmCpsflagI
toEnum 4 = ArmCpsflagA
toEnum 16 = ArmCpsflagNone
toEnum unmatched = error ("ArmCpsflagType.toEnum: Cannot match " ++ show unmatched)
data ArmVectordataType = ArmVectordataInvalid
| ArmVectordataI8
| ArmVectordataI16
| ArmVectordataI32
| ArmVectordataI64
| ArmVectordataS8
| ArmVectordataS16
| ArmVectordataS32
| ArmVectordataS64
| ArmVectordataU8
| ArmVectordataU16
| ArmVectordataU32
| ArmVectordataU64
| ArmVectordataP8
| ArmVectordataF32
| ArmVectordataF64
| ArmVectordataF16f64
| ArmVectordataF64f16
| ArmVectordataF32f16
| ArmVectordataF16f32
| ArmVectordataF64f32
| ArmVectordataF32f64
| ArmVectordataS32f32
| ArmVectordataU32f32
| ArmVectordataF32s32
| ArmVectordataF32u32
| ArmVectordataF64s16
| ArmVectordataF32s16
| ArmVectordataF64s32
| ArmVectordataS16f64
| ArmVectordataS16f32
| ArmVectordataS32f64
| ArmVectordataU16f64
| ArmVectordataU16f32
| ArmVectordataU32f64
| ArmVectordataF64u16
| ArmVectordataF32u16
| ArmVectordataF64u32
deriving (Show,Eq,Bounded)
instance Enum ArmVectordataType where
succ ArmVectordataInvalid = ArmVectordataI8
succ ArmVectordataI8 = ArmVectordataI16
succ ArmVectordataI16 = ArmVectordataI32
succ ArmVectordataI32 = ArmVectordataI64
succ ArmVectordataI64 = ArmVectordataS8
succ ArmVectordataS8 = ArmVectordataS16
succ ArmVectordataS16 = ArmVectordataS32
succ ArmVectordataS32 = ArmVectordataS64
succ ArmVectordataS64 = ArmVectordataU8
succ ArmVectordataU8 = ArmVectordataU16
succ ArmVectordataU16 = ArmVectordataU32
succ ArmVectordataU32 = ArmVectordataU64
succ ArmVectordataU64 = ArmVectordataP8
succ ArmVectordataP8 = ArmVectordataF32
succ ArmVectordataF32 = ArmVectordataF64
succ ArmVectordataF64 = ArmVectordataF16f64
succ ArmVectordataF16f64 = ArmVectordataF64f16
succ ArmVectordataF64f16 = ArmVectordataF32f16
succ ArmVectordataF32f16 = ArmVectordataF16f32
succ ArmVectordataF16f32 = ArmVectordataF64f32
succ ArmVectordataF64f32 = ArmVectordataF32f64
succ ArmVectordataF32f64 = ArmVectordataS32f32
succ ArmVectordataS32f32 = ArmVectordataU32f32
succ ArmVectordataU32f32 = ArmVectordataF32s32
succ ArmVectordataF32s32 = ArmVectordataF32u32
succ ArmVectordataF32u32 = ArmVectordataF64s16
succ ArmVectordataF64s16 = ArmVectordataF32s16
succ ArmVectordataF32s16 = ArmVectordataF64s32
succ ArmVectordataF64s32 = ArmVectordataS16f64
succ ArmVectordataS16f64 = ArmVectordataS16f32
succ ArmVectordataS16f32 = ArmVectordataS32f64
succ ArmVectordataS32f64 = ArmVectordataU16f64
succ ArmVectordataU16f64 = ArmVectordataU16f32
succ ArmVectordataU16f32 = ArmVectordataU32f64
succ ArmVectordataU32f64 = ArmVectordataF64u16
succ ArmVectordataF64u16 = ArmVectordataF32u16
succ ArmVectordataF32u16 = ArmVectordataF64u32
succ ArmVectordataF64u32 = error "ArmVectordataType.succ: ArmVectordataF64u32 has no successor"
pred ArmVectordataI8 = ArmVectordataInvalid
pred ArmVectordataI16 = ArmVectordataI8
pred ArmVectordataI32 = ArmVectordataI16
pred ArmVectordataI64 = ArmVectordataI32
pred ArmVectordataS8 = ArmVectordataI64
pred ArmVectordataS16 = ArmVectordataS8
pred ArmVectordataS32 = ArmVectordataS16
pred ArmVectordataS64 = ArmVectordataS32
pred ArmVectordataU8 = ArmVectordataS64
pred ArmVectordataU16 = ArmVectordataU8
pred ArmVectordataU32 = ArmVectordataU16
pred ArmVectordataU64 = ArmVectordataU32
pred ArmVectordataP8 = ArmVectordataU64
pred ArmVectordataF32 = ArmVectordataP8
pred ArmVectordataF64 = ArmVectordataF32
pred ArmVectordataF16f64 = ArmVectordataF64
pred ArmVectordataF64f16 = ArmVectordataF16f64
pred ArmVectordataF32f16 = ArmVectordataF64f16
pred ArmVectordataF16f32 = ArmVectordataF32f16
pred ArmVectordataF64f32 = ArmVectordataF16f32
pred ArmVectordataF32f64 = ArmVectordataF64f32
pred ArmVectordataS32f32 = ArmVectordataF32f64
pred ArmVectordataU32f32 = ArmVectordataS32f32
pred ArmVectordataF32s32 = ArmVectordataU32f32
pred ArmVectordataF32u32 = ArmVectordataF32s32
pred ArmVectordataF64s16 = ArmVectordataF32u32
pred ArmVectordataF32s16 = ArmVectordataF64s16
pred ArmVectordataF64s32 = ArmVectordataF32s16
pred ArmVectordataS16f64 = ArmVectordataF64s32
pred ArmVectordataS16f32 = ArmVectordataS16f64
pred ArmVectordataS32f64 = ArmVectordataS16f32
pred ArmVectordataU16f64 = ArmVectordataS32f64
pred ArmVectordataU16f32 = ArmVectordataU16f64
pred ArmVectordataU32f64 = ArmVectordataU16f32
pred ArmVectordataF64u16 = ArmVectordataU32f64
pred ArmVectordataF32u16 = ArmVectordataF64u16
pred ArmVectordataF64u32 = ArmVectordataF32u16
pred ArmVectordataInvalid = error "ArmVectordataType.pred: ArmVectordataInvalid 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 ArmVectordataF64u32
fromEnum ArmVectordataInvalid = 0
fromEnum ArmVectordataI8 = 1
fromEnum ArmVectordataI16 = 2
fromEnum ArmVectordataI32 = 3
fromEnum ArmVectordataI64 = 4
fromEnum ArmVectordataS8 = 5
fromEnum ArmVectordataS16 = 6
fromEnum ArmVectordataS32 = 7
fromEnum ArmVectordataS64 = 8
fromEnum ArmVectordataU8 = 9
fromEnum ArmVectordataU16 = 10
fromEnum ArmVectordataU32 = 11
fromEnum ArmVectordataU64 = 12
fromEnum ArmVectordataP8 = 13
fromEnum ArmVectordataF32 = 14
fromEnum ArmVectordataF64 = 15
fromEnum ArmVectordataF16f64 = 16
fromEnum ArmVectordataF64f16 = 17
fromEnum ArmVectordataF32f16 = 18
fromEnum ArmVectordataF16f32 = 19
fromEnum ArmVectordataF64f32 = 20
fromEnum ArmVectordataF32f64 = 21
fromEnum ArmVectordataS32f32 = 22
fromEnum ArmVectordataU32f32 = 23
fromEnum ArmVectordataF32s32 = 24
fromEnum ArmVectordataF32u32 = 25
fromEnum ArmVectordataF64s16 = 26
fromEnum ArmVectordataF32s16 = 27
fromEnum ArmVectordataF64s32 = 28
fromEnum ArmVectordataS16f64 = 29
fromEnum ArmVectordataS16f32 = 30
fromEnum ArmVectordataS32f64 = 31
fromEnum ArmVectordataU16f64 = 32
fromEnum ArmVectordataU16f32 = 33
fromEnum ArmVectordataU32f64 = 34
fromEnum ArmVectordataF64u16 = 35
fromEnum ArmVectordataF32u16 = 36
fromEnum ArmVectordataF64u32 = 37
toEnum 0 = ArmVectordataInvalid
toEnum 1 = ArmVectordataI8
toEnum 2 = ArmVectordataI16
toEnum 3 = ArmVectordataI32
toEnum 4 = ArmVectordataI64
toEnum 5 = ArmVectordataS8
toEnum 6 = ArmVectordataS16
toEnum 7 = ArmVectordataS32
toEnum 8 = ArmVectordataS64
toEnum 9 = ArmVectordataU8
toEnum 10 = ArmVectordataU16
toEnum 11 = ArmVectordataU32
toEnum 12 = ArmVectordataU64
toEnum 13 = ArmVectordataP8
toEnum 14 = ArmVectordataF32
toEnum 15 = ArmVectordataF64
toEnum 16 = ArmVectordataF16f64
toEnum 17 = ArmVectordataF64f16
toEnum 18 = ArmVectordataF32f16
toEnum 19 = ArmVectordataF16f32
toEnum 20 = ArmVectordataF64f32
toEnum 21 = ArmVectordataF32f64
toEnum 22 = ArmVectordataS32f32
toEnum 23 = ArmVectordataU32f32
toEnum 24 = ArmVectordataF32s32
toEnum 25 = ArmVectordataF32u32
toEnum 26 = ArmVectordataF64s16
toEnum 27 = ArmVectordataF32s16
toEnum 28 = ArmVectordataF64s32
toEnum 29 = ArmVectordataS16f64
toEnum 30 = ArmVectordataS16f32
toEnum 31 = ArmVectordataS32f64
toEnum 32 = ArmVectordataU16f64
toEnum 33 = ArmVectordataU16f32
toEnum 34 = ArmVectordataU32f64
toEnum 35 = ArmVectordataF64u16
toEnum 36 = ArmVectordataF32u16
toEnum 37 = ArmVectordataF64u32
toEnum unmatched = error ("ArmVectordataType.toEnum: Cannot match " ++ show unmatched)
data ArmReg = ArmRegInvalid
| ArmRegApsr
| ArmRegApsrNzcv
| ArmRegCpsr
| ArmRegFpexc
| ArmRegFpinst
| ArmRegFpscr
| ArmRegFpscrNzcv
| ArmRegFpsid
| ArmRegItstate
| ArmRegLr
| ArmRegR14
| ArmRegPc
| ArmRegR15
| ArmRegSp
| ArmRegR13
| ArmRegSpsr
| ArmRegD0
| ArmRegD1
| ArmRegD2
| ArmRegD3
| ArmRegD4
| ArmRegD5
| ArmRegD6
| ArmRegD7
| ArmRegD8
| ArmRegD9
| ArmRegD10
| ArmRegD11
| ArmRegD12
| ArmRegD13
| ArmRegD14
| ArmRegD15
| ArmRegD16
| ArmRegD17
| ArmRegD18
| ArmRegD19
| ArmRegD20
| ArmRegD21
| ArmRegD22
| ArmRegD23
| ArmRegD24
| ArmRegD25
| ArmRegD26
| ArmRegD27
| ArmRegD28
| ArmRegD29
| ArmRegD30
| ArmRegD31
| ArmRegFpinst2
| ArmRegMvfr0
| ArmRegMvfr1
| ArmRegMvfr2
| ArmRegQ0
| ArmRegQ1
| ArmRegQ2
| ArmRegQ3
| ArmRegQ4
| ArmRegQ5
| ArmRegQ6
| ArmRegQ7
| ArmRegQ8
| ArmRegQ9
| ArmRegQ10
| ArmRegQ11
| ArmRegQ12
| ArmRegQ13
| ArmRegQ14
| ArmRegQ15
| ArmRegR0
| ArmRegR1
| ArmRegR2
| ArmRegR3
| ArmRegR4
| ArmRegR5
| ArmRegR6
| ArmRegR7
| ArmRegR8
| ArmRegR9
| ArmRegSb
| ArmRegR10
| ArmRegSl
| ArmRegR11
| ArmRegFp
| ArmRegR12
| ArmRegIp
| ArmRegS0
| ArmRegS1
| ArmRegS2
| ArmRegS3
| ArmRegS4
| ArmRegS5
| ArmRegS6
| ArmRegS7
| ArmRegS8
| ArmRegS9
| ArmRegS10
| ArmRegS11
| ArmRegS12
| ArmRegS13
| ArmRegS14
| ArmRegS15
| ArmRegS16
| ArmRegS17
| ArmRegS18
| ArmRegS19
| ArmRegS20
| ArmRegS21
| ArmRegS22
| ArmRegS23
| ArmRegS24
| ArmRegS25
| ArmRegS26
| ArmRegS27
| ArmRegS28
| ArmRegS29
| ArmRegS30
| ArmRegS31
| ArmRegEnding
deriving (Show,Eq,Bounded)
instance Enum ArmReg where
succ ArmRegInvalid = ArmRegApsr
succ ArmRegApsr = ArmRegApsrNzcv
succ ArmRegApsrNzcv = ArmRegCpsr
succ ArmRegCpsr = ArmRegFpexc
succ ArmRegFpexc = ArmRegFpinst
succ ArmRegFpinst = ArmRegFpscr
succ ArmRegFpscr = ArmRegFpscrNzcv
succ ArmRegFpscrNzcv = ArmRegFpsid
succ ArmRegFpsid = ArmRegItstate
succ ArmRegItstate = ArmRegLr
succ ArmRegLr = ArmRegPc
succ ArmRegR14 = ArmRegPc
succ ArmRegPc = ArmRegSp
succ ArmRegR15 = ArmRegSp
succ ArmRegSp = ArmRegSpsr
succ ArmRegR13 = ArmRegSpsr
succ ArmRegSpsr = ArmRegD0
succ ArmRegD0 = ArmRegD1
succ ArmRegD1 = ArmRegD2
succ ArmRegD2 = ArmRegD3
succ ArmRegD3 = ArmRegD4
succ ArmRegD4 = ArmRegD5
succ ArmRegD5 = ArmRegD6
succ ArmRegD6 = ArmRegD7
succ ArmRegD7 = ArmRegD8
succ ArmRegD8 = ArmRegD9
succ ArmRegD9 = ArmRegD10
succ ArmRegD10 = ArmRegD11
succ ArmRegD11 = ArmRegD12
succ ArmRegD12 = ArmRegD13
succ ArmRegD13 = ArmRegD14
succ ArmRegD14 = ArmRegD15
succ ArmRegD15 = ArmRegD16
succ ArmRegD16 = ArmRegD17
succ ArmRegD17 = ArmRegD18
succ ArmRegD18 = ArmRegD19
succ ArmRegD19 = ArmRegD20
succ ArmRegD20 = ArmRegD21
succ ArmRegD21 = ArmRegD22
succ ArmRegD22 = ArmRegD23
succ ArmRegD23 = ArmRegD24
succ ArmRegD24 = ArmRegD25
succ ArmRegD25 = ArmRegD26
succ ArmRegD26 = ArmRegD27
succ ArmRegD27 = ArmRegD28
succ ArmRegD28 = ArmRegD29
succ ArmRegD29 = ArmRegD30
succ ArmRegD30 = ArmRegD31
succ ArmRegD31 = ArmRegFpinst2
succ ArmRegFpinst2 = ArmRegMvfr0
succ ArmRegMvfr0 = ArmRegMvfr1
succ ArmRegMvfr1 = ArmRegMvfr2
succ ArmRegMvfr2 = ArmRegQ0
succ ArmRegQ0 = ArmRegQ1
succ ArmRegQ1 = ArmRegQ2
succ ArmRegQ2 = ArmRegQ3
succ ArmRegQ3 = ArmRegQ4
succ ArmRegQ4 = ArmRegQ5
succ ArmRegQ5 = ArmRegQ6
succ ArmRegQ6 = ArmRegQ7
succ ArmRegQ7 = ArmRegQ8
succ ArmRegQ8 = ArmRegQ9
succ ArmRegQ9 = ArmRegQ10
succ ArmRegQ10 = ArmRegQ11
succ ArmRegQ11 = ArmRegQ12
succ ArmRegQ12 = ArmRegQ13
succ ArmRegQ13 = ArmRegQ14
succ ArmRegQ14 = ArmRegQ15
succ ArmRegQ15 = ArmRegR0
succ ArmRegR0 = ArmRegR1
succ ArmRegR1 = ArmRegR2
succ ArmRegR2 = ArmRegR3
succ ArmRegR3 = ArmRegR4
succ ArmRegR4 = ArmRegR5
succ ArmRegR5 = ArmRegR6
succ ArmRegR6 = ArmRegR7
succ ArmRegR7 = ArmRegR8
succ ArmRegR8 = ArmRegR9
succ ArmRegR9 = ArmRegR10
succ ArmRegSb = ArmRegR10
succ ArmRegR10 = ArmRegR11
succ ArmRegSl = ArmRegR11
succ ArmRegR11 = ArmRegR12
succ ArmRegFp = ArmRegR12
succ ArmRegR12 = ArmRegS0
succ ArmRegIp = ArmRegS0
succ ArmRegS0 = ArmRegS1
succ ArmRegS1 = ArmRegS2
succ ArmRegS2 = ArmRegS3
succ ArmRegS3 = ArmRegS4
succ ArmRegS4 = ArmRegS5
succ ArmRegS5 = ArmRegS6
succ ArmRegS6 = ArmRegS7
succ ArmRegS7 = ArmRegS8
succ ArmRegS8 = ArmRegS9
succ ArmRegS9 = ArmRegS10
succ ArmRegS10 = ArmRegS11
succ ArmRegS11 = ArmRegS12
succ ArmRegS12 = ArmRegS13
succ ArmRegS13 = ArmRegS14
succ ArmRegS14 = ArmRegS15
succ ArmRegS15 = ArmRegS16
succ ArmRegS16 = ArmRegS17
succ ArmRegS17 = ArmRegS18
succ ArmRegS18 = ArmRegS19
succ ArmRegS19 = ArmRegS20
succ ArmRegS20 = ArmRegS21
succ ArmRegS21 = ArmRegS22
succ ArmRegS22 = ArmRegS23
succ ArmRegS23 = ArmRegS24
succ ArmRegS24 = ArmRegS25
succ ArmRegS25 = ArmRegS26
succ ArmRegS26 = ArmRegS27
succ ArmRegS27 = ArmRegS28
succ ArmRegS28 = ArmRegS29
succ ArmRegS29 = ArmRegS30
succ ArmRegS30 = ArmRegS31
succ ArmRegS31 = ArmRegEnding
succ ArmRegEnding = error "ArmReg.succ: ArmRegEnding has no successor"
pred ArmRegApsr = ArmRegInvalid
pred ArmRegApsrNzcv = ArmRegApsr
pred ArmRegCpsr = ArmRegApsrNzcv
pred ArmRegFpexc = ArmRegCpsr
pred ArmRegFpinst = ArmRegFpexc
pred ArmRegFpscr = ArmRegFpinst
pred ArmRegFpscrNzcv = ArmRegFpscr
pred ArmRegFpsid = ArmRegFpscrNzcv
pred ArmRegItstate = ArmRegFpsid
pred ArmRegLr = ArmRegItstate
pred ArmRegR14 = ArmRegItstate
pred ArmRegPc = ArmRegLr
pred ArmRegR15 = ArmRegLr
pred ArmRegSp = ArmRegPc
pred ArmRegR13 = ArmRegPc
pred ArmRegSpsr = ArmRegSp
pred ArmRegD0 = ArmRegSpsr
pred ArmRegD1 = ArmRegD0
pred ArmRegD2 = ArmRegD1
pred ArmRegD3 = ArmRegD2
pred ArmRegD4 = ArmRegD3
pred ArmRegD5 = ArmRegD4
pred ArmRegD6 = ArmRegD5
pred ArmRegD7 = ArmRegD6
pred ArmRegD8 = ArmRegD7
pred ArmRegD9 = ArmRegD8
pred ArmRegD10 = ArmRegD9
pred ArmRegD11 = ArmRegD10
pred ArmRegD12 = ArmRegD11
pred ArmRegD13 = ArmRegD12
pred ArmRegD14 = ArmRegD13
pred ArmRegD15 = ArmRegD14
pred ArmRegD16 = ArmRegD15
pred ArmRegD17 = ArmRegD16
pred ArmRegD18 = ArmRegD17
pred ArmRegD19 = ArmRegD18
pred ArmRegD20 = ArmRegD19
pred ArmRegD21 = ArmRegD20
pred ArmRegD22 = ArmRegD21
pred ArmRegD23 = ArmRegD22
pred ArmRegD24 = ArmRegD23
pred ArmRegD25 = ArmRegD24
pred ArmRegD26 = ArmRegD25
pred ArmRegD27 = ArmRegD26
pred ArmRegD28 = ArmRegD27
pred ArmRegD29 = ArmRegD28
pred ArmRegD30 = ArmRegD29
pred ArmRegD31 = ArmRegD30
pred ArmRegFpinst2 = ArmRegD31
pred ArmRegMvfr0 = ArmRegFpinst2
pred ArmRegMvfr1 = ArmRegMvfr0
pred ArmRegMvfr2 = ArmRegMvfr1
pred ArmRegQ0 = ArmRegMvfr2
pred ArmRegQ1 = ArmRegQ0
pred ArmRegQ2 = ArmRegQ1
pred ArmRegQ3 = ArmRegQ2
pred ArmRegQ4 = ArmRegQ3
pred ArmRegQ5 = ArmRegQ4
pred ArmRegQ6 = ArmRegQ5
pred ArmRegQ7 = ArmRegQ6
pred ArmRegQ8 = ArmRegQ7
pred ArmRegQ9 = ArmRegQ8
pred ArmRegQ10 = ArmRegQ9
pred ArmRegQ11 = ArmRegQ10
pred ArmRegQ12 = ArmRegQ11
pred ArmRegQ13 = ArmRegQ12
pred ArmRegQ14 = ArmRegQ13
pred ArmRegQ15 = ArmRegQ14
pred ArmRegR0 = ArmRegQ15
pred ArmRegR1 = ArmRegR0
pred ArmRegR2 = ArmRegR1
pred ArmRegR3 = ArmRegR2
pred ArmRegR4 = ArmRegR3
pred ArmRegR5 = ArmRegR4
pred ArmRegR6 = ArmRegR5
pred ArmRegR7 = ArmRegR6
pred ArmRegR8 = ArmRegR7
pred ArmRegR9 = ArmRegR8
pred ArmRegSb = ArmRegR8
pred ArmRegR10 = ArmRegR9
pred ArmRegSl = ArmRegR9
pred ArmRegR11 = ArmRegR10
pred ArmRegFp = ArmRegR10
pred ArmRegR12 = ArmRegR11
pred ArmRegIp = ArmRegR11
pred ArmRegS0 = ArmRegR12
pred ArmRegS1 = ArmRegS0
pred ArmRegS2 = ArmRegS1
pred ArmRegS3 = ArmRegS2
pred ArmRegS4 = ArmRegS3
pred ArmRegS5 = ArmRegS4
pred ArmRegS6 = ArmRegS5
pred ArmRegS7 = ArmRegS6
pred ArmRegS8 = ArmRegS7
pred ArmRegS9 = ArmRegS8
pred ArmRegS10 = ArmRegS9
pred ArmRegS11 = ArmRegS10
pred ArmRegS12 = ArmRegS11
pred ArmRegS13 = ArmRegS12
pred ArmRegS14 = ArmRegS13
pred ArmRegS15 = ArmRegS14
pred ArmRegS16 = ArmRegS15
pred ArmRegS17 = ArmRegS16
pred ArmRegS18 = ArmRegS17
pred ArmRegS19 = ArmRegS18
pred ArmRegS20 = ArmRegS19
pred ArmRegS21 = ArmRegS20
pred ArmRegS22 = ArmRegS21
pred ArmRegS23 = ArmRegS22
pred ArmRegS24 = ArmRegS23
pred ArmRegS25 = ArmRegS24
pred ArmRegS26 = ArmRegS25
pred ArmRegS27 = ArmRegS26
pred ArmRegS28 = ArmRegS27
pred ArmRegS29 = ArmRegS28
pred ArmRegS30 = ArmRegS29
pred ArmRegS31 = ArmRegS30
pred ArmRegEnding = ArmRegS31
pred ArmRegInvalid = error "ArmReg.pred: ArmRegInvalid 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 ArmRegEnding
fromEnum ArmRegInvalid = 0
fromEnum ArmRegApsr = 1
fromEnum ArmRegApsrNzcv = 2
fromEnum ArmRegCpsr = 3
fromEnum ArmRegFpexc = 4
fromEnum ArmRegFpinst = 5
fromEnum ArmRegFpscr = 6
fromEnum ArmRegFpscrNzcv = 7
fromEnum ArmRegFpsid = 8
fromEnum ArmRegItstate = 9
fromEnum ArmRegLr = 10
fromEnum ArmRegR14 = 10
fromEnum ArmRegPc = 11
fromEnum ArmRegR15 = 11
fromEnum ArmRegSp = 12
fromEnum ArmRegR13 = 12
fromEnum ArmRegSpsr = 13
fromEnum ArmRegD0 = 14
fromEnum ArmRegD1 = 15
fromEnum ArmRegD2 = 16
fromEnum ArmRegD3 = 17
fromEnum ArmRegD4 = 18
fromEnum ArmRegD5 = 19
fromEnum ArmRegD6 = 20
fromEnum ArmRegD7 = 21
fromEnum ArmRegD8 = 22
fromEnum ArmRegD9 = 23
fromEnum ArmRegD10 = 24
fromEnum ArmRegD11 = 25
fromEnum ArmRegD12 = 26
fromEnum ArmRegD13 = 27
fromEnum ArmRegD14 = 28
fromEnum ArmRegD15 = 29
fromEnum ArmRegD16 = 30
fromEnum ArmRegD17 = 31
fromEnum ArmRegD18 = 32
fromEnum ArmRegD19 = 33
fromEnum ArmRegD20 = 34
fromEnum ArmRegD21 = 35
fromEnum ArmRegD22 = 36
fromEnum ArmRegD23 = 37
fromEnum ArmRegD24 = 38
fromEnum ArmRegD25 = 39
fromEnum ArmRegD26 = 40
fromEnum ArmRegD27 = 41
fromEnum ArmRegD28 = 42
fromEnum ArmRegD29 = 43
fromEnum ArmRegD30 = 44
fromEnum ArmRegD31 = 45
fromEnum ArmRegFpinst2 = 46
fromEnum ArmRegMvfr0 = 47
fromEnum ArmRegMvfr1 = 48
fromEnum ArmRegMvfr2 = 49
fromEnum ArmRegQ0 = 50
fromEnum ArmRegQ1 = 51
fromEnum ArmRegQ2 = 52
fromEnum ArmRegQ3 = 53
fromEnum ArmRegQ4 = 54
fromEnum ArmRegQ5 = 55
fromEnum ArmRegQ6 = 56
fromEnum ArmRegQ7 = 57
fromEnum ArmRegQ8 = 58
fromEnum ArmRegQ9 = 59
fromEnum ArmRegQ10 = 60
fromEnum ArmRegQ11 = 61
fromEnum ArmRegQ12 = 62
fromEnum ArmRegQ13 = 63
fromEnum ArmRegQ14 = 64
fromEnum ArmRegQ15 = 65
fromEnum ArmRegR0 = 66
fromEnum ArmRegR1 = 67
fromEnum ArmRegR2 = 68
fromEnum ArmRegR3 = 69
fromEnum ArmRegR4 = 70
fromEnum ArmRegR5 = 71
fromEnum ArmRegR6 = 72
fromEnum ArmRegR7 = 73
fromEnum ArmRegR8 = 74
fromEnum ArmRegR9 = 75
fromEnum ArmRegSb = 75
fromEnum ArmRegR10 = 76
fromEnum ArmRegSl = 76
fromEnum ArmRegR11 = 77
fromEnum ArmRegFp = 77
fromEnum ArmRegR12 = 78
fromEnum ArmRegIp = 78
fromEnum ArmRegS0 = 79
fromEnum ArmRegS1 = 80
fromEnum ArmRegS2 = 81
fromEnum ArmRegS3 = 82
fromEnum ArmRegS4 = 83
fromEnum ArmRegS5 = 84
fromEnum ArmRegS6 = 85
fromEnum ArmRegS7 = 86
fromEnum ArmRegS8 = 87
fromEnum ArmRegS9 = 88
fromEnum ArmRegS10 = 89
fromEnum ArmRegS11 = 90
fromEnum ArmRegS12 = 91
fromEnum ArmRegS13 = 92
fromEnum ArmRegS14 = 93
fromEnum ArmRegS15 = 94
fromEnum ArmRegS16 = 95
fromEnum ArmRegS17 = 96
fromEnum ArmRegS18 = 97
fromEnum ArmRegS19 = 98
fromEnum ArmRegS20 = 99
fromEnum ArmRegS21 = 100
fromEnum ArmRegS22 = 101
fromEnum ArmRegS23 = 102
fromEnum ArmRegS24 = 103
fromEnum ArmRegS25 = 104
fromEnum ArmRegS26 = 105
fromEnum ArmRegS27 = 106
fromEnum ArmRegS28 = 107
fromEnum ArmRegS29 = 108
fromEnum ArmRegS30 = 109
fromEnum ArmRegS31 = 110
fromEnum ArmRegEnding = 111
toEnum 0 = ArmRegInvalid
toEnum 1 = ArmRegApsr
toEnum 2 = ArmRegApsrNzcv
toEnum 3 = ArmRegCpsr
toEnum 4 = ArmRegFpexc
toEnum 5 = ArmRegFpinst
toEnum 6 = ArmRegFpscr
toEnum 7 = ArmRegFpscrNzcv
toEnum 8 = ArmRegFpsid
toEnum 9 = ArmRegItstate
toEnum 10 = ArmRegLr
toEnum 11 = ArmRegPc
toEnum 12 = ArmRegSp
toEnum 13 = ArmRegSpsr
toEnum 14 = ArmRegD0
toEnum 15 = ArmRegD1
toEnum 16 = ArmRegD2
toEnum 17 = ArmRegD3
toEnum 18 = ArmRegD4
toEnum 19 = ArmRegD5
toEnum 20 = ArmRegD6
toEnum 21 = ArmRegD7
toEnum 22 = ArmRegD8
toEnum 23 = ArmRegD9
toEnum 24 = ArmRegD10
toEnum 25 = ArmRegD11
toEnum 26 = ArmRegD12
toEnum 27 = ArmRegD13
toEnum 28 = ArmRegD14
toEnum 29 = ArmRegD15
toEnum 30 = ArmRegD16
toEnum 31 = ArmRegD17
toEnum 32 = ArmRegD18
toEnum 33 = ArmRegD19
toEnum 34 = ArmRegD20
toEnum 35 = ArmRegD21
toEnum 36 = ArmRegD22
toEnum 37 = ArmRegD23
toEnum 38 = ArmRegD24
toEnum 39 = ArmRegD25
toEnum 40 = ArmRegD26
toEnum 41 = ArmRegD27
toEnum 42 = ArmRegD28
toEnum 43 = ArmRegD29
toEnum 44 = ArmRegD30
toEnum 45 = ArmRegD31
toEnum 46 = ArmRegFpinst2
toEnum 47 = ArmRegMvfr0
toEnum 48 = ArmRegMvfr1
toEnum 49 = ArmRegMvfr2
toEnum 50 = ArmRegQ0
toEnum 51 = ArmRegQ1
toEnum 52 = ArmRegQ2
toEnum 53 = ArmRegQ3
toEnum 54 = ArmRegQ4
toEnum 55 = ArmRegQ5
toEnum 56 = ArmRegQ6
toEnum 57 = ArmRegQ7
toEnum 58 = ArmRegQ8
toEnum 59 = ArmRegQ9
toEnum 60 = ArmRegQ10
toEnum 61 = ArmRegQ11
toEnum 62 = ArmRegQ12
toEnum 63 = ArmRegQ13
toEnum 64 = ArmRegQ14
toEnum 65 = ArmRegQ15
toEnum 66 = ArmRegR0
toEnum 67 = ArmRegR1
toEnum 68 = ArmRegR2
toEnum 69 = ArmRegR3
toEnum 70 = ArmRegR4
toEnum 71 = ArmRegR5
toEnum 72 = ArmRegR6
toEnum 73 = ArmRegR7
toEnum 74 = ArmRegR8
toEnum 75 = ArmRegR9
toEnum 76 = ArmRegR10
toEnum 77 = ArmRegR11
toEnum 78 = ArmRegR12
toEnum 79 = ArmRegS0
toEnum 80 = ArmRegS1
toEnum 81 = ArmRegS2
toEnum 82 = ArmRegS3
toEnum 83 = ArmRegS4
toEnum 84 = ArmRegS5
toEnum 85 = ArmRegS6
toEnum 86 = ArmRegS7
toEnum 87 = ArmRegS8
toEnum 88 = ArmRegS9
toEnum 89 = ArmRegS10
toEnum 90 = ArmRegS11
toEnum 91 = ArmRegS12
toEnum 92 = ArmRegS13
toEnum 93 = ArmRegS14
toEnum 94 = ArmRegS15
toEnum 95 = ArmRegS16
toEnum 96 = ArmRegS17
toEnum 97 = ArmRegS18
toEnum 98 = ArmRegS19
toEnum 99 = ArmRegS20
toEnum 100 = ArmRegS21
toEnum 101 = ArmRegS22
toEnum 102 = ArmRegS23
toEnum 103 = ArmRegS24
toEnum 104 = ArmRegS25
toEnum 105 = ArmRegS26
toEnum 106 = ArmRegS27
toEnum 107 = ArmRegS28
toEnum 108 = ArmRegS29
toEnum 109 = ArmRegS30
toEnum 110 = ArmRegS31
toEnum 111 = ArmRegEnding
toEnum unmatched = error ("ArmReg.toEnum: Cannot match " ++ show unmatched)
data ArmOpMemStruct = ArmOpMemStruct
{ base :: ArmReg
, index :: ArmReg
, scale :: Int32
, disp :: Int32
, lshift :: Int32
} deriving (Show, Eq)
instance Storable ArmOpMemStruct where
sizeOf _ = 20
alignment _ = 4
peek p = ArmOpMemStruct
<$> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CInt}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 12 :: IO C2HSImp.CInt}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 16 :: IO C2HSImp.CInt}) p)
poke p (ArmOpMemStruct b i s d l) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum b)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum i)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CInt)}) p (fromIntegral s)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 12 (val :: C2HSImp.CInt)}) p (fromIntegral d)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 16 (val :: C2HSImp.CInt)}) p (fromIntegral l)
data CsArmOpValue
= Reg Word32
| Sysreg Word32
| Imm Int32
| Cimm Int32
| Pimm Int32
| Fp Double
| Mem ArmOpMemStruct
| Setend ArmSetendType
| Undefined
deriving (Show, Eq)
data CsArmOp = CsArmOp
{ vectorIndex :: Int32
, shift :: (ArmShifter, Word32)
, value :: CsArmOpValue
, subtracted :: Bool
, access :: Word8
, neon_lane :: Int8
} deriving (Show, Eq)
instance Storable CsArmOp where
sizeOf _ = 40
alignment _ = 8
peek p = CsArmOp
<$> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p)
<*> ((,) <$>
((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p) <*>
(fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CUInt}) p))
<*> do
t <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 12 :: IO C2HSImp.CInt}) p :: IO Int
let bP = plusPtr p 16
case toEnum t of
ArmOpReg -> (Reg . fromIntegral) <$> (peek bP :: IO CUInt)
ArmOpSysreg -> (Sysreg . fromIntegral) <$> (peek bP :: IO CUInt)
ArmOpImm -> (Imm . fromIntegral) <$> (peek bP :: IO CInt)
ArmOpCimm -> (Cimm . fromIntegral) <$> (peek bP :: IO CInt)
ArmOpPimm -> (Pimm . fromIntegral) <$> (peek bP :: IO CInt)
ArmOpFp -> (Fp . realToFrac) <$> (peek bP :: IO CDouble)
ArmOpMem -> Mem <$> (peek bP :: IO ArmOpMemStruct)
ArmOpSetend -> (Setend . toEnum . fromIntegral) <$>
(peek bP :: IO CInt)
_ -> return Undefined
<*> (toBool <$> (peekByteOff p 36 :: IO Word8))
<*> (peekByteOff p 37 :: IO Word8)
<*> (peekByteOff p 38 :: IO Int8)
poke p (CsArmOp vI (sh, shV) val sub acc neon) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p (fromIntegral vI)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum sh)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CUInt)}) p (fromIntegral shV)
let bP = plusPtr p 16
setType = (\ptr val -> do {C2HSImp.pokeByteOff ptr 12 (val :: C2HSImp.CInt)}) p . fromIntegral . fromEnum
case val of
Reg r -> do
poke bP (fromIntegral r :: CUInt)
setType ArmOpReg
Sysreg r -> do
poke bP (fromIntegral r :: CUInt)
setType ArmOpSysreg
Imm i -> do
poke bP (fromIntegral i :: CInt)
setType ArmOpImm
Cimm i -> do
poke bP (fromIntegral i :: CInt)
setType ArmOpCimm
Pimm i -> do
poke bP (fromIntegral i :: CInt)
setType ArmOpPimm
Fp f -> do
poke bP (realToFrac f :: CDouble)
setType ArmOpFp
Mem m -> do
poke bP m
setType ArmOpMem
Setend s -> do
poke bP (fromIntegral $ fromEnum s :: CInt)
setType ArmOpSetend
_ -> setType ArmOpInvalid
pokeByteOff p 36 (fromBool sub :: Word8)
pokeByteOff p 37 acc
pokeByteOff p 38 neon
data CsArm = CsArm
{ usermode :: Bool
, vectorSize :: Int32
, vectorData :: ArmVectordataType
, cpsMode :: ArmCpsmodeType
, cpsFlag :: ArmCpsflagType
, cc :: ArmConditionCode
, updateFlags :: Bool
, writeback :: Bool
, memBarrier :: ArmMemBarrier
, operands :: [CsArmOp]
} deriving (Show, Eq)
instance Storable CsArm where
sizeOf _ = 1480
alignment _ = 8
peek p = CsArm
<$> (toBool <$> (peekByteOff p 0 :: IO Word8))
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 12 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 16 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 20 :: IO C2HSImp.CInt}) p)
<*> (toBool <$> (peekByteOff p 24 :: IO Word8))
<*> (toBool <$> (peekByteOff p 25 :: IO Word8))
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 28 :: IO C2HSImp.CInt}) p)
<*> do num <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 32 :: IO C2HSImp.CUChar}) p
let ptr = plusPtr p 40
peekArray num ptr
poke p (CsArm u vS vD cM cF cc uF w m o) = do
pokeByteOff p 0 (fromBool u :: Word8)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral vS)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum vD)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 12 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum cM)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 16 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum cF)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 20 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum cc)
pokeByteOff p 24 (fromBool uF :: Word8)
pokeByteOff p 25 (fromBool w :: Word8)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 28 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum m)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 32 (val :: C2HSImp.CUChar)}) p (fromIntegral $ length o)
if length o > 36
then error "operands overflew 36 elements"
else pokeArray (plusPtr p 40) o
data ArmInsn = ArmInsInvalid
| ArmInsAdc
| ArmInsAdd
| ArmInsAdr
| ArmInsAesd
| ArmInsAese
| ArmInsAesimc
| ArmInsAesmc
| ArmInsAnd
| ArmInsBfc
| ArmInsBfi
| ArmInsBic
| ArmInsBkpt
| ArmInsBl
| ArmInsBlx
| ArmInsBx
| ArmInsBxj
| ArmInsB
| ArmInsCdp
| ArmInsCdp2
| ArmInsClrex
| ArmInsClz
| ArmInsCmn
| ArmInsCmp
| ArmInsCps
| ArmInsCrc32b
| ArmInsCrc32cb
| ArmInsCrc32ch
| ArmInsCrc32cw
| ArmInsCrc32h
| ArmInsCrc32w
| ArmInsDbg
| ArmInsDmb
| ArmInsDsb
| ArmInsEor
| ArmInsEret
| ArmInsVmov
| ArmInsFldmdbx
| ArmInsFldmiax
| ArmInsVmrs
| ArmInsFstmdbx
| ArmInsFstmiax
| ArmInsHint
| ArmInsHlt
| ArmInsHvc
| ArmInsIsb
| ArmInsLda
| ArmInsLdab
| ArmInsLdaex
| ArmInsLdaexb
| ArmInsLdaexd
| ArmInsLdaexh
| ArmInsLdah
| ArmInsLdc2l
| ArmInsLdc2
| ArmInsLdcl
| ArmInsLdc
| ArmInsLdmda
| ArmInsLdmdb
| ArmInsLdm
| ArmInsLdmib
| ArmInsLdrbt
| ArmInsLdrb
| ArmInsLdrd
| ArmInsLdrex
| ArmInsLdrexb
| ArmInsLdrexd
| ArmInsLdrexh
| ArmInsLdrh
| ArmInsLdrht
| ArmInsLdrsb
| ArmInsLdrsbt
| ArmInsLdrsh
| ArmInsLdrsht
| ArmInsLdrt
| ArmInsLdr
| ArmInsMcr
| ArmInsMcr2
| ArmInsMcrr
| ArmInsMcrr2
| ArmInsMla
| ArmInsMls
| ArmInsMov
| ArmInsMovt
| ArmInsMovw
| ArmInsMrc
| ArmInsMrc2
| ArmInsMrrc
| ArmInsMrrc2
| ArmInsMrs
| ArmInsMsr
| ArmInsMul
| ArmInsMvn
| ArmInsOrr
| ArmInsPkhbt
| ArmInsPkhtb
| ArmInsPldw
| ArmInsPld
| ArmInsPli
| ArmInsQadd
| ArmInsQadd16
| ArmInsQadd8
| ArmInsQasx
| ArmInsQdadd
| ArmInsQdsub
| ArmInsQsax
| ArmInsQsub
| ArmInsQsub16
| ArmInsQsub8
| ArmInsRbit
| ArmInsRev
| ArmInsRev16
| ArmInsRevsh
| ArmInsRfeda
| ArmInsRfedb
| ArmInsRfeia
| ArmInsRfeib
| ArmInsRsb
| ArmInsRsc
| ArmInsSadd16
| ArmInsSadd8
| ArmInsSasx
| ArmInsSbc
| ArmInsSbfx
| ArmInsSdiv
| ArmInsSel
| ArmInsSetend
| ArmInsSha1c
| ArmInsSha1h
| ArmInsSha1m
| ArmInsSha1p
| ArmInsSha1su0
| ArmInsSha1su1
| ArmInsSha256h
| ArmInsSha256h2
| ArmInsSha256su0
| ArmInsSha256su1
| ArmInsShadd16
| ArmInsShadd8
| ArmInsShasx
| ArmInsShsax
| ArmInsShsub16
| ArmInsShsub8
| ArmInsSmc
| ArmInsSmlabb
| ArmInsSmlabt
| ArmInsSmlad
| ArmInsSmladx
| ArmInsSmlal
| ArmInsSmlalbb
| ArmInsSmlalbt
| ArmInsSmlald
| ArmInsSmlaldx
| ArmInsSmlaltb
| ArmInsSmlaltt
| ArmInsSmlatb
| ArmInsSmlatt
| ArmInsSmlawb
| ArmInsSmlawt
| ArmInsSmlsd
| ArmInsSmlsdx
| ArmInsSmlsld
| ArmInsSmlsldx
| ArmInsSmmla
| ArmInsSmmlar
| ArmInsSmmls
| ArmInsSmmlsr
| ArmInsSmmul
| ArmInsSmmulr
| ArmInsSmuad
| ArmInsSmuadx
| ArmInsSmulbb
| ArmInsSmulbt
| ArmInsSmull
| ArmInsSmultb
| ArmInsSmultt
| ArmInsSmulwb
| ArmInsSmulwt
| ArmInsSmusd
| ArmInsSmusdx
| ArmInsSrsda
| ArmInsSrsdb
| ArmInsSrsia
| ArmInsSrsib
| ArmInsSsat
| ArmInsSsat16
| ArmInsSsax
| ArmInsSsub16
| ArmInsSsub8
| ArmInsStc2l
| ArmInsStc2
| ArmInsStcl
| ArmInsStc
| ArmInsStl
| ArmInsStlb
| ArmInsStlex
| ArmInsStlexb
| ArmInsStlexd
| ArmInsStlexh
| ArmInsStlh
| ArmInsStmda
| ArmInsStmdb
| ArmInsStm
| ArmInsStmib
| ArmInsStrbt
| ArmInsStrb
| ArmInsStrd
| ArmInsStrex
| ArmInsStrexb
| ArmInsStrexd
| ArmInsStrexh
| ArmInsStrh
| ArmInsStrht
| ArmInsStrt
| ArmInsStr
| ArmInsSub
| ArmInsSvc
| ArmInsSwp
| ArmInsSwpb
| ArmInsSxtab
| ArmInsSxtab16
| ArmInsSxtah
| ArmInsSxtb
| ArmInsSxtb16
| ArmInsSxth
| ArmInsTeq
| ArmInsTrap
| ArmInsTst
| ArmInsUadd16
| ArmInsUadd8
| ArmInsUasx
| ArmInsUbfx
| ArmInsUdf
| ArmInsUdiv
| ArmInsUhadd16
| ArmInsUhadd8
| ArmInsUhasx
| ArmInsUhsax
| ArmInsUhsub16
| ArmInsUhsub8
| ArmInsUmaal
| ArmInsUmlal
| ArmInsUmull
| ArmInsUqadd16
| ArmInsUqadd8
| ArmInsUqasx
| ArmInsUqsax
| ArmInsUqsub16
| ArmInsUqsub8
| ArmInsUsad8
| ArmInsUsada8
| ArmInsUsat
| ArmInsUsat16
| ArmInsUsax
| ArmInsUsub16
| ArmInsUsub8
| ArmInsUxtab
| ArmInsUxtab16
| ArmInsUxtah
| ArmInsUxtb
| ArmInsUxtb16
| ArmInsUxth
| ArmInsVabal
| ArmInsVaba
| ArmInsVabdl
| ArmInsVabd
| ArmInsVabs
| ArmInsVacge
| ArmInsVacgt
| ArmInsVadd
| ArmInsVaddhn
| ArmInsVaddl
| ArmInsVaddw
| ArmInsVand
| ArmInsVbic
| ArmInsVbif
| ArmInsVbit
| ArmInsVbsl
| ArmInsVceq
| ArmInsVcge
| ArmInsVcgt
| ArmInsVcle
| ArmInsVcls
| ArmInsVclt
| ArmInsVclz
| ArmInsVcmp
| ArmInsVcmpe
| ArmInsVcnt
| ArmInsVcvta
| ArmInsVcvtb
| ArmInsVcvt
| ArmInsVcvtm
| ArmInsVcvtn
| ArmInsVcvtp
| ArmInsVcvtt
| ArmInsVdiv
| ArmInsVdup
| ArmInsVeor
| ArmInsVext
| ArmInsVfma
| ArmInsVfms
| ArmInsVfnma
| ArmInsVfnms
| ArmInsVhadd
| ArmInsVhsub
| ArmInsVld1
| ArmInsVld2
| ArmInsVld3
| ArmInsVld4
| ArmInsVldmdb
| ArmInsVldmia
| ArmInsVldr
| ArmInsVmaxnm
| ArmInsVmax
| ArmInsVminnm
| ArmInsVmin
| ArmInsVmla
| ArmInsVmlal
| ArmInsVmls
| ArmInsVmlsl
| ArmInsVmovl
| ArmInsVmovn
| ArmInsVmsr
| ArmInsVmul
| ArmInsVmull
| ArmInsVmvn
| ArmInsVneg
| ArmInsVnmla
| ArmInsVnmls
| ArmInsVnmul
| ArmInsVorn
| ArmInsVorr
| ArmInsVpadal
| ArmInsVpaddl
| ArmInsVpadd
| ArmInsVpmax
| ArmInsVpmin
| ArmInsVqabs
| ArmInsVqadd
| ArmInsVqdmlal
| ArmInsVqdmlsl
| ArmInsVqdmulh
| ArmInsVqdmull
| ArmInsVqmovun
| ArmInsVqmovn
| ArmInsVqneg
| ArmInsVqrdmulh
| ArmInsVqrshl
| ArmInsVqrshrn
| ArmInsVqrshrun
| ArmInsVqshl
| ArmInsVqshlu
| ArmInsVqshrn
| ArmInsVqshrun
| ArmInsVqsub
| ArmInsVraddhn
| ArmInsVrecpe
| ArmInsVrecps
| ArmInsVrev16
| ArmInsVrev32
| ArmInsVrev64
| ArmInsVrhadd
| ArmInsVrinta
| ArmInsVrintm
| ArmInsVrintn
| ArmInsVrintp
| ArmInsVrintr
| ArmInsVrintx
| ArmInsVrintz
| ArmInsVrshl
| ArmInsVrshrn
| ArmInsVrshr
| ArmInsVrsqrte
| ArmInsVrsqrts
| ArmInsVrsra
| ArmInsVrsubhn
| ArmInsVseleq
| ArmInsVselge
| ArmInsVselgt
| ArmInsVselvs
| ArmInsVshll
| ArmInsVshl
| ArmInsVshrn
| ArmInsVshr
| ArmInsVsli
| ArmInsVsqrt
| ArmInsVsra
| ArmInsVsri
| ArmInsVst1
| ArmInsVst2
| ArmInsVst3
| ArmInsVst4
| ArmInsVstmdb
| ArmInsVstmia
| ArmInsVstr
| ArmInsVsub
| ArmInsVsubhn
| ArmInsVsubl
| ArmInsVsubw
| ArmInsVswp
| ArmInsVtbl
| ArmInsVtbx
| ArmInsVcvtr
| ArmInsVtrn
| ArmInsVtst
| ArmInsVuzp
| ArmInsVzip
| ArmInsAddw
| ArmInsAsr
| ArmInsDcps1
| ArmInsDcps2
| ArmInsDcps3
| ArmInsIt
| ArmInsLsl
| ArmInsLsr
| ArmInsOrn
| ArmInsRor
| ArmInsRrx
| ArmInsSubw
| ArmInsTbb
| ArmInsTbh
| ArmInsCbnz
| ArmInsCbz
| ArmInsPop
| ArmInsPush
| ArmInsNop
| ArmInsYield
| ArmInsWfe
| ArmInsWfi
| ArmInsSev
| ArmInsSevl
| ArmInsVpush
| ArmInsVpop
| ArmInsEnding
deriving (Show,Eq,Bounded)
instance Enum ArmInsn where
succ ArmInsInvalid = ArmInsAdc
succ ArmInsAdc = ArmInsAdd
succ ArmInsAdd = ArmInsAdr
succ ArmInsAdr = ArmInsAesd
succ ArmInsAesd = ArmInsAese
succ ArmInsAese = ArmInsAesimc
succ ArmInsAesimc = ArmInsAesmc
succ ArmInsAesmc = ArmInsAnd
succ ArmInsAnd = ArmInsBfc
succ ArmInsBfc = ArmInsBfi
succ ArmInsBfi = ArmInsBic
succ ArmInsBic = ArmInsBkpt
succ ArmInsBkpt = ArmInsBl
succ ArmInsBl = ArmInsBlx
succ ArmInsBlx = ArmInsBx
succ ArmInsBx = ArmInsBxj
succ ArmInsBxj = ArmInsB
succ ArmInsB = ArmInsCdp
succ ArmInsCdp = ArmInsCdp2
succ ArmInsCdp2 = ArmInsClrex
succ ArmInsClrex = ArmInsClz
succ ArmInsClz = ArmInsCmn
succ ArmInsCmn = ArmInsCmp
succ ArmInsCmp = ArmInsCps
succ ArmInsCps = ArmInsCrc32b
succ ArmInsCrc32b = ArmInsCrc32cb
succ ArmInsCrc32cb = ArmInsCrc32ch
succ ArmInsCrc32ch = ArmInsCrc32cw
succ ArmInsCrc32cw = ArmInsCrc32h
succ ArmInsCrc32h = ArmInsCrc32w
succ ArmInsCrc32w = ArmInsDbg
succ ArmInsDbg = ArmInsDmb
succ ArmInsDmb = ArmInsDsb
succ ArmInsDsb = ArmInsEor
succ ArmInsEor = ArmInsEret
succ ArmInsEret = ArmInsVmov
succ ArmInsVmov = ArmInsFldmdbx
succ ArmInsFldmdbx = ArmInsFldmiax
succ ArmInsFldmiax = ArmInsVmrs
succ ArmInsVmrs = ArmInsFstmdbx
succ ArmInsFstmdbx = ArmInsFstmiax
succ ArmInsFstmiax = ArmInsHint
succ ArmInsHint = ArmInsHlt
succ ArmInsHlt = ArmInsHvc
succ ArmInsHvc = ArmInsIsb
succ ArmInsIsb = ArmInsLda
succ ArmInsLda = ArmInsLdab
succ ArmInsLdab = ArmInsLdaex
succ ArmInsLdaex = ArmInsLdaexb
succ ArmInsLdaexb = ArmInsLdaexd
succ ArmInsLdaexd = ArmInsLdaexh
succ ArmInsLdaexh = ArmInsLdah
succ ArmInsLdah = ArmInsLdc2l
succ ArmInsLdc2l = ArmInsLdc2
succ ArmInsLdc2 = ArmInsLdcl
succ ArmInsLdcl = ArmInsLdc
succ ArmInsLdc = ArmInsLdmda
succ ArmInsLdmda = ArmInsLdmdb
succ ArmInsLdmdb = ArmInsLdm
succ ArmInsLdm = ArmInsLdmib
succ ArmInsLdmib = ArmInsLdrbt
succ ArmInsLdrbt = ArmInsLdrb
succ ArmInsLdrb = ArmInsLdrd
succ ArmInsLdrd = ArmInsLdrex
succ ArmInsLdrex = ArmInsLdrexb
succ ArmInsLdrexb = ArmInsLdrexd
succ ArmInsLdrexd = ArmInsLdrexh
succ ArmInsLdrexh = ArmInsLdrh
succ ArmInsLdrh = ArmInsLdrht
succ ArmInsLdrht = ArmInsLdrsb
succ ArmInsLdrsb = ArmInsLdrsbt
succ ArmInsLdrsbt = ArmInsLdrsh
succ ArmInsLdrsh = ArmInsLdrsht
succ ArmInsLdrsht = ArmInsLdrt
succ ArmInsLdrt = ArmInsLdr
succ ArmInsLdr = ArmInsMcr
succ ArmInsMcr = ArmInsMcr2
succ ArmInsMcr2 = ArmInsMcrr
succ ArmInsMcrr = ArmInsMcrr2
succ ArmInsMcrr2 = ArmInsMla
succ ArmInsMla = ArmInsMls
succ ArmInsMls = ArmInsMov
succ ArmInsMov = ArmInsMovt
succ ArmInsMovt = ArmInsMovw
succ ArmInsMovw = ArmInsMrc
succ ArmInsMrc = ArmInsMrc2
succ ArmInsMrc2 = ArmInsMrrc
succ ArmInsMrrc = ArmInsMrrc2
succ ArmInsMrrc2 = ArmInsMrs
succ ArmInsMrs = ArmInsMsr
succ ArmInsMsr = ArmInsMul
succ ArmInsMul = ArmInsMvn
succ ArmInsMvn = ArmInsOrr
succ ArmInsOrr = ArmInsPkhbt
succ ArmInsPkhbt = ArmInsPkhtb
succ ArmInsPkhtb = ArmInsPldw
succ ArmInsPldw = ArmInsPld
succ ArmInsPld = ArmInsPli
succ ArmInsPli = ArmInsQadd
succ ArmInsQadd = ArmInsQadd16
succ ArmInsQadd16 = ArmInsQadd8
succ ArmInsQadd8 = ArmInsQasx
succ ArmInsQasx = ArmInsQdadd
succ ArmInsQdadd = ArmInsQdsub
succ ArmInsQdsub = ArmInsQsax
succ ArmInsQsax = ArmInsQsub
succ ArmInsQsub = ArmInsQsub16
succ ArmInsQsub16 = ArmInsQsub8
succ ArmInsQsub8 = ArmInsRbit
succ ArmInsRbit = ArmInsRev
succ ArmInsRev = ArmInsRev16
succ ArmInsRev16 = ArmInsRevsh
succ ArmInsRevsh = ArmInsRfeda
succ ArmInsRfeda = ArmInsRfedb
succ ArmInsRfedb = ArmInsRfeia
succ ArmInsRfeia = ArmInsRfeib
succ ArmInsRfeib = ArmInsRsb
succ ArmInsRsb = ArmInsRsc
succ ArmInsRsc = ArmInsSadd16
succ ArmInsSadd16 = ArmInsSadd8
succ ArmInsSadd8 = ArmInsSasx
succ ArmInsSasx = ArmInsSbc
succ ArmInsSbc = ArmInsSbfx
succ ArmInsSbfx = ArmInsSdiv
succ ArmInsSdiv = ArmInsSel
succ ArmInsSel = ArmInsSetend
succ ArmInsSetend = ArmInsSha1c
succ ArmInsSha1c = ArmInsSha1h
succ ArmInsSha1h = ArmInsSha1m
succ ArmInsSha1m = ArmInsSha1p
succ ArmInsSha1p = ArmInsSha1su0
succ ArmInsSha1su0 = ArmInsSha1su1
succ ArmInsSha1su1 = ArmInsSha256h
succ ArmInsSha256h = ArmInsSha256h2
succ ArmInsSha256h2 = ArmInsSha256su0
succ ArmInsSha256su0 = ArmInsSha256su1
succ ArmInsSha256su1 = ArmInsShadd16
succ ArmInsShadd16 = ArmInsShadd8
succ ArmInsShadd8 = ArmInsShasx
succ ArmInsShasx = ArmInsShsax
succ ArmInsShsax = ArmInsShsub16
succ ArmInsShsub16 = ArmInsShsub8
succ ArmInsShsub8 = ArmInsSmc
succ ArmInsSmc = ArmInsSmlabb
succ ArmInsSmlabb = ArmInsSmlabt
succ ArmInsSmlabt = ArmInsSmlad
succ ArmInsSmlad = ArmInsSmladx
succ ArmInsSmladx = ArmInsSmlal
succ ArmInsSmlal = ArmInsSmlalbb
succ ArmInsSmlalbb = ArmInsSmlalbt
succ ArmInsSmlalbt = ArmInsSmlald
succ ArmInsSmlald = ArmInsSmlaldx
succ ArmInsSmlaldx = ArmInsSmlaltb
succ ArmInsSmlaltb = ArmInsSmlaltt
succ ArmInsSmlaltt = ArmInsSmlatb
succ ArmInsSmlatb = ArmInsSmlatt
succ ArmInsSmlatt = ArmInsSmlawb
succ ArmInsSmlawb = ArmInsSmlawt
succ ArmInsSmlawt = ArmInsSmlsd
succ ArmInsSmlsd = ArmInsSmlsdx
succ ArmInsSmlsdx = ArmInsSmlsld
succ ArmInsSmlsld = ArmInsSmlsldx
succ ArmInsSmlsldx = ArmInsSmmla
succ ArmInsSmmla = ArmInsSmmlar
succ ArmInsSmmlar = ArmInsSmmls
succ ArmInsSmmls = ArmInsSmmlsr
succ ArmInsSmmlsr = ArmInsSmmul
succ ArmInsSmmul = ArmInsSmmulr
succ ArmInsSmmulr = ArmInsSmuad
succ ArmInsSmuad = ArmInsSmuadx
succ ArmInsSmuadx = ArmInsSmulbb
succ ArmInsSmulbb = ArmInsSmulbt
succ ArmInsSmulbt = ArmInsSmull
succ ArmInsSmull = ArmInsSmultb
succ ArmInsSmultb = ArmInsSmultt
succ ArmInsSmultt = ArmInsSmulwb
succ ArmInsSmulwb = ArmInsSmulwt
succ ArmInsSmulwt = ArmInsSmusd
succ ArmInsSmusd = ArmInsSmusdx
succ ArmInsSmusdx = ArmInsSrsda
succ ArmInsSrsda = ArmInsSrsdb
succ ArmInsSrsdb = ArmInsSrsia
succ ArmInsSrsia = ArmInsSrsib
succ ArmInsSrsib = ArmInsSsat
succ ArmInsSsat = ArmInsSsat16
succ ArmInsSsat16 = ArmInsSsax
succ ArmInsSsax = ArmInsSsub16
succ ArmInsSsub16 = ArmInsSsub8
succ ArmInsSsub8 = ArmInsStc2l
succ ArmInsStc2l = ArmInsStc2
succ ArmInsStc2 = ArmInsStcl
succ ArmInsStcl = ArmInsStc
succ ArmInsStc = ArmInsStl
succ ArmInsStl = ArmInsStlb
succ ArmInsStlb = ArmInsStlex
succ ArmInsStlex = ArmInsStlexb
succ ArmInsStlexb = ArmInsStlexd
succ ArmInsStlexd = ArmInsStlexh
succ ArmInsStlexh = ArmInsStlh
succ ArmInsStlh = ArmInsStmda
succ ArmInsStmda = ArmInsStmdb
succ ArmInsStmdb = ArmInsStm
succ ArmInsStm = ArmInsStmib
succ ArmInsStmib = ArmInsStrbt
succ ArmInsStrbt = ArmInsStrb
succ ArmInsStrb = ArmInsStrd
succ ArmInsStrd = ArmInsStrex
succ ArmInsStrex = ArmInsStrexb
succ ArmInsStrexb = ArmInsStrexd
succ ArmInsStrexd = ArmInsStrexh
succ ArmInsStrexh = ArmInsStrh
succ ArmInsStrh = ArmInsStrht
succ ArmInsStrht = ArmInsStrt
succ ArmInsStrt = ArmInsStr
succ ArmInsStr = ArmInsSub
succ ArmInsSub = ArmInsSvc
succ ArmInsSvc = ArmInsSwp
succ ArmInsSwp = ArmInsSwpb
succ ArmInsSwpb = ArmInsSxtab
succ ArmInsSxtab = ArmInsSxtab16
succ ArmInsSxtab16 = ArmInsSxtah
succ ArmInsSxtah = ArmInsSxtb
succ ArmInsSxtb = ArmInsSxtb16
succ ArmInsSxtb16 = ArmInsSxth
succ ArmInsSxth = ArmInsTeq
succ ArmInsTeq = ArmInsTrap
succ ArmInsTrap = ArmInsTst
succ ArmInsTst = ArmInsUadd16
succ ArmInsUadd16 = ArmInsUadd8
succ ArmInsUadd8 = ArmInsUasx
succ ArmInsUasx = ArmInsUbfx
succ ArmInsUbfx = ArmInsUdf
succ ArmInsUdf = ArmInsUdiv
succ ArmInsUdiv = ArmInsUhadd16
succ ArmInsUhadd16 = ArmInsUhadd8
succ ArmInsUhadd8 = ArmInsUhasx
succ ArmInsUhasx = ArmInsUhsax
succ ArmInsUhsax = ArmInsUhsub16
succ ArmInsUhsub16 = ArmInsUhsub8
succ ArmInsUhsub8 = ArmInsUmaal
succ ArmInsUmaal = ArmInsUmlal
succ ArmInsUmlal = ArmInsUmull
succ ArmInsUmull = ArmInsUqadd16
succ ArmInsUqadd16 = ArmInsUqadd8
succ ArmInsUqadd8 = ArmInsUqasx
succ ArmInsUqasx = ArmInsUqsax
succ ArmInsUqsax = ArmInsUqsub16
succ ArmInsUqsub16 = ArmInsUqsub8
succ ArmInsUqsub8 = ArmInsUsad8
succ ArmInsUsad8 = ArmInsUsada8
succ ArmInsUsada8 = ArmInsUsat
succ ArmInsUsat = ArmInsUsat16
succ ArmInsUsat16 = ArmInsUsax
succ ArmInsUsax = ArmInsUsub16
succ ArmInsUsub16 = ArmInsUsub8
succ ArmInsUsub8 = ArmInsUxtab
succ ArmInsUxtab = ArmInsUxtab16
succ ArmInsUxtab16 = ArmInsUxtah
succ ArmInsUxtah = ArmInsUxtb
succ ArmInsUxtb = ArmInsUxtb16
succ ArmInsUxtb16 = ArmInsUxth
succ ArmInsUxth = ArmInsVabal
succ ArmInsVabal = ArmInsVaba
succ ArmInsVaba = ArmInsVabdl
succ ArmInsVabdl = ArmInsVabd
succ ArmInsVabd = ArmInsVabs
succ ArmInsVabs = ArmInsVacge
succ ArmInsVacge = ArmInsVacgt
succ ArmInsVacgt = ArmInsVadd
succ ArmInsVadd = ArmInsVaddhn
succ ArmInsVaddhn = ArmInsVaddl
succ ArmInsVaddl = ArmInsVaddw
succ ArmInsVaddw = ArmInsVand
succ ArmInsVand = ArmInsVbic
succ ArmInsVbic = ArmInsVbif
succ ArmInsVbif = ArmInsVbit
succ ArmInsVbit = ArmInsVbsl
succ ArmInsVbsl = ArmInsVceq
succ ArmInsVceq = ArmInsVcge
succ ArmInsVcge = ArmInsVcgt
succ ArmInsVcgt = ArmInsVcle
succ ArmInsVcle = ArmInsVcls
succ ArmInsVcls = ArmInsVclt
succ ArmInsVclt = ArmInsVclz
succ ArmInsVclz = ArmInsVcmp
succ ArmInsVcmp = ArmInsVcmpe
succ ArmInsVcmpe = ArmInsVcnt
succ ArmInsVcnt = ArmInsVcvta
succ ArmInsVcvta = ArmInsVcvtb
succ ArmInsVcvtb = ArmInsVcvt
succ ArmInsVcvt = ArmInsVcvtm
succ ArmInsVcvtm = ArmInsVcvtn
succ ArmInsVcvtn = ArmInsVcvtp
succ ArmInsVcvtp = ArmInsVcvtt
succ ArmInsVcvtt = ArmInsVdiv
succ ArmInsVdiv = ArmInsVdup
succ ArmInsVdup = ArmInsVeor
succ ArmInsVeor = ArmInsVext
succ ArmInsVext = ArmInsVfma
succ ArmInsVfma = ArmInsVfms
succ ArmInsVfms = ArmInsVfnma
succ ArmInsVfnma = ArmInsVfnms
succ ArmInsVfnms = ArmInsVhadd
succ ArmInsVhadd = ArmInsVhsub
succ ArmInsVhsub = ArmInsVld1
succ ArmInsVld1 = ArmInsVld2
succ ArmInsVld2 = ArmInsVld3
succ ArmInsVld3 = ArmInsVld4
succ ArmInsVld4 = ArmInsVldmdb
succ ArmInsVldmdb = ArmInsVldmia
succ ArmInsVldmia = ArmInsVldr
succ ArmInsVldr = ArmInsVmaxnm
succ ArmInsVmaxnm = ArmInsVmax
succ ArmInsVmax = ArmInsVminnm
succ ArmInsVminnm = ArmInsVmin
succ ArmInsVmin = ArmInsVmla
succ ArmInsVmla = ArmInsVmlal
succ ArmInsVmlal = ArmInsVmls
succ ArmInsVmls = ArmInsVmlsl
succ ArmInsVmlsl = ArmInsVmovl
succ ArmInsVmovl = ArmInsVmovn
succ ArmInsVmovn = ArmInsVmsr
succ ArmInsVmsr = ArmInsVmul
succ ArmInsVmul = ArmInsVmull
succ ArmInsVmull = ArmInsVmvn
succ ArmInsVmvn = ArmInsVneg
succ ArmInsVneg = ArmInsVnmla
succ ArmInsVnmla = ArmInsVnmls
succ ArmInsVnmls = ArmInsVnmul
succ ArmInsVnmul = ArmInsVorn
succ ArmInsVorn = ArmInsVorr
succ ArmInsVorr = ArmInsVpadal
succ ArmInsVpadal = ArmInsVpaddl
succ ArmInsVpaddl = ArmInsVpadd
succ ArmInsVpadd = ArmInsVpmax
succ ArmInsVpmax = ArmInsVpmin
succ ArmInsVpmin = ArmInsVqabs
succ ArmInsVqabs = ArmInsVqadd
succ ArmInsVqadd = ArmInsVqdmlal
succ ArmInsVqdmlal = ArmInsVqdmlsl
succ ArmInsVqdmlsl = ArmInsVqdmulh
succ ArmInsVqdmulh = ArmInsVqdmull
succ ArmInsVqdmull = ArmInsVqmovun
succ ArmInsVqmovun = ArmInsVqmovn
succ ArmInsVqmovn = ArmInsVqneg
succ ArmInsVqneg = ArmInsVqrdmulh
succ ArmInsVqrdmulh = ArmInsVqrshl
succ ArmInsVqrshl = ArmInsVqrshrn
succ ArmInsVqrshrn = ArmInsVqrshrun
succ ArmInsVqrshrun = ArmInsVqshl
succ ArmInsVqshl = ArmInsVqshlu
succ ArmInsVqshlu = ArmInsVqshrn
succ ArmInsVqshrn = ArmInsVqshrun
succ ArmInsVqshrun = ArmInsVqsub
succ ArmInsVqsub = ArmInsVraddhn
succ ArmInsVraddhn = ArmInsVrecpe
succ ArmInsVrecpe = ArmInsVrecps
succ ArmInsVrecps = ArmInsVrev16
succ ArmInsVrev16 = ArmInsVrev32
succ ArmInsVrev32 = ArmInsVrev64
succ ArmInsVrev64 = ArmInsVrhadd
succ ArmInsVrhadd = ArmInsVrinta
succ ArmInsVrinta = ArmInsVrintm
succ ArmInsVrintm = ArmInsVrintn
succ ArmInsVrintn = ArmInsVrintp
succ ArmInsVrintp = ArmInsVrintr
succ ArmInsVrintr = ArmInsVrintx
succ ArmInsVrintx = ArmInsVrintz
succ ArmInsVrintz = ArmInsVrshl
succ ArmInsVrshl = ArmInsVrshrn
succ ArmInsVrshrn = ArmInsVrshr
succ ArmInsVrshr = ArmInsVrsqrte
succ ArmInsVrsqrte = ArmInsVrsqrts
succ ArmInsVrsqrts = ArmInsVrsra
succ ArmInsVrsra = ArmInsVrsubhn
succ ArmInsVrsubhn = ArmInsVseleq
succ ArmInsVseleq = ArmInsVselge
succ ArmInsVselge = ArmInsVselgt
succ ArmInsVselgt = ArmInsVselvs
succ ArmInsVselvs = ArmInsVshll
succ ArmInsVshll = ArmInsVshl
succ ArmInsVshl = ArmInsVshrn
succ ArmInsVshrn = ArmInsVshr
succ ArmInsVshr = ArmInsVsli
succ ArmInsVsli = ArmInsVsqrt
succ ArmInsVsqrt = ArmInsVsra
succ ArmInsVsra = ArmInsVsri
succ ArmInsVsri = ArmInsVst1
succ ArmInsVst1 = ArmInsVst2
succ ArmInsVst2 = ArmInsVst3
succ ArmInsVst3 = ArmInsVst4
succ ArmInsVst4 = ArmInsVstmdb
succ ArmInsVstmdb = ArmInsVstmia
succ ArmInsVstmia = ArmInsVstr
succ ArmInsVstr = ArmInsVsub
succ ArmInsVsub = ArmInsVsubhn
succ ArmInsVsubhn = ArmInsVsubl
succ ArmInsVsubl = ArmInsVsubw
succ ArmInsVsubw = ArmInsVswp
succ ArmInsVswp = ArmInsVtbl
succ ArmInsVtbl = ArmInsVtbx
succ ArmInsVtbx = ArmInsVcvtr
succ ArmInsVcvtr = ArmInsVtrn
succ ArmInsVtrn = ArmInsVtst
succ ArmInsVtst = ArmInsVuzp
succ ArmInsVuzp = ArmInsVzip
succ ArmInsVzip = ArmInsAddw
succ ArmInsAddw = ArmInsAsr
succ ArmInsAsr = ArmInsDcps1
succ ArmInsDcps1 = ArmInsDcps2
succ ArmInsDcps2 = ArmInsDcps3
succ ArmInsDcps3 = ArmInsIt
succ ArmInsIt = ArmInsLsl
succ ArmInsLsl = ArmInsLsr
succ ArmInsLsr = ArmInsOrn
succ ArmInsOrn = ArmInsRor
succ ArmInsRor = ArmInsRrx
succ ArmInsRrx = ArmInsSubw
succ ArmInsSubw = ArmInsTbb
succ ArmInsTbb = ArmInsTbh
succ ArmInsTbh = ArmInsCbnz
succ ArmInsCbnz = ArmInsCbz
succ ArmInsCbz = ArmInsPop
succ ArmInsPop = ArmInsPush
succ ArmInsPush = ArmInsNop
succ ArmInsNop = ArmInsYield
succ ArmInsYield = ArmInsWfe
succ ArmInsWfe = ArmInsWfi
succ ArmInsWfi = ArmInsSev
succ ArmInsSev = ArmInsSevl
succ ArmInsSevl = ArmInsVpush
succ ArmInsVpush = ArmInsVpop
succ ArmInsVpop = ArmInsEnding
succ ArmInsEnding = error "ArmInsn.succ: ArmInsEnding has no successor"
pred ArmInsAdc = ArmInsInvalid
pred ArmInsAdd = ArmInsAdc
pred ArmInsAdr = ArmInsAdd
pred ArmInsAesd = ArmInsAdr
pred ArmInsAese = ArmInsAesd
pred ArmInsAesimc = ArmInsAese
pred ArmInsAesmc = ArmInsAesimc
pred ArmInsAnd = ArmInsAesmc
pred ArmInsBfc = ArmInsAnd
pred ArmInsBfi = ArmInsBfc
pred ArmInsBic = ArmInsBfi
pred ArmInsBkpt = ArmInsBic
pred ArmInsBl = ArmInsBkpt
pred ArmInsBlx = ArmInsBl
pred ArmInsBx = ArmInsBlx
pred ArmInsBxj = ArmInsBx
pred ArmInsB = ArmInsBxj
pred ArmInsCdp = ArmInsB
pred ArmInsCdp2 = ArmInsCdp
pred ArmInsClrex = ArmInsCdp2
pred ArmInsClz = ArmInsClrex
pred ArmInsCmn = ArmInsClz
pred ArmInsCmp = ArmInsCmn
pred ArmInsCps = ArmInsCmp
pred ArmInsCrc32b = ArmInsCps
pred ArmInsCrc32cb = ArmInsCrc32b
pred ArmInsCrc32ch = ArmInsCrc32cb
pred ArmInsCrc32cw = ArmInsCrc32ch
pred ArmInsCrc32h = ArmInsCrc32cw
pred ArmInsCrc32w = ArmInsCrc32h
pred ArmInsDbg = ArmInsCrc32w
pred ArmInsDmb = ArmInsDbg
pred ArmInsDsb = ArmInsDmb
pred ArmInsEor = ArmInsDsb
pred ArmInsEret = ArmInsEor
pred ArmInsVmov = ArmInsEret
pred ArmInsFldmdbx = ArmInsVmov
pred ArmInsFldmiax = ArmInsFldmdbx
pred ArmInsVmrs = ArmInsFldmiax
pred ArmInsFstmdbx = ArmInsVmrs
pred ArmInsFstmiax = ArmInsFstmdbx
pred ArmInsHint = ArmInsFstmiax
pred ArmInsHlt = ArmInsHint
pred ArmInsHvc = ArmInsHlt
pred ArmInsIsb = ArmInsHvc
pred ArmInsLda = ArmInsIsb
pred ArmInsLdab = ArmInsLda
pred ArmInsLdaex = ArmInsLdab
pred ArmInsLdaexb = ArmInsLdaex
pred ArmInsLdaexd = ArmInsLdaexb
pred ArmInsLdaexh = ArmInsLdaexd
pred ArmInsLdah = ArmInsLdaexh
pred ArmInsLdc2l = ArmInsLdah
pred ArmInsLdc2 = ArmInsLdc2l
pred ArmInsLdcl = ArmInsLdc2
pred ArmInsLdc = ArmInsLdcl
pred ArmInsLdmda = ArmInsLdc
pred ArmInsLdmdb = ArmInsLdmda
pred ArmInsLdm = ArmInsLdmdb
pred ArmInsLdmib = ArmInsLdm
pred ArmInsLdrbt = ArmInsLdmib
pred ArmInsLdrb = ArmInsLdrbt
pred ArmInsLdrd = ArmInsLdrb
pred ArmInsLdrex = ArmInsLdrd
pred ArmInsLdrexb = ArmInsLdrex
pred ArmInsLdrexd = ArmInsLdrexb
pred ArmInsLdrexh = ArmInsLdrexd
pred ArmInsLdrh = ArmInsLdrexh
pred ArmInsLdrht = ArmInsLdrh
pred ArmInsLdrsb = ArmInsLdrht
pred ArmInsLdrsbt = ArmInsLdrsb
pred ArmInsLdrsh = ArmInsLdrsbt
pred ArmInsLdrsht = ArmInsLdrsh
pred ArmInsLdrt = ArmInsLdrsht
pred ArmInsLdr = ArmInsLdrt
pred ArmInsMcr = ArmInsLdr
pred ArmInsMcr2 = ArmInsMcr
pred ArmInsMcrr = ArmInsMcr2
pred ArmInsMcrr2 = ArmInsMcrr
pred ArmInsMla = ArmInsMcrr2
pred ArmInsMls = ArmInsMla
pred ArmInsMov = ArmInsMls
pred ArmInsMovt = ArmInsMov
pred ArmInsMovw = ArmInsMovt
pred ArmInsMrc = ArmInsMovw
pred ArmInsMrc2 = ArmInsMrc
pred ArmInsMrrc = ArmInsMrc2
pred ArmInsMrrc2 = ArmInsMrrc
pred ArmInsMrs = ArmInsMrrc2
pred ArmInsMsr = ArmInsMrs
pred ArmInsMul = ArmInsMsr
pred ArmInsMvn = ArmInsMul
pred ArmInsOrr = ArmInsMvn
pred ArmInsPkhbt = ArmInsOrr
pred ArmInsPkhtb = ArmInsPkhbt
pred ArmInsPldw = ArmInsPkhtb
pred ArmInsPld = ArmInsPldw
pred ArmInsPli = ArmInsPld
pred ArmInsQadd = ArmInsPli
pred ArmInsQadd16 = ArmInsQadd
pred ArmInsQadd8 = ArmInsQadd16
pred ArmInsQasx = ArmInsQadd8
pred ArmInsQdadd = ArmInsQasx
pred ArmInsQdsub = ArmInsQdadd
pred ArmInsQsax = ArmInsQdsub
pred ArmInsQsub = ArmInsQsax
pred ArmInsQsub16 = ArmInsQsub
pred ArmInsQsub8 = ArmInsQsub16
pred ArmInsRbit = ArmInsQsub8
pred ArmInsRev = ArmInsRbit
pred ArmInsRev16 = ArmInsRev
pred ArmInsRevsh = ArmInsRev16
pred ArmInsRfeda = ArmInsRevsh
pred ArmInsRfedb = ArmInsRfeda
pred ArmInsRfeia = ArmInsRfedb
pred ArmInsRfeib = ArmInsRfeia
pred ArmInsRsb = ArmInsRfeib
pred ArmInsRsc = ArmInsRsb
pred ArmInsSadd16 = ArmInsRsc
pred ArmInsSadd8 = ArmInsSadd16
pred ArmInsSasx = ArmInsSadd8
pred ArmInsSbc = ArmInsSasx
pred ArmInsSbfx = ArmInsSbc
pred ArmInsSdiv = ArmInsSbfx
pred ArmInsSel = ArmInsSdiv
pred ArmInsSetend = ArmInsSel
pred ArmInsSha1c = ArmInsSetend
pred ArmInsSha1h = ArmInsSha1c
pred ArmInsSha1m = ArmInsSha1h
pred ArmInsSha1p = ArmInsSha1m
pred ArmInsSha1su0 = ArmInsSha1p
pred ArmInsSha1su1 = ArmInsSha1su0
pred ArmInsSha256h = ArmInsSha1su1
pred ArmInsSha256h2 = ArmInsSha256h
pred ArmInsSha256su0 = ArmInsSha256h2
pred ArmInsSha256su1 = ArmInsSha256su0
pred ArmInsShadd16 = ArmInsSha256su1
pred ArmInsShadd8 = ArmInsShadd16
pred ArmInsShasx = ArmInsShadd8
pred ArmInsShsax = ArmInsShasx
pred ArmInsShsub16 = ArmInsShsax
pred ArmInsShsub8 = ArmInsShsub16
pred ArmInsSmc = ArmInsShsub8
pred ArmInsSmlabb = ArmInsSmc
pred ArmInsSmlabt = ArmInsSmlabb
pred ArmInsSmlad = ArmInsSmlabt
pred ArmInsSmladx = ArmInsSmlad
pred ArmInsSmlal = ArmInsSmladx
pred ArmInsSmlalbb = ArmInsSmlal
pred ArmInsSmlalbt = ArmInsSmlalbb
pred ArmInsSmlald = ArmInsSmlalbt
pred ArmInsSmlaldx = ArmInsSmlald
pred ArmInsSmlaltb = ArmInsSmlaldx
pred ArmInsSmlaltt = ArmInsSmlaltb
pred ArmInsSmlatb = ArmInsSmlaltt
pred ArmInsSmlatt = ArmInsSmlatb
pred ArmInsSmlawb = ArmInsSmlatt
pred ArmInsSmlawt = ArmInsSmlawb
pred ArmInsSmlsd = ArmInsSmlawt
pred ArmInsSmlsdx = ArmInsSmlsd
pred ArmInsSmlsld = ArmInsSmlsdx
pred ArmInsSmlsldx = ArmInsSmlsld
pred ArmInsSmmla = ArmInsSmlsldx
pred ArmInsSmmlar = ArmInsSmmla
pred ArmInsSmmls = ArmInsSmmlar
pred ArmInsSmmlsr = ArmInsSmmls
pred ArmInsSmmul = ArmInsSmmlsr
pred ArmInsSmmulr = ArmInsSmmul
pred ArmInsSmuad = ArmInsSmmulr
pred ArmInsSmuadx = ArmInsSmuad
pred ArmInsSmulbb = ArmInsSmuadx
pred ArmInsSmulbt = ArmInsSmulbb
pred ArmInsSmull = ArmInsSmulbt
pred ArmInsSmultb = ArmInsSmull
pred ArmInsSmultt = ArmInsSmultb
pred ArmInsSmulwb = ArmInsSmultt
pred ArmInsSmulwt = ArmInsSmulwb
pred ArmInsSmusd = ArmInsSmulwt
pred ArmInsSmusdx = ArmInsSmusd
pred ArmInsSrsda = ArmInsSmusdx
pred ArmInsSrsdb = ArmInsSrsda
pred ArmInsSrsia = ArmInsSrsdb
pred ArmInsSrsib = ArmInsSrsia
pred ArmInsSsat = ArmInsSrsib
pred ArmInsSsat16 = ArmInsSsat
pred ArmInsSsax = ArmInsSsat16
pred ArmInsSsub16 = ArmInsSsax
pred ArmInsSsub8 = ArmInsSsub16
pred ArmInsStc2l = ArmInsSsub8
pred ArmInsStc2 = ArmInsStc2l
pred ArmInsStcl = ArmInsStc2
pred ArmInsStc = ArmInsStcl
pred ArmInsStl = ArmInsStc
pred ArmInsStlb = ArmInsStl
pred ArmInsStlex = ArmInsStlb
pred ArmInsStlexb = ArmInsStlex
pred ArmInsStlexd = ArmInsStlexb
pred ArmInsStlexh = ArmInsStlexd
pred ArmInsStlh = ArmInsStlexh
pred ArmInsStmda = ArmInsStlh
pred ArmInsStmdb = ArmInsStmda
pred ArmInsStm = ArmInsStmdb
pred ArmInsStmib = ArmInsStm
pred ArmInsStrbt = ArmInsStmib
pred ArmInsStrb = ArmInsStrbt
pred ArmInsStrd = ArmInsStrb
pred ArmInsStrex = ArmInsStrd
pred ArmInsStrexb = ArmInsStrex
pred ArmInsStrexd = ArmInsStrexb
pred ArmInsStrexh = ArmInsStrexd
pred ArmInsStrh = ArmInsStrexh
pred ArmInsStrht = ArmInsStrh
pred ArmInsStrt = ArmInsStrht
pred ArmInsStr = ArmInsStrt
pred ArmInsSub = ArmInsStr
pred ArmInsSvc = ArmInsSub
pred ArmInsSwp = ArmInsSvc
pred ArmInsSwpb = ArmInsSwp
pred ArmInsSxtab = ArmInsSwpb
pred ArmInsSxtab16 = ArmInsSxtab
pred ArmInsSxtah = ArmInsSxtab16
pred ArmInsSxtb = ArmInsSxtah
pred ArmInsSxtb16 = ArmInsSxtb
pred ArmInsSxth = ArmInsSxtb16
pred ArmInsTeq = ArmInsSxth
pred ArmInsTrap = ArmInsTeq
pred ArmInsTst = ArmInsTrap
pred ArmInsUadd16 = ArmInsTst
pred ArmInsUadd8 = ArmInsUadd16
pred ArmInsUasx = ArmInsUadd8
pred ArmInsUbfx = ArmInsUasx
pred ArmInsUdf = ArmInsUbfx
pred ArmInsUdiv = ArmInsUdf
pred ArmInsUhadd16 = ArmInsUdiv
pred ArmInsUhadd8 = ArmInsUhadd16
pred ArmInsUhasx = ArmInsUhadd8
pred ArmInsUhsax = ArmInsUhasx
pred ArmInsUhsub16 = ArmInsUhsax
pred ArmInsUhsub8 = ArmInsUhsub16
pred ArmInsUmaal = ArmInsUhsub8
pred ArmInsUmlal = ArmInsUmaal
pred ArmInsUmull = ArmInsUmlal
pred ArmInsUqadd16 = ArmInsUmull
pred ArmInsUqadd8 = ArmInsUqadd16
pred ArmInsUqasx = ArmInsUqadd8
pred ArmInsUqsax = ArmInsUqasx
pred ArmInsUqsub16 = ArmInsUqsax
pred ArmInsUqsub8 = ArmInsUqsub16
pred ArmInsUsad8 = ArmInsUqsub8
pred ArmInsUsada8 = ArmInsUsad8
pred ArmInsUsat = ArmInsUsada8
pred ArmInsUsat16 = ArmInsUsat
pred ArmInsUsax = ArmInsUsat16
pred ArmInsUsub16 = ArmInsUsax
pred ArmInsUsub8 = ArmInsUsub16
pred ArmInsUxtab = ArmInsUsub8
pred ArmInsUxtab16 = ArmInsUxtab
pred ArmInsUxtah = ArmInsUxtab16
pred ArmInsUxtb = ArmInsUxtah
pred ArmInsUxtb16 = ArmInsUxtb
pred ArmInsUxth = ArmInsUxtb16
pred ArmInsVabal = ArmInsUxth
pred ArmInsVaba = ArmInsVabal
pred ArmInsVabdl = ArmInsVaba
pred ArmInsVabd = ArmInsVabdl
pred ArmInsVabs = ArmInsVabd
pred ArmInsVacge = ArmInsVabs
pred ArmInsVacgt = ArmInsVacge
pred ArmInsVadd = ArmInsVacgt
pred ArmInsVaddhn = ArmInsVadd
pred ArmInsVaddl = ArmInsVaddhn
pred ArmInsVaddw = ArmInsVaddl
pred ArmInsVand = ArmInsVaddw
pred ArmInsVbic = ArmInsVand
pred ArmInsVbif = ArmInsVbic
pred ArmInsVbit = ArmInsVbif
pred ArmInsVbsl = ArmInsVbit
pred ArmInsVceq = ArmInsVbsl
pred ArmInsVcge = ArmInsVceq
pred ArmInsVcgt = ArmInsVcge
pred ArmInsVcle = ArmInsVcgt
pred ArmInsVcls = ArmInsVcle
pred ArmInsVclt = ArmInsVcls
pred ArmInsVclz = ArmInsVclt
pred ArmInsVcmp = ArmInsVclz
pred ArmInsVcmpe = ArmInsVcmp
pred ArmInsVcnt = ArmInsVcmpe
pred ArmInsVcvta = ArmInsVcnt
pred ArmInsVcvtb = ArmInsVcvta
pred ArmInsVcvt = ArmInsVcvtb
pred ArmInsVcvtm = ArmInsVcvt
pred ArmInsVcvtn = ArmInsVcvtm
pred ArmInsVcvtp = ArmInsVcvtn
pred ArmInsVcvtt = ArmInsVcvtp
pred ArmInsVdiv = ArmInsVcvtt
pred ArmInsVdup = ArmInsVdiv
pred ArmInsVeor = ArmInsVdup
pred ArmInsVext = ArmInsVeor
pred ArmInsVfma = ArmInsVext
pred ArmInsVfms = ArmInsVfma
pred ArmInsVfnma = ArmInsVfms
pred ArmInsVfnms = ArmInsVfnma
pred ArmInsVhadd = ArmInsVfnms
pred ArmInsVhsub = ArmInsVhadd
pred ArmInsVld1 = ArmInsVhsub
pred ArmInsVld2 = ArmInsVld1
pred ArmInsVld3 = ArmInsVld2
pred ArmInsVld4 = ArmInsVld3
pred ArmInsVldmdb = ArmInsVld4
pred ArmInsVldmia = ArmInsVldmdb
pred ArmInsVldr = ArmInsVldmia
pred ArmInsVmaxnm = ArmInsVldr
pred ArmInsVmax = ArmInsVmaxnm
pred ArmInsVminnm = ArmInsVmax
pred ArmInsVmin = ArmInsVminnm
pred ArmInsVmla = ArmInsVmin
pred ArmInsVmlal = ArmInsVmla
pred ArmInsVmls = ArmInsVmlal
pred ArmInsVmlsl = ArmInsVmls
pred ArmInsVmovl = ArmInsVmlsl
pred ArmInsVmovn = ArmInsVmovl
pred ArmInsVmsr = ArmInsVmovn
pred ArmInsVmul = ArmInsVmsr
pred ArmInsVmull = ArmInsVmul
pred ArmInsVmvn = ArmInsVmull
pred ArmInsVneg = ArmInsVmvn
pred ArmInsVnmla = ArmInsVneg
pred ArmInsVnmls = ArmInsVnmla
pred ArmInsVnmul = ArmInsVnmls
pred ArmInsVorn = ArmInsVnmul
pred ArmInsVorr = ArmInsVorn
pred ArmInsVpadal = ArmInsVorr
pred ArmInsVpaddl = ArmInsVpadal
pred ArmInsVpadd = ArmInsVpaddl
pred ArmInsVpmax = ArmInsVpadd
pred ArmInsVpmin = ArmInsVpmax
pred ArmInsVqabs = ArmInsVpmin
pred ArmInsVqadd = ArmInsVqabs
pred ArmInsVqdmlal = ArmInsVqadd
pred ArmInsVqdmlsl = ArmInsVqdmlal
pred ArmInsVqdmulh = ArmInsVqdmlsl
pred ArmInsVqdmull = ArmInsVqdmulh
pred ArmInsVqmovun = ArmInsVqdmull
pred ArmInsVqmovn = ArmInsVqmovun
pred ArmInsVqneg = ArmInsVqmovn
pred ArmInsVqrdmulh = ArmInsVqneg
pred ArmInsVqrshl = ArmInsVqrdmulh
pred ArmInsVqrshrn = ArmInsVqrshl
pred ArmInsVqrshrun = ArmInsVqrshrn
pred ArmInsVqshl = ArmInsVqrshrun
pred ArmInsVqshlu = ArmInsVqshl
pred ArmInsVqshrn = ArmInsVqshlu
pred ArmInsVqshrun = ArmInsVqshrn
pred ArmInsVqsub = ArmInsVqshrun
pred ArmInsVraddhn = ArmInsVqsub
pred ArmInsVrecpe = ArmInsVraddhn
pred ArmInsVrecps = ArmInsVrecpe
pred ArmInsVrev16 = ArmInsVrecps
pred ArmInsVrev32 = ArmInsVrev16
pred ArmInsVrev64 = ArmInsVrev32
pred ArmInsVrhadd = ArmInsVrev64
pred ArmInsVrinta = ArmInsVrhadd
pred ArmInsVrintm = ArmInsVrinta
pred ArmInsVrintn = ArmInsVrintm
pred ArmInsVrintp = ArmInsVrintn
pred ArmInsVrintr = ArmInsVrintp
pred ArmInsVrintx = ArmInsVrintr
pred ArmInsVrintz = ArmInsVrintx
pred ArmInsVrshl = ArmInsVrintz
pred ArmInsVrshrn = ArmInsVrshl
pred ArmInsVrshr = ArmInsVrshrn
pred ArmInsVrsqrte = ArmInsVrshr
pred ArmInsVrsqrts = ArmInsVrsqrte
pred ArmInsVrsra = ArmInsVrsqrts
pred ArmInsVrsubhn = ArmInsVrsra
pred ArmInsVseleq = ArmInsVrsubhn
pred ArmInsVselge = ArmInsVseleq
pred ArmInsVselgt = ArmInsVselge
pred ArmInsVselvs = ArmInsVselgt
pred ArmInsVshll = ArmInsVselvs
pred ArmInsVshl = ArmInsVshll
pred ArmInsVshrn = ArmInsVshl
pred ArmInsVshr = ArmInsVshrn
pred ArmInsVsli = ArmInsVshr
pred ArmInsVsqrt = ArmInsVsli
pred ArmInsVsra = ArmInsVsqrt
pred ArmInsVsri = ArmInsVsra
pred ArmInsVst1 = ArmInsVsri
pred ArmInsVst2 = ArmInsVst1
pred ArmInsVst3 = ArmInsVst2
pred ArmInsVst4 = ArmInsVst3
pred ArmInsVstmdb = ArmInsVst4
pred ArmInsVstmia = ArmInsVstmdb
pred ArmInsVstr = ArmInsVstmia
pred ArmInsVsub = ArmInsVstr
pred ArmInsVsubhn = ArmInsVsub
pred ArmInsVsubl = ArmInsVsubhn
pred ArmInsVsubw = ArmInsVsubl
pred ArmInsVswp = ArmInsVsubw
pred ArmInsVtbl = ArmInsVswp
pred ArmInsVtbx = ArmInsVtbl
pred ArmInsVcvtr = ArmInsVtbx
pred ArmInsVtrn = ArmInsVcvtr
pred ArmInsVtst = ArmInsVtrn
pred ArmInsVuzp = ArmInsVtst
pred ArmInsVzip = ArmInsVuzp
pred ArmInsAddw = ArmInsVzip
pred ArmInsAsr = ArmInsAddw
pred ArmInsDcps1 = ArmInsAsr
pred ArmInsDcps2 = ArmInsDcps1
pred ArmInsDcps3 = ArmInsDcps2
pred ArmInsIt = ArmInsDcps3
pred ArmInsLsl = ArmInsIt
pred ArmInsLsr = ArmInsLsl
pred ArmInsOrn = ArmInsLsr
pred ArmInsRor = ArmInsOrn
pred ArmInsRrx = ArmInsRor
pred ArmInsSubw = ArmInsRrx
pred ArmInsTbb = ArmInsSubw
pred ArmInsTbh = ArmInsTbb
pred ArmInsCbnz = ArmInsTbh
pred ArmInsCbz = ArmInsCbnz
pred ArmInsPop = ArmInsCbz
pred ArmInsPush = ArmInsPop
pred ArmInsNop = ArmInsPush
pred ArmInsYield = ArmInsNop
pred ArmInsWfe = ArmInsYield
pred ArmInsWfi = ArmInsWfe
pred ArmInsSev = ArmInsWfi
pred ArmInsSevl = ArmInsSev
pred ArmInsVpush = ArmInsSevl
pred ArmInsVpop = ArmInsVpush
pred ArmInsEnding = ArmInsVpop
pred ArmInsInvalid = error "ArmInsn.pred: ArmInsInvalid 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 ArmInsEnding
fromEnum ArmInsInvalid = 0
fromEnum ArmInsAdc = 1
fromEnum ArmInsAdd = 2
fromEnum ArmInsAdr = 3
fromEnum ArmInsAesd = 4
fromEnum ArmInsAese = 5
fromEnum ArmInsAesimc = 6
fromEnum ArmInsAesmc = 7
fromEnum ArmInsAnd = 8
fromEnum ArmInsBfc = 9
fromEnum ArmInsBfi = 10
fromEnum ArmInsBic = 11
fromEnum ArmInsBkpt = 12
fromEnum ArmInsBl = 13
fromEnum ArmInsBlx = 14
fromEnum ArmInsBx = 15
fromEnum ArmInsBxj = 16
fromEnum ArmInsB = 17
fromEnum ArmInsCdp = 18
fromEnum ArmInsCdp2 = 19
fromEnum ArmInsClrex = 20
fromEnum ArmInsClz = 21
fromEnum ArmInsCmn = 22
fromEnum ArmInsCmp = 23
fromEnum ArmInsCps = 24
fromEnum ArmInsCrc32b = 25
fromEnum ArmInsCrc32cb = 26
fromEnum ArmInsCrc32ch = 27
fromEnum ArmInsCrc32cw = 28
fromEnum ArmInsCrc32h = 29
fromEnum ArmInsCrc32w = 30
fromEnum ArmInsDbg = 31
fromEnum ArmInsDmb = 32
fromEnum ArmInsDsb = 33
fromEnum ArmInsEor = 34
fromEnum ArmInsEret = 35
fromEnum ArmInsVmov = 36
fromEnum ArmInsFldmdbx = 37
fromEnum ArmInsFldmiax = 38
fromEnum ArmInsVmrs = 39
fromEnum ArmInsFstmdbx = 40
fromEnum ArmInsFstmiax = 41
fromEnum ArmInsHint = 42
fromEnum ArmInsHlt = 43
fromEnum ArmInsHvc = 44
fromEnum ArmInsIsb = 45
fromEnum ArmInsLda = 46
fromEnum ArmInsLdab = 47
fromEnum ArmInsLdaex = 48
fromEnum ArmInsLdaexb = 49
fromEnum ArmInsLdaexd = 50
fromEnum ArmInsLdaexh = 51
fromEnum ArmInsLdah = 52
fromEnum ArmInsLdc2l = 53
fromEnum ArmInsLdc2 = 54
fromEnum ArmInsLdcl = 55
fromEnum ArmInsLdc = 56
fromEnum ArmInsLdmda = 57
fromEnum ArmInsLdmdb = 58
fromEnum ArmInsLdm = 59
fromEnum ArmInsLdmib = 60
fromEnum ArmInsLdrbt = 61
fromEnum ArmInsLdrb = 62
fromEnum ArmInsLdrd = 63
fromEnum ArmInsLdrex = 64
fromEnum ArmInsLdrexb = 65
fromEnum ArmInsLdrexd = 66
fromEnum ArmInsLdrexh = 67
fromEnum ArmInsLdrh = 68
fromEnum ArmInsLdrht = 69
fromEnum ArmInsLdrsb = 70
fromEnum ArmInsLdrsbt = 71
fromEnum ArmInsLdrsh = 72
fromEnum ArmInsLdrsht = 73
fromEnum ArmInsLdrt = 74
fromEnum ArmInsLdr = 75
fromEnum ArmInsMcr = 76
fromEnum ArmInsMcr2 = 77
fromEnum ArmInsMcrr = 78
fromEnum ArmInsMcrr2 = 79
fromEnum ArmInsMla = 80
fromEnum ArmInsMls = 81
fromEnum ArmInsMov = 82
fromEnum ArmInsMovt = 83
fromEnum ArmInsMovw = 84
fromEnum ArmInsMrc = 85
fromEnum ArmInsMrc2 = 86
fromEnum ArmInsMrrc = 87
fromEnum ArmInsMrrc2 = 88
fromEnum ArmInsMrs = 89
fromEnum ArmInsMsr = 90
fromEnum ArmInsMul = 91
fromEnum ArmInsMvn = 92
fromEnum ArmInsOrr = 93
fromEnum ArmInsPkhbt = 94
fromEnum ArmInsPkhtb = 95
fromEnum ArmInsPldw = 96
fromEnum ArmInsPld = 97
fromEnum ArmInsPli = 98
fromEnum ArmInsQadd = 99
fromEnum ArmInsQadd16 = 100
fromEnum ArmInsQadd8 = 101
fromEnum ArmInsQasx = 102
fromEnum ArmInsQdadd = 103
fromEnum ArmInsQdsub = 104
fromEnum ArmInsQsax = 105
fromEnum ArmInsQsub = 106
fromEnum ArmInsQsub16 = 107
fromEnum ArmInsQsub8 = 108
fromEnum ArmInsRbit = 109
fromEnum ArmInsRev = 110
fromEnum ArmInsRev16 = 111
fromEnum ArmInsRevsh = 112
fromEnum ArmInsRfeda = 113
fromEnum ArmInsRfedb = 114
fromEnum ArmInsRfeia = 115
fromEnum ArmInsRfeib = 116
fromEnum ArmInsRsb = 117
fromEnum ArmInsRsc = 118
fromEnum ArmInsSadd16 = 119
fromEnum ArmInsSadd8 = 120
fromEnum ArmInsSasx = 121
fromEnum ArmInsSbc = 122
fromEnum ArmInsSbfx = 123
fromEnum ArmInsSdiv = 124
fromEnum ArmInsSel = 125
fromEnum ArmInsSetend = 126
fromEnum ArmInsSha1c = 127
fromEnum ArmInsSha1h = 128
fromEnum ArmInsSha1m = 129
fromEnum ArmInsSha1p = 130
fromEnum ArmInsSha1su0 = 131
fromEnum ArmInsSha1su1 = 132
fromEnum ArmInsSha256h = 133
fromEnum ArmInsSha256h2 = 134
fromEnum ArmInsSha256su0 = 135
fromEnum ArmInsSha256su1 = 136
fromEnum ArmInsShadd16 = 137
fromEnum ArmInsShadd8 = 138
fromEnum ArmInsShasx = 139
fromEnum ArmInsShsax = 140
fromEnum ArmInsShsub16 = 141
fromEnum ArmInsShsub8 = 142
fromEnum ArmInsSmc = 143
fromEnum ArmInsSmlabb = 144
fromEnum ArmInsSmlabt = 145
fromEnum ArmInsSmlad = 146
fromEnum ArmInsSmladx = 147
fromEnum ArmInsSmlal = 148
fromEnum ArmInsSmlalbb = 149
fromEnum ArmInsSmlalbt = 150
fromEnum ArmInsSmlald = 151
fromEnum ArmInsSmlaldx = 152
fromEnum ArmInsSmlaltb = 153
fromEnum ArmInsSmlaltt = 154
fromEnum ArmInsSmlatb = 155
fromEnum ArmInsSmlatt = 156
fromEnum ArmInsSmlawb = 157
fromEnum ArmInsSmlawt = 158
fromEnum ArmInsSmlsd = 159
fromEnum ArmInsSmlsdx = 160
fromEnum ArmInsSmlsld = 161
fromEnum ArmInsSmlsldx = 162
fromEnum ArmInsSmmla = 163
fromEnum ArmInsSmmlar = 164
fromEnum ArmInsSmmls = 165
fromEnum ArmInsSmmlsr = 166
fromEnum ArmInsSmmul = 167
fromEnum ArmInsSmmulr = 168
fromEnum ArmInsSmuad = 169
fromEnum ArmInsSmuadx = 170
fromEnum ArmInsSmulbb = 171
fromEnum ArmInsSmulbt = 172
fromEnum ArmInsSmull = 173
fromEnum ArmInsSmultb = 174
fromEnum ArmInsSmultt = 175
fromEnum ArmInsSmulwb = 176
fromEnum ArmInsSmulwt = 177
fromEnum ArmInsSmusd = 178
fromEnum ArmInsSmusdx = 179
fromEnum ArmInsSrsda = 180
fromEnum ArmInsSrsdb = 181
fromEnum ArmInsSrsia = 182
fromEnum ArmInsSrsib = 183
fromEnum ArmInsSsat = 184
fromEnum ArmInsSsat16 = 185
fromEnum ArmInsSsax = 186
fromEnum ArmInsSsub16 = 187
fromEnum ArmInsSsub8 = 188
fromEnum ArmInsStc2l = 189
fromEnum ArmInsStc2 = 190
fromEnum ArmInsStcl = 191
fromEnum ArmInsStc = 192
fromEnum ArmInsStl = 193
fromEnum ArmInsStlb = 194
fromEnum ArmInsStlex = 195
fromEnum ArmInsStlexb = 196
fromEnum ArmInsStlexd = 197
fromEnum ArmInsStlexh = 198
fromEnum ArmInsStlh = 199
fromEnum ArmInsStmda = 200
fromEnum ArmInsStmdb = 201
fromEnum ArmInsStm = 202
fromEnum ArmInsStmib = 203
fromEnum ArmInsStrbt = 204
fromEnum ArmInsStrb = 205
fromEnum ArmInsStrd = 206
fromEnum ArmInsStrex = 207
fromEnum ArmInsStrexb = 208
fromEnum ArmInsStrexd = 209
fromEnum ArmInsStrexh = 210
fromEnum ArmInsStrh = 211
fromEnum ArmInsStrht = 212
fromEnum ArmInsStrt = 213
fromEnum ArmInsStr = 214
fromEnum ArmInsSub = 215
fromEnum ArmInsSvc = 216
fromEnum ArmInsSwp = 217
fromEnum ArmInsSwpb = 218
fromEnum ArmInsSxtab = 219
fromEnum ArmInsSxtab16 = 220
fromEnum ArmInsSxtah = 221
fromEnum ArmInsSxtb = 222
fromEnum ArmInsSxtb16 = 223
fromEnum ArmInsSxth = 224
fromEnum ArmInsTeq = 225
fromEnum ArmInsTrap = 226
fromEnum ArmInsTst = 227
fromEnum ArmInsUadd16 = 228
fromEnum ArmInsUadd8 = 229
fromEnum ArmInsUasx = 230
fromEnum ArmInsUbfx = 231
fromEnum ArmInsUdf = 232
fromEnum ArmInsUdiv = 233
fromEnum ArmInsUhadd16 = 234
fromEnum ArmInsUhadd8 = 235
fromEnum ArmInsUhasx = 236
fromEnum ArmInsUhsax = 237
fromEnum ArmInsUhsub16 = 238
fromEnum ArmInsUhsub8 = 239
fromEnum ArmInsUmaal = 240
fromEnum ArmInsUmlal = 241
fromEnum ArmInsUmull = 242
fromEnum ArmInsUqadd16 = 243
fromEnum ArmInsUqadd8 = 244
fromEnum ArmInsUqasx = 245
fromEnum ArmInsUqsax = 246
fromEnum ArmInsUqsub16 = 247
fromEnum ArmInsUqsub8 = 248
fromEnum ArmInsUsad8 = 249
fromEnum ArmInsUsada8 = 250
fromEnum ArmInsUsat = 251
fromEnum ArmInsUsat16 = 252
fromEnum ArmInsUsax = 253
fromEnum ArmInsUsub16 = 254
fromEnum ArmInsUsub8 = 255
fromEnum ArmInsUxtab = 256
fromEnum ArmInsUxtab16 = 257
fromEnum ArmInsUxtah = 258
fromEnum ArmInsUxtb = 259
fromEnum ArmInsUxtb16 = 260
fromEnum ArmInsUxth = 261
fromEnum ArmInsVabal = 262
fromEnum ArmInsVaba = 263
fromEnum ArmInsVabdl = 264
fromEnum ArmInsVabd = 265
fromEnum ArmInsVabs = 266
fromEnum ArmInsVacge = 267
fromEnum ArmInsVacgt = 268
fromEnum ArmInsVadd = 269
fromEnum ArmInsVaddhn = 270
fromEnum ArmInsVaddl = 271
fromEnum ArmInsVaddw = 272
fromEnum ArmInsVand = 273
fromEnum ArmInsVbic = 274
fromEnum ArmInsVbif = 275
fromEnum ArmInsVbit = 276
fromEnum ArmInsVbsl = 277
fromEnum ArmInsVceq = 278
fromEnum ArmInsVcge = 279
fromEnum ArmInsVcgt = 280
fromEnum ArmInsVcle = 281
fromEnum ArmInsVcls = 282
fromEnum ArmInsVclt = 283
fromEnum ArmInsVclz = 284
fromEnum ArmInsVcmp = 285
fromEnum ArmInsVcmpe = 286
fromEnum ArmInsVcnt = 287
fromEnum ArmInsVcvta = 288
fromEnum ArmInsVcvtb = 289
fromEnum ArmInsVcvt = 290
fromEnum ArmInsVcvtm = 291
fromEnum ArmInsVcvtn = 292
fromEnum ArmInsVcvtp = 293
fromEnum ArmInsVcvtt = 294
fromEnum ArmInsVdiv = 295
fromEnum ArmInsVdup = 296
fromEnum ArmInsVeor = 297
fromEnum ArmInsVext = 298
fromEnum ArmInsVfma = 299
fromEnum ArmInsVfms = 300
fromEnum ArmInsVfnma = 301
fromEnum ArmInsVfnms = 302
fromEnum ArmInsVhadd = 303
fromEnum ArmInsVhsub = 304
fromEnum ArmInsVld1 = 305
fromEnum ArmInsVld2 = 306
fromEnum ArmInsVld3 = 307
fromEnum ArmInsVld4 = 308
fromEnum ArmInsVldmdb = 309
fromEnum ArmInsVldmia = 310
fromEnum ArmInsVldr = 311
fromEnum ArmInsVmaxnm = 312
fromEnum ArmInsVmax = 313
fromEnum ArmInsVminnm = 314
fromEnum ArmInsVmin = 315
fromEnum ArmInsVmla = 316
fromEnum ArmInsVmlal = 317
fromEnum ArmInsVmls = 318
fromEnum ArmInsVmlsl = 319
fromEnum ArmInsVmovl = 320
fromEnum ArmInsVmovn = 321
fromEnum ArmInsVmsr = 322
fromEnum ArmInsVmul = 323
fromEnum ArmInsVmull = 324
fromEnum ArmInsVmvn = 325
fromEnum ArmInsVneg = 326
fromEnum ArmInsVnmla = 327
fromEnum ArmInsVnmls = 328
fromEnum ArmInsVnmul = 329
fromEnum ArmInsVorn = 330
fromEnum ArmInsVorr = 331
fromEnum ArmInsVpadal = 332
fromEnum ArmInsVpaddl = 333
fromEnum ArmInsVpadd = 334
fromEnum ArmInsVpmax = 335
fromEnum ArmInsVpmin = 336
fromEnum ArmInsVqabs = 337
fromEnum ArmInsVqadd = 338
fromEnum ArmInsVqdmlal = 339
fromEnum ArmInsVqdmlsl = 340
fromEnum ArmInsVqdmulh = 341
fromEnum ArmInsVqdmull = 342
fromEnum ArmInsVqmovun = 343
fromEnum ArmInsVqmovn = 344
fromEnum ArmInsVqneg = 345
fromEnum ArmInsVqrdmulh = 346
fromEnum ArmInsVqrshl = 347
fromEnum ArmInsVqrshrn = 348
fromEnum ArmInsVqrshrun = 349
fromEnum ArmInsVqshl = 350
fromEnum ArmInsVqshlu = 351
fromEnum ArmInsVqshrn = 352
fromEnum ArmInsVqshrun = 353
fromEnum ArmInsVqsub = 354
fromEnum ArmInsVraddhn = 355
fromEnum ArmInsVrecpe = 356
fromEnum ArmInsVrecps = 357
fromEnum ArmInsVrev16 = 358
fromEnum ArmInsVrev32 = 359
fromEnum ArmInsVrev64 = 360
fromEnum ArmInsVrhadd = 361
fromEnum ArmInsVrinta = 362
fromEnum ArmInsVrintm = 363
fromEnum ArmInsVrintn = 364
fromEnum ArmInsVrintp = 365
fromEnum ArmInsVrintr = 366
fromEnum ArmInsVrintx = 367
fromEnum ArmInsVrintz = 368
fromEnum ArmInsVrshl = 369
fromEnum ArmInsVrshrn = 370
fromEnum ArmInsVrshr = 371
fromEnum ArmInsVrsqrte = 372
fromEnum ArmInsVrsqrts = 373
fromEnum ArmInsVrsra = 374
fromEnum ArmInsVrsubhn = 375
fromEnum ArmInsVseleq = 376
fromEnum ArmInsVselge = 377
fromEnum ArmInsVselgt = 378
fromEnum ArmInsVselvs = 379
fromEnum ArmInsVshll = 380
fromEnum ArmInsVshl = 381
fromEnum ArmInsVshrn = 382
fromEnum ArmInsVshr = 383
fromEnum ArmInsVsli = 384
fromEnum ArmInsVsqrt = 385
fromEnum ArmInsVsra = 386
fromEnum ArmInsVsri = 387
fromEnum ArmInsVst1 = 388
fromEnum ArmInsVst2 = 389
fromEnum ArmInsVst3 = 390
fromEnum ArmInsVst4 = 391
fromEnum ArmInsVstmdb = 392
fromEnum ArmInsVstmia = 393
fromEnum ArmInsVstr = 394
fromEnum ArmInsVsub = 395
fromEnum ArmInsVsubhn = 396
fromEnum ArmInsVsubl = 397
fromEnum ArmInsVsubw = 398
fromEnum ArmInsVswp = 399
fromEnum ArmInsVtbl = 400
fromEnum ArmInsVtbx = 401
fromEnum ArmInsVcvtr = 402
fromEnum ArmInsVtrn = 403
fromEnum ArmInsVtst = 404
fromEnum ArmInsVuzp = 405
fromEnum ArmInsVzip = 406
fromEnum ArmInsAddw = 407
fromEnum ArmInsAsr = 408
fromEnum ArmInsDcps1 = 409
fromEnum ArmInsDcps2 = 410
fromEnum ArmInsDcps3 = 411
fromEnum ArmInsIt = 412
fromEnum ArmInsLsl = 413
fromEnum ArmInsLsr = 414
fromEnum ArmInsOrn = 415
fromEnum ArmInsRor = 416
fromEnum ArmInsRrx = 417
fromEnum ArmInsSubw = 418
fromEnum ArmInsTbb = 419
fromEnum ArmInsTbh = 420
fromEnum ArmInsCbnz = 421
fromEnum ArmInsCbz = 422
fromEnum ArmInsPop = 423
fromEnum ArmInsPush = 424
fromEnum ArmInsNop = 425
fromEnum ArmInsYield = 426
fromEnum ArmInsWfe = 427
fromEnum ArmInsWfi = 428
fromEnum ArmInsSev = 429
fromEnum ArmInsSevl = 430
fromEnum ArmInsVpush = 431
fromEnum ArmInsVpop = 432
fromEnum ArmInsEnding = 433
toEnum 0 = ArmInsInvalid
toEnum 1 = ArmInsAdc
toEnum 2 = ArmInsAdd
toEnum 3 = ArmInsAdr
toEnum 4 = ArmInsAesd
toEnum 5 = ArmInsAese
toEnum 6 = ArmInsAesimc
toEnum 7 = ArmInsAesmc
toEnum 8 = ArmInsAnd
toEnum 9 = ArmInsBfc
toEnum 10 = ArmInsBfi
toEnum 11 = ArmInsBic
toEnum 12 = ArmInsBkpt
toEnum 13 = ArmInsBl
toEnum 14 = ArmInsBlx
toEnum 15 = ArmInsBx
toEnum 16 = ArmInsBxj
toEnum 17 = ArmInsB
toEnum 18 = ArmInsCdp
toEnum 19 = ArmInsCdp2
toEnum 20 = ArmInsClrex
toEnum 21 = ArmInsClz
toEnum 22 = ArmInsCmn
toEnum 23 = ArmInsCmp
toEnum 24 = ArmInsCps
toEnum 25 = ArmInsCrc32b
toEnum 26 = ArmInsCrc32cb
toEnum 27 = ArmInsCrc32ch
toEnum 28 = ArmInsCrc32cw
toEnum 29 = ArmInsCrc32h
toEnum 30 = ArmInsCrc32w
toEnum 31 = ArmInsDbg
toEnum 32 = ArmInsDmb
toEnum 33 = ArmInsDsb
toEnum 34 = ArmInsEor
toEnum 35 = ArmInsEret
toEnum 36 = ArmInsVmov
toEnum 37 = ArmInsFldmdbx
toEnum 38 = ArmInsFldmiax
toEnum 39 = ArmInsVmrs
toEnum 40 = ArmInsFstmdbx
toEnum 41 = ArmInsFstmiax
toEnum 42 = ArmInsHint
toEnum 43 = ArmInsHlt
toEnum 44 = ArmInsHvc
toEnum 45 = ArmInsIsb
toEnum 46 = ArmInsLda
toEnum 47 = ArmInsLdab
toEnum 48 = ArmInsLdaex
toEnum 49 = ArmInsLdaexb
toEnum 50 = ArmInsLdaexd
toEnum 51 = ArmInsLdaexh
toEnum 52 = ArmInsLdah
toEnum 53 = ArmInsLdc2l
toEnum 54 = ArmInsLdc2
toEnum 55 = ArmInsLdcl
toEnum 56 = ArmInsLdc
toEnum 57 = ArmInsLdmda
toEnum 58 = ArmInsLdmdb
toEnum 59 = ArmInsLdm
toEnum 60 = ArmInsLdmib
toEnum 61 = ArmInsLdrbt
toEnum 62 = ArmInsLdrb
toEnum 63 = ArmInsLdrd
toEnum 64 = ArmInsLdrex
toEnum 65 = ArmInsLdrexb
toEnum 66 = ArmInsLdrexd
toEnum 67 = ArmInsLdrexh
toEnum 68 = ArmInsLdrh
toEnum 69 = ArmInsLdrht
toEnum 70 = ArmInsLdrsb
toEnum 71 = ArmInsLdrsbt
toEnum 72 = ArmInsLdrsh
toEnum 73 = ArmInsLdrsht
toEnum 74 = ArmInsLdrt
toEnum 75 = ArmInsLdr
toEnum 76 = ArmInsMcr
toEnum 77 = ArmInsMcr2
toEnum 78 = ArmInsMcrr
toEnum 79 = ArmInsMcrr2
toEnum 80 = ArmInsMla
toEnum 81 = ArmInsMls
toEnum 82 = ArmInsMov
toEnum 83 = ArmInsMovt
toEnum 84 = ArmInsMovw
toEnum 85 = ArmInsMrc
toEnum 86 = ArmInsMrc2
toEnum 87 = ArmInsMrrc
toEnum 88 = ArmInsMrrc2
toEnum 89 = ArmInsMrs
toEnum 90 = ArmInsMsr
toEnum 91 = ArmInsMul
toEnum 92 = ArmInsMvn
toEnum 93 = ArmInsOrr
toEnum 94 = ArmInsPkhbt
toEnum 95 = ArmInsPkhtb
toEnum 96 = ArmInsPldw
toEnum 97 = ArmInsPld
toEnum 98 = ArmInsPli
toEnum 99 = ArmInsQadd
toEnum 100 = ArmInsQadd16
toEnum 101 = ArmInsQadd8
toEnum 102 = ArmInsQasx
toEnum 103 = ArmInsQdadd
toEnum 104 = ArmInsQdsub
toEnum 105 = ArmInsQsax
toEnum 106 = ArmInsQsub
toEnum 107 = ArmInsQsub16
toEnum 108 = ArmInsQsub8
toEnum 109 = ArmInsRbit
toEnum 110 = ArmInsRev
toEnum 111 = ArmInsRev16
toEnum 112 = ArmInsRevsh
toEnum 113 = ArmInsRfeda
toEnum 114 = ArmInsRfedb
toEnum 115 = ArmInsRfeia
toEnum 116 = ArmInsRfeib
toEnum 117 = ArmInsRsb
toEnum 118 = ArmInsRsc
toEnum 119 = ArmInsSadd16
toEnum 120 = ArmInsSadd8
toEnum 121 = ArmInsSasx
toEnum 122 = ArmInsSbc
toEnum 123 = ArmInsSbfx
toEnum 124 = ArmInsSdiv
toEnum 125 = ArmInsSel
toEnum 126 = ArmInsSetend
toEnum 127 = ArmInsSha1c
toEnum 128 = ArmInsSha1h
toEnum 129 = ArmInsSha1m
toEnum 130 = ArmInsSha1p
toEnum 131 = ArmInsSha1su0
toEnum 132 = ArmInsSha1su1
toEnum 133 = ArmInsSha256h
toEnum 134 = ArmInsSha256h2
toEnum 135 = ArmInsSha256su0
toEnum 136 = ArmInsSha256su1
toEnum 137 = ArmInsShadd16
toEnum 138 = ArmInsShadd8
toEnum 139 = ArmInsShasx
toEnum 140 = ArmInsShsax
toEnum 141 = ArmInsShsub16
toEnum 142 = ArmInsShsub8
toEnum 143 = ArmInsSmc
toEnum 144 = ArmInsSmlabb
toEnum 145 = ArmInsSmlabt
toEnum 146 = ArmInsSmlad
toEnum 147 = ArmInsSmladx
toEnum 148 = ArmInsSmlal
toEnum 149 = ArmInsSmlalbb
toEnum 150 = ArmInsSmlalbt
toEnum 151 = ArmInsSmlald
toEnum 152 = ArmInsSmlaldx
toEnum 153 = ArmInsSmlaltb
toEnum 154 = ArmInsSmlaltt
toEnum 155 = ArmInsSmlatb
toEnum 156 = ArmInsSmlatt
toEnum 157 = ArmInsSmlawb
toEnum 158 = ArmInsSmlawt
toEnum 159 = ArmInsSmlsd
toEnum 160 = ArmInsSmlsdx
toEnum 161 = ArmInsSmlsld
toEnum 162 = ArmInsSmlsldx
toEnum 163 = ArmInsSmmla
toEnum 164 = ArmInsSmmlar
toEnum 165 = ArmInsSmmls
toEnum 166 = ArmInsSmmlsr
toEnum 167 = ArmInsSmmul
toEnum 168 = ArmInsSmmulr
toEnum 169 = ArmInsSmuad
toEnum 170 = ArmInsSmuadx
toEnum 171 = ArmInsSmulbb
toEnum 172 = ArmInsSmulbt
toEnum 173 = ArmInsSmull
toEnum 174 = ArmInsSmultb
toEnum 175 = ArmInsSmultt
toEnum 176 = ArmInsSmulwb
toEnum 177 = ArmInsSmulwt
toEnum 178 = ArmInsSmusd
toEnum 179 = ArmInsSmusdx
toEnum 180 = ArmInsSrsda
toEnum 181 = ArmInsSrsdb
toEnum 182 = ArmInsSrsia
toEnum 183 = ArmInsSrsib
toEnum 184 = ArmInsSsat
toEnum 185 = ArmInsSsat16
toEnum 186 = ArmInsSsax
toEnum 187 = ArmInsSsub16
toEnum 188 = ArmInsSsub8
toEnum 189 = ArmInsStc2l
toEnum 190 = ArmInsStc2
toEnum 191 = ArmInsStcl
toEnum 192 = ArmInsStc
toEnum 193 = ArmInsStl
toEnum 194 = ArmInsStlb
toEnum 195 = ArmInsStlex
toEnum 196 = ArmInsStlexb
toEnum 197 = ArmInsStlexd
toEnum 198 = ArmInsStlexh
toEnum 199 = ArmInsStlh
toEnum 200 = ArmInsStmda
toEnum 201 = ArmInsStmdb
toEnum 202 = ArmInsStm
toEnum 203 = ArmInsStmib
toEnum 204 = ArmInsStrbt
toEnum 205 = ArmInsStrb
toEnum 206 = ArmInsStrd
toEnum 207 = ArmInsStrex
toEnum 208 = ArmInsStrexb
toEnum 209 = ArmInsStrexd
toEnum 210 = ArmInsStrexh
toEnum 211 = ArmInsStrh
toEnum 212 = ArmInsStrht
toEnum 213 = ArmInsStrt
toEnum 214 = ArmInsStr
toEnum 215 = ArmInsSub
toEnum 216 = ArmInsSvc
toEnum 217 = ArmInsSwp
toEnum 218 = ArmInsSwpb
toEnum 219 = ArmInsSxtab
toEnum 220 = ArmInsSxtab16
toEnum 221 = ArmInsSxtah
toEnum 222 = ArmInsSxtb
toEnum 223 = ArmInsSxtb16
toEnum 224 = ArmInsSxth
toEnum 225 = ArmInsTeq
toEnum 226 = ArmInsTrap
toEnum 227 = ArmInsTst
toEnum 228 = ArmInsUadd16
toEnum 229 = ArmInsUadd8
toEnum 230 = ArmInsUasx
toEnum 231 = ArmInsUbfx
toEnum 232 = ArmInsUdf
toEnum 233 = ArmInsUdiv
toEnum 234 = ArmInsUhadd16
toEnum 235 = ArmInsUhadd8
toEnum 236 = ArmInsUhasx
toEnum 237 = ArmInsUhsax
toEnum 238 = ArmInsUhsub16
toEnum 239 = ArmInsUhsub8
toEnum 240 = ArmInsUmaal
toEnum 241 = ArmInsUmlal
toEnum 242 = ArmInsUmull
toEnum 243 = ArmInsUqadd16
toEnum 244 = ArmInsUqadd8
toEnum 245 = ArmInsUqasx
toEnum 246 = ArmInsUqsax
toEnum 247 = ArmInsUqsub16
toEnum 248 = ArmInsUqsub8
toEnum 249 = ArmInsUsad8
toEnum 250 = ArmInsUsada8
toEnum 251 = ArmInsUsat
toEnum 252 = ArmInsUsat16
toEnum 253 = ArmInsUsax
toEnum 254 = ArmInsUsub16
toEnum 255 = ArmInsUsub8
toEnum 256 = ArmInsUxtab
toEnum 257 = ArmInsUxtab16
toEnum 258 = ArmInsUxtah
toEnum 259 = ArmInsUxtb
toEnum 260 = ArmInsUxtb16
toEnum 261 = ArmInsUxth
toEnum 262 = ArmInsVabal
toEnum 263 = ArmInsVaba
toEnum 264 = ArmInsVabdl
toEnum 265 = ArmInsVabd
toEnum 266 = ArmInsVabs
toEnum 267 = ArmInsVacge
toEnum 268 = ArmInsVacgt
toEnum 269 = ArmInsVadd
toEnum 270 = ArmInsVaddhn
toEnum 271 = ArmInsVaddl
toEnum 272 = ArmInsVaddw
toEnum 273 = ArmInsVand
toEnum 274 = ArmInsVbic
toEnum 275 = ArmInsVbif
toEnum 276 = ArmInsVbit
toEnum 277 = ArmInsVbsl
toEnum 278 = ArmInsVceq
toEnum 279 = ArmInsVcge
toEnum 280 = ArmInsVcgt
toEnum 281 = ArmInsVcle
toEnum 282 = ArmInsVcls
toEnum 283 = ArmInsVclt
toEnum 284 = ArmInsVclz
toEnum 285 = ArmInsVcmp
toEnum 286 = ArmInsVcmpe
toEnum 287 = ArmInsVcnt
toEnum 288 = ArmInsVcvta
toEnum 289 = ArmInsVcvtb
toEnum 290 = ArmInsVcvt
toEnum 291 = ArmInsVcvtm
toEnum 292 = ArmInsVcvtn
toEnum 293 = ArmInsVcvtp
toEnum 294 = ArmInsVcvtt
toEnum 295 = ArmInsVdiv
toEnum 296 = ArmInsVdup
toEnum 297 = ArmInsVeor
toEnum 298 = ArmInsVext
toEnum 299 = ArmInsVfma
toEnum 300 = ArmInsVfms
toEnum 301 = ArmInsVfnma
toEnum 302 = ArmInsVfnms
toEnum 303 = ArmInsVhadd
toEnum 304 = ArmInsVhsub
toEnum 305 = ArmInsVld1
toEnum 306 = ArmInsVld2
toEnum 307 = ArmInsVld3
toEnum 308 = ArmInsVld4
toEnum 309 = ArmInsVldmdb
toEnum 310 = ArmInsVldmia
toEnum 311 = ArmInsVldr
toEnum 312 = ArmInsVmaxnm
toEnum 313 = ArmInsVmax
toEnum 314 = ArmInsVminnm
toEnum 315 = ArmInsVmin
toEnum 316 = ArmInsVmla
toEnum 317 = ArmInsVmlal
toEnum 318 = ArmInsVmls
toEnum 319 = ArmInsVmlsl
toEnum 320 = ArmInsVmovl
toEnum 321 = ArmInsVmovn
toEnum 322 = ArmInsVmsr
toEnum 323 = ArmInsVmul
toEnum 324 = ArmInsVmull
toEnum 325 = ArmInsVmvn
toEnum 326 = ArmInsVneg
toEnum 327 = ArmInsVnmla
toEnum 328 = ArmInsVnmls
toEnum 329 = ArmInsVnmul
toEnum 330 = ArmInsVorn
toEnum 331 = ArmInsVorr
toEnum 332 = ArmInsVpadal
toEnum 333 = ArmInsVpaddl
toEnum 334 = ArmInsVpadd
toEnum 335 = ArmInsVpmax
toEnum 336 = ArmInsVpmin
toEnum 337 = ArmInsVqabs
toEnum 338 = ArmInsVqadd
toEnum 339 = ArmInsVqdmlal
toEnum 340 = ArmInsVqdmlsl
toEnum 341 = ArmInsVqdmulh
toEnum 342 = ArmInsVqdmull
toEnum 343 = ArmInsVqmovun
toEnum 344 = ArmInsVqmovn
toEnum 345 = ArmInsVqneg
toEnum 346 = ArmInsVqrdmulh
toEnum 347 = ArmInsVqrshl
toEnum 348 = ArmInsVqrshrn
toEnum 349 = ArmInsVqrshrun
toEnum 350 = ArmInsVqshl
toEnum 351 = ArmInsVqshlu
toEnum 352 = ArmInsVqshrn
toEnum 353 = ArmInsVqshrun
toEnum 354 = ArmInsVqsub
toEnum 355 = ArmInsVraddhn
toEnum 356 = ArmInsVrecpe
toEnum 357 = ArmInsVrecps
toEnum 358 = ArmInsVrev16
toEnum 359 = ArmInsVrev32
toEnum 360 = ArmInsVrev64
toEnum 361 = ArmInsVrhadd
toEnum 362 = ArmInsVrinta
toEnum 363 = ArmInsVrintm
toEnum 364 = ArmInsVrintn
toEnum 365 = ArmInsVrintp
toEnum 366 = ArmInsVrintr
toEnum 367 = ArmInsVrintx
toEnum 368 = ArmInsVrintz
toEnum 369 = ArmInsVrshl
toEnum 370 = ArmInsVrshrn
toEnum 371 = ArmInsVrshr
toEnum 372 = ArmInsVrsqrte
toEnum 373 = ArmInsVrsqrts
toEnum 374 = ArmInsVrsra
toEnum 375 = ArmInsVrsubhn
toEnum 376 = ArmInsVseleq
toEnum 377 = ArmInsVselge
toEnum 378 = ArmInsVselgt
toEnum 379 = ArmInsVselvs
toEnum 380 = ArmInsVshll
toEnum 381 = ArmInsVshl
toEnum 382 = ArmInsVshrn
toEnum 383 = ArmInsVshr
toEnum 384 = ArmInsVsli
toEnum 385 = ArmInsVsqrt
toEnum 386 = ArmInsVsra
toEnum 387 = ArmInsVsri
toEnum 388 = ArmInsVst1
toEnum 389 = ArmInsVst2
toEnum 390 = ArmInsVst3
toEnum 391 = ArmInsVst4
toEnum 392 = ArmInsVstmdb
toEnum 393 = ArmInsVstmia
toEnum 394 = ArmInsVstr
toEnum 395 = ArmInsVsub
toEnum 396 = ArmInsVsubhn
toEnum 397 = ArmInsVsubl
toEnum 398 = ArmInsVsubw
toEnum 399 = ArmInsVswp
toEnum 400 = ArmInsVtbl
toEnum 401 = ArmInsVtbx
toEnum 402 = ArmInsVcvtr
toEnum 403 = ArmInsVtrn
toEnum 404 = ArmInsVtst
toEnum 405 = ArmInsVuzp
toEnum 406 = ArmInsVzip
toEnum 407 = ArmInsAddw
toEnum 408 = ArmInsAsr
toEnum 409 = ArmInsDcps1
toEnum 410 = ArmInsDcps2
toEnum 411 = ArmInsDcps3
toEnum 412 = ArmInsIt
toEnum 413 = ArmInsLsl
toEnum 414 = ArmInsLsr
toEnum 415 = ArmInsOrn
toEnum 416 = ArmInsRor
toEnum 417 = ArmInsRrx
toEnum 418 = ArmInsSubw
toEnum 419 = ArmInsTbb
toEnum 420 = ArmInsTbh
toEnum 421 = ArmInsCbnz
toEnum 422 = ArmInsCbz
toEnum 423 = ArmInsPop
toEnum 424 = ArmInsPush
toEnum 425 = ArmInsNop
toEnum 426 = ArmInsYield
toEnum 427 = ArmInsWfe
toEnum 428 = ArmInsWfi
toEnum 429 = ArmInsSev
toEnum 430 = ArmInsSevl
toEnum 431 = ArmInsVpush
toEnum 432 = ArmInsVpop
toEnum 433 = ArmInsEnding
toEnum unmatched = error ("ArmInsn.toEnum: Cannot match " ++ show unmatched)
data ArmInsnGroup = ArmGrpInvalid
| ArmGrpJump
| ArmGrpCall
| ArmGrpInt
| ArmGrpPrivilege
| ArmGrpCrypto
| ArmGrpDatabarrier
| ArmGrpDivide
| ArmGrpFparmv8
| ArmGrpMultpro
| ArmGrpNeon
| ArmGrpT2extractpack
| ArmGrpThumb2dsp
| ArmGrpTrustzone
| ArmGrpV4t
| ArmGrpV5t
| ArmGrpV5te
| ArmGrpV6
| ArmGrpV6t2
| ArmGrpV7
| ArmGrpV8
| ArmGrpVfp2
| ArmGrpVfp3
| ArmGrpVfp4
| ArmGrpArm
| ArmGrpMclass
| ArmGrpNotmclass
| ArmGrpThumb
| ArmGrpThumb1only
| ArmGrpThumb2
| ArmGrpPrev8
| ArmGrpFpvmlx
| ArmGrpMulops
| ArmGrpCrc
| ArmGrpDpvfp
| ArmGrpV6m
| ArmGrpVirtualization
| ArmGrpEnding
deriving (Show,Eq,Bounded)
instance Enum ArmInsnGroup where
succ ArmGrpInvalid = ArmGrpJump
succ ArmGrpJump = ArmGrpCall
succ ArmGrpCall = ArmGrpInt
succ ArmGrpInt = ArmGrpPrivilege
succ ArmGrpPrivilege = ArmGrpCrypto
succ ArmGrpCrypto = ArmGrpDatabarrier
succ ArmGrpDatabarrier = ArmGrpDivide
succ ArmGrpDivide = ArmGrpFparmv8
succ ArmGrpFparmv8 = ArmGrpMultpro
succ ArmGrpMultpro = ArmGrpNeon
succ ArmGrpNeon = ArmGrpT2extractpack
succ ArmGrpT2extractpack = ArmGrpThumb2dsp
succ ArmGrpThumb2dsp = ArmGrpTrustzone
succ ArmGrpTrustzone = ArmGrpV4t
succ ArmGrpV4t = ArmGrpV5t
succ ArmGrpV5t = ArmGrpV5te
succ ArmGrpV5te = ArmGrpV6
succ ArmGrpV6 = ArmGrpV6t2
succ ArmGrpV6t2 = ArmGrpV7
succ ArmGrpV7 = ArmGrpV8
succ ArmGrpV8 = ArmGrpVfp2
succ ArmGrpVfp2 = ArmGrpVfp3
succ ArmGrpVfp3 = ArmGrpVfp4
succ ArmGrpVfp4 = ArmGrpArm
succ ArmGrpArm = ArmGrpMclass
succ ArmGrpMclass = ArmGrpNotmclass
succ ArmGrpNotmclass = ArmGrpThumb
succ ArmGrpThumb = ArmGrpThumb1only
succ ArmGrpThumb1only = ArmGrpThumb2
succ ArmGrpThumb2 = ArmGrpPrev8
succ ArmGrpPrev8 = ArmGrpFpvmlx
succ ArmGrpFpvmlx = ArmGrpMulops
succ ArmGrpMulops = ArmGrpCrc
succ ArmGrpCrc = ArmGrpDpvfp
succ ArmGrpDpvfp = ArmGrpV6m
succ ArmGrpV6m = ArmGrpVirtualization
succ ArmGrpVirtualization = ArmGrpEnding
succ ArmGrpEnding = error "ArmInsnGroup.succ: ArmGrpEnding has no successor"
pred ArmGrpJump = ArmGrpInvalid
pred ArmGrpCall = ArmGrpJump
pred ArmGrpInt = ArmGrpCall
pred ArmGrpPrivilege = ArmGrpInt
pred ArmGrpCrypto = ArmGrpPrivilege
pred ArmGrpDatabarrier = ArmGrpCrypto
pred ArmGrpDivide = ArmGrpDatabarrier
pred ArmGrpFparmv8 = ArmGrpDivide
pred ArmGrpMultpro = ArmGrpFparmv8
pred ArmGrpNeon = ArmGrpMultpro
pred ArmGrpT2extractpack = ArmGrpNeon
pred ArmGrpThumb2dsp = ArmGrpT2extractpack
pred ArmGrpTrustzone = ArmGrpThumb2dsp
pred ArmGrpV4t = ArmGrpTrustzone
pred ArmGrpV5t = ArmGrpV4t
pred ArmGrpV5te = ArmGrpV5t
pred ArmGrpV6 = ArmGrpV5te
pred ArmGrpV6t2 = ArmGrpV6
pred ArmGrpV7 = ArmGrpV6t2
pred ArmGrpV8 = ArmGrpV7
pred ArmGrpVfp2 = ArmGrpV8
pred ArmGrpVfp3 = ArmGrpVfp2
pred ArmGrpVfp4 = ArmGrpVfp3
pred ArmGrpArm = ArmGrpVfp4
pred ArmGrpMclass = ArmGrpArm
pred ArmGrpNotmclass = ArmGrpMclass
pred ArmGrpThumb = ArmGrpNotmclass
pred ArmGrpThumb1only = ArmGrpThumb
pred ArmGrpThumb2 = ArmGrpThumb1only
pred ArmGrpPrev8 = ArmGrpThumb2
pred ArmGrpFpvmlx = ArmGrpPrev8
pred ArmGrpMulops = ArmGrpFpvmlx
pred ArmGrpCrc = ArmGrpMulops
pred ArmGrpDpvfp = ArmGrpCrc
pred ArmGrpV6m = ArmGrpDpvfp
pred ArmGrpVirtualization = ArmGrpV6m
pred ArmGrpEnding = ArmGrpVirtualization
pred ArmGrpInvalid = error "ArmInsnGroup.pred: ArmGrpInvalid 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 ArmGrpEnding
fromEnum ArmGrpInvalid = 0
fromEnum ArmGrpJump = 1
fromEnum ArmGrpCall = 2
fromEnum ArmGrpInt = 4
fromEnum ArmGrpPrivilege = 6
fromEnum ArmGrpCrypto = 128
fromEnum ArmGrpDatabarrier = 129
fromEnum ArmGrpDivide = 130
fromEnum ArmGrpFparmv8 = 131
fromEnum ArmGrpMultpro = 132
fromEnum ArmGrpNeon = 133
fromEnum ArmGrpT2extractpack = 134
fromEnum ArmGrpThumb2dsp = 135
fromEnum ArmGrpTrustzone = 136
fromEnum ArmGrpV4t = 137
fromEnum ArmGrpV5t = 138
fromEnum ArmGrpV5te = 139
fromEnum ArmGrpV6 = 140
fromEnum ArmGrpV6t2 = 141
fromEnum ArmGrpV7 = 142
fromEnum ArmGrpV8 = 143
fromEnum ArmGrpVfp2 = 144
fromEnum ArmGrpVfp3 = 145
fromEnum ArmGrpVfp4 = 146
fromEnum ArmGrpArm = 147
fromEnum ArmGrpMclass = 148
fromEnum ArmGrpNotmclass = 149
fromEnum ArmGrpThumb = 150
fromEnum ArmGrpThumb1only = 151
fromEnum ArmGrpThumb2 = 152
fromEnum ArmGrpPrev8 = 153
fromEnum ArmGrpFpvmlx = 154
fromEnum ArmGrpMulops = 155
fromEnum ArmGrpCrc = 156
fromEnum ArmGrpDpvfp = 157
fromEnum ArmGrpV6m = 158
fromEnum ArmGrpVirtualization = 159
fromEnum ArmGrpEnding = 160
toEnum 0 = ArmGrpInvalid
toEnum 1 = ArmGrpJump
toEnum 2 = ArmGrpCall
toEnum 4 = ArmGrpInt
toEnum 6 = ArmGrpPrivilege
toEnum 128 = ArmGrpCrypto
toEnum 129 = ArmGrpDatabarrier
toEnum 130 = ArmGrpDivide
toEnum 131 = ArmGrpFparmv8
toEnum 132 = ArmGrpMultpro
toEnum 133 = ArmGrpNeon
toEnum 134 = ArmGrpT2extractpack
toEnum 135 = ArmGrpThumb2dsp
toEnum 136 = ArmGrpTrustzone
toEnum 137 = ArmGrpV4t
toEnum 138 = ArmGrpV5t
toEnum 139 = ArmGrpV5te
toEnum 140 = ArmGrpV6
toEnum 141 = ArmGrpV6t2
toEnum 142 = ArmGrpV7
toEnum 143 = ArmGrpV8
toEnum 144 = ArmGrpVfp2
toEnum 145 = ArmGrpVfp3
toEnum 146 = ArmGrpVfp4
toEnum 147 = ArmGrpArm
toEnum 148 = ArmGrpMclass
toEnum 149 = ArmGrpNotmclass
toEnum 150 = ArmGrpThumb
toEnum 151 = ArmGrpThumb1only
toEnum 152 = ArmGrpThumb2
toEnum 153 = ArmGrpPrev8
toEnum 154 = ArmGrpFpvmlx
toEnum 155 = ArmGrpMulops
toEnum 156 = ArmGrpCrc
toEnum 157 = ArmGrpDpvfp
toEnum 158 = ArmGrpV6m
toEnum 159 = ArmGrpVirtualization
toEnum 160 = ArmGrpEnding
toEnum unmatched = error ("ArmInsnGroup.toEnum: Cannot match " ++ show unmatched)