module Hapstone.Internal.Sparc where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Storable as C2HSImp
import Foreign
import Foreign.C.Types
data SparcCc = SparcCcInvalid
| SparcCcIccN
| SparcCcIccE
| SparcCcIccLe
| SparcCcIccL
| SparcCcIccLeu
| SparcCcIccCs
| SparcCcIccNeg
| SparcCcIccVs
| SparcCcIccA
| SparcCcIccNe
| SparcCcIccG
| SparcCcIccGe
| SparcCcIccGu
| SparcCcIccCc
| SparcCcIccPos
| SparcCcIccVc
| SparcCcFccN
| SparcCcFccNe
| SparcCcFccLg
| SparcCcFccUl
| SparcCcFccL
| SparcCcFccUg
| SparcCcFccG
| SparcCcFccU
| SparcCcFccA
| SparcCcFccE
| SparcCcFccUe
| SparcCcFccGe
| SparcCcFccUge
| SparcCcFccLe
| SparcCcFccUle
| SparcCcFccO
deriving (Show,Eq,Bounded)
instance Enum SparcCc where
succ SparcCcInvalid = SparcCcIccN
succ SparcCcIccN = SparcCcIccE
succ SparcCcIccE = SparcCcIccLe
succ SparcCcIccLe = SparcCcIccL
succ SparcCcIccL = SparcCcIccLeu
succ SparcCcIccLeu = SparcCcIccCs
succ SparcCcIccCs = SparcCcIccNeg
succ SparcCcIccNeg = SparcCcIccVs
succ SparcCcIccVs = SparcCcIccA
succ SparcCcIccA = SparcCcIccNe
succ SparcCcIccNe = SparcCcIccG
succ SparcCcIccG = SparcCcIccGe
succ SparcCcIccGe = SparcCcIccGu
succ SparcCcIccGu = SparcCcIccCc
succ SparcCcIccCc = SparcCcIccPos
succ SparcCcIccPos = SparcCcIccVc
succ SparcCcIccVc = SparcCcFccN
succ SparcCcFccN = SparcCcFccNe
succ SparcCcFccNe = SparcCcFccLg
succ SparcCcFccLg = SparcCcFccUl
succ SparcCcFccUl = SparcCcFccL
succ SparcCcFccL = SparcCcFccUg
succ SparcCcFccUg = SparcCcFccG
succ SparcCcFccG = SparcCcFccU
succ SparcCcFccU = SparcCcFccA
succ SparcCcFccA = SparcCcFccE
succ SparcCcFccE = SparcCcFccUe
succ SparcCcFccUe = SparcCcFccGe
succ SparcCcFccGe = SparcCcFccUge
succ SparcCcFccUge = SparcCcFccLe
succ SparcCcFccLe = SparcCcFccUle
succ SparcCcFccUle = SparcCcFccO
succ SparcCcFccO = error "SparcCc.succ: SparcCcFccO has no successor"
pred SparcCcIccN = SparcCcInvalid
pred SparcCcIccE = SparcCcIccN
pred SparcCcIccLe = SparcCcIccE
pred SparcCcIccL = SparcCcIccLe
pred SparcCcIccLeu = SparcCcIccL
pred SparcCcIccCs = SparcCcIccLeu
pred SparcCcIccNeg = SparcCcIccCs
pred SparcCcIccVs = SparcCcIccNeg
pred SparcCcIccA = SparcCcIccVs
pred SparcCcIccNe = SparcCcIccA
pred SparcCcIccG = SparcCcIccNe
pred SparcCcIccGe = SparcCcIccG
pred SparcCcIccGu = SparcCcIccGe
pred SparcCcIccCc = SparcCcIccGu
pred SparcCcIccPos = SparcCcIccCc
pred SparcCcIccVc = SparcCcIccPos
pred SparcCcFccN = SparcCcIccVc
pred SparcCcFccNe = SparcCcFccN
pred SparcCcFccLg = SparcCcFccNe
pred SparcCcFccUl = SparcCcFccLg
pred SparcCcFccL = SparcCcFccUl
pred SparcCcFccUg = SparcCcFccL
pred SparcCcFccG = SparcCcFccUg
pred SparcCcFccU = SparcCcFccG
pred SparcCcFccA = SparcCcFccU
pred SparcCcFccE = SparcCcFccA
pred SparcCcFccUe = SparcCcFccE
pred SparcCcFccGe = SparcCcFccUe
pred SparcCcFccUge = SparcCcFccGe
pred SparcCcFccLe = SparcCcFccUge
pred SparcCcFccUle = SparcCcFccLe
pred SparcCcFccO = SparcCcFccUle
pred SparcCcInvalid = error "SparcCc.pred: SparcCcInvalid 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 SparcCcFccO
fromEnum SparcCcInvalid = 0
fromEnum SparcCcIccN = 256
fromEnum SparcCcIccE = 257
fromEnum SparcCcIccLe = 258
fromEnum SparcCcIccL = 259
fromEnum SparcCcIccLeu = 260
fromEnum SparcCcIccCs = 261
fromEnum SparcCcIccNeg = 262
fromEnum SparcCcIccVs = 263
fromEnum SparcCcIccA = 264
fromEnum SparcCcIccNe = 265
fromEnum SparcCcIccG = 266
fromEnum SparcCcIccGe = 267
fromEnum SparcCcIccGu = 268
fromEnum SparcCcIccCc = 269
fromEnum SparcCcIccPos = 270
fromEnum SparcCcIccVc = 271
fromEnum SparcCcFccN = 272
fromEnum SparcCcFccNe = 273
fromEnum SparcCcFccLg = 274
fromEnum SparcCcFccUl = 275
fromEnum SparcCcFccL = 276
fromEnum SparcCcFccUg = 277
fromEnum SparcCcFccG = 278
fromEnum SparcCcFccU = 279
fromEnum SparcCcFccA = 280
fromEnum SparcCcFccE = 281
fromEnum SparcCcFccUe = 282
fromEnum SparcCcFccGe = 283
fromEnum SparcCcFccUge = 284
fromEnum SparcCcFccLe = 285
fromEnum SparcCcFccUle = 286
fromEnum SparcCcFccO = 287
toEnum 0 = SparcCcInvalid
toEnum 256 = SparcCcIccN
toEnum 257 = SparcCcIccE
toEnum 258 = SparcCcIccLe
toEnum 259 = SparcCcIccL
toEnum 260 = SparcCcIccLeu
toEnum 261 = SparcCcIccCs
toEnum 262 = SparcCcIccNeg
toEnum 263 = SparcCcIccVs
toEnum 264 = SparcCcIccA
toEnum 265 = SparcCcIccNe
toEnum 266 = SparcCcIccG
toEnum 267 = SparcCcIccGe
toEnum 268 = SparcCcIccGu
toEnum 269 = SparcCcIccCc
toEnum 270 = SparcCcIccPos
toEnum 271 = SparcCcIccVc
toEnum 272 = SparcCcFccN
toEnum 273 = SparcCcFccNe
toEnum 274 = SparcCcFccLg
toEnum 275 = SparcCcFccUl
toEnum 276 = SparcCcFccL
toEnum 277 = SparcCcFccUg
toEnum 278 = SparcCcFccG
toEnum 279 = SparcCcFccU
toEnum 280 = SparcCcFccA
toEnum 281 = SparcCcFccE
toEnum 282 = SparcCcFccUe
toEnum 283 = SparcCcFccGe
toEnum 284 = SparcCcFccUge
toEnum 285 = SparcCcFccLe
toEnum 286 = SparcCcFccUle
toEnum 287 = SparcCcFccO
toEnum unmatched = error ("SparcCc.toEnum: Cannot match " ++ show unmatched)
data SparcHint = SparcHintInvalid
| SparcHintA
| SparcHintPt
| SparcHintPn
deriving (Show,Eq,Bounded)
instance Enum SparcHint where
succ SparcHintInvalid = SparcHintA
succ SparcHintA = SparcHintPt
succ SparcHintPt = SparcHintPn
succ SparcHintPn = error "SparcHint.succ: SparcHintPn has no successor"
pred SparcHintA = SparcHintInvalid
pred SparcHintPt = SparcHintA
pred SparcHintPn = SparcHintPt
pred SparcHintInvalid = error "SparcHint.pred: SparcHintInvalid 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 SparcHintPn
fromEnum SparcHintInvalid = 0
fromEnum SparcHintA = 1
fromEnum SparcHintPt = 2
fromEnum SparcHintPn = 4
toEnum 0 = SparcHintInvalid
toEnum 1 = SparcHintA
toEnum 2 = SparcHintPt
toEnum 4 = SparcHintPn
toEnum unmatched = error ("SparcHint.toEnum: Cannot match " ++ show unmatched)
data SparcOpType = SparcOpInvalid
| SparcOpReg
| SparcOpImm
| SparcOpMem
deriving (Show,Eq,Bounded)
instance Enum SparcOpType where
succ SparcOpInvalid = SparcOpReg
succ SparcOpReg = SparcOpImm
succ SparcOpImm = SparcOpMem
succ SparcOpMem = error "SparcOpType.succ: SparcOpMem has no successor"
pred SparcOpReg = SparcOpInvalid
pred SparcOpImm = SparcOpReg
pred SparcOpMem = SparcOpImm
pred SparcOpInvalid = error "SparcOpType.pred: SparcOpInvalid 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 SparcOpMem
fromEnum SparcOpInvalid = 0
fromEnum SparcOpReg = 1
fromEnum SparcOpImm = 2
fromEnum SparcOpMem = 3
toEnum 0 = SparcOpInvalid
toEnum 1 = SparcOpReg
toEnum 2 = SparcOpImm
toEnum 3 = SparcOpMem
toEnum unmatched = error ("SparcOpType.toEnum: Cannot match " ++ show unmatched)
data SparcReg = SparcRegInvalid
| SparcRegF0
| SparcRegF1
| SparcRegF2
| SparcRegF3
| SparcRegF4
| SparcRegF5
| SparcRegF6
| SparcRegF7
| SparcRegF8
| SparcRegF9
| SparcRegF10
| SparcRegF11
| SparcRegF12
| SparcRegF13
| SparcRegF14
| SparcRegF15
| SparcRegF16
| SparcRegF17
| SparcRegF18
| SparcRegF19
| SparcRegF20
| SparcRegF21
| SparcRegF22
| SparcRegF23
| SparcRegF24
| SparcRegF25
| SparcRegF26
| SparcRegF27
| SparcRegF28
| SparcRegF29
| SparcRegF30
| SparcRegF31
| SparcRegF32
| SparcRegF34
| SparcRegF36
| SparcRegF38
| SparcRegF40
| SparcRegF42
| SparcRegF44
| SparcRegF46
| SparcRegF48
| SparcRegF50
| SparcRegF52
| SparcRegF54
| SparcRegF56
| SparcRegF58
| SparcRegF60
| SparcRegF62
| SparcRegFcc0
| SparcRegFcc1
| SparcRegFcc2
| SparcRegFcc3
| SparcRegFp
| SparcRegI6
| SparcRegG0
| SparcRegG1
| SparcRegG2
| SparcRegG3
| SparcRegG4
| SparcRegG5
| SparcRegG6
| SparcRegG7
| SparcRegI0
| SparcRegI1
| SparcRegI2
| SparcRegI3
| SparcRegI4
| SparcRegI5
| SparcRegI7
| SparcRegIcc
| SparcRegL0
| SparcRegL1
| SparcRegL2
| SparcRegL3
| SparcRegL4
| SparcRegL5
| SparcRegL6
| SparcRegL7
| SparcRegO0
| SparcRegO1
| SparcRegO2
| SparcRegO3
| SparcRegO4
| SparcRegO5
| SparcRegO7
| SparcRegSp
| SparcRegO6
| SparcRegY
| SparcRegXcc
| SparcRegEnding
deriving (Show,Eq,Bounded)
instance Enum SparcReg where
succ SparcRegInvalid = SparcRegF0
succ SparcRegF0 = SparcRegF1
succ SparcRegF1 = SparcRegF2
succ SparcRegF2 = SparcRegF3
succ SparcRegF3 = SparcRegF4
succ SparcRegF4 = SparcRegF5
succ SparcRegF5 = SparcRegF6
succ SparcRegF6 = SparcRegF7
succ SparcRegF7 = SparcRegF8
succ SparcRegF8 = SparcRegF9
succ SparcRegF9 = SparcRegF10
succ SparcRegF10 = SparcRegF11
succ SparcRegF11 = SparcRegF12
succ SparcRegF12 = SparcRegF13
succ SparcRegF13 = SparcRegF14
succ SparcRegF14 = SparcRegF15
succ SparcRegF15 = SparcRegF16
succ SparcRegF16 = SparcRegF17
succ SparcRegF17 = SparcRegF18
succ SparcRegF18 = SparcRegF19
succ SparcRegF19 = SparcRegF20
succ SparcRegF20 = SparcRegF21
succ SparcRegF21 = SparcRegF22
succ SparcRegF22 = SparcRegF23
succ SparcRegF23 = SparcRegF24
succ SparcRegF24 = SparcRegF25
succ SparcRegF25 = SparcRegF26
succ SparcRegF26 = SparcRegF27
succ SparcRegF27 = SparcRegF28
succ SparcRegF28 = SparcRegF29
succ SparcRegF29 = SparcRegF30
succ SparcRegF30 = SparcRegF31
succ SparcRegF31 = SparcRegF32
succ SparcRegF32 = SparcRegF34
succ SparcRegF34 = SparcRegF36
succ SparcRegF36 = SparcRegF38
succ SparcRegF38 = SparcRegF40
succ SparcRegF40 = SparcRegF42
succ SparcRegF42 = SparcRegF44
succ SparcRegF44 = SparcRegF46
succ SparcRegF46 = SparcRegF48
succ SparcRegF48 = SparcRegF50
succ SparcRegF50 = SparcRegF52
succ SparcRegF52 = SparcRegF54
succ SparcRegF54 = SparcRegF56
succ SparcRegF56 = SparcRegF58
succ SparcRegF58 = SparcRegF60
succ SparcRegF60 = SparcRegF62
succ SparcRegF62 = SparcRegFcc0
succ SparcRegFcc0 = SparcRegFcc1
succ SparcRegFcc1 = SparcRegFcc2
succ SparcRegFcc2 = SparcRegFcc3
succ SparcRegFcc3 = SparcRegFp
succ SparcRegFp = SparcRegG0
succ SparcRegI6 = SparcRegG0
succ SparcRegG0 = SparcRegG1
succ SparcRegG1 = SparcRegG2
succ SparcRegG2 = SparcRegG3
succ SparcRegG3 = SparcRegG4
succ SparcRegG4 = SparcRegG5
succ SparcRegG5 = SparcRegG6
succ SparcRegG6 = SparcRegG7
succ SparcRegG7 = SparcRegI0
succ SparcRegI0 = SparcRegI1
succ SparcRegI1 = SparcRegI2
succ SparcRegI2 = SparcRegI3
succ SparcRegI3 = SparcRegI4
succ SparcRegI4 = SparcRegI5
succ SparcRegI5 = SparcRegI7
succ SparcRegI7 = SparcRegIcc
succ SparcRegIcc = SparcRegL0
succ SparcRegL0 = SparcRegL1
succ SparcRegL1 = SparcRegL2
succ SparcRegL2 = SparcRegL3
succ SparcRegL3 = SparcRegL4
succ SparcRegL4 = SparcRegL5
succ SparcRegL5 = SparcRegL6
succ SparcRegL6 = SparcRegL7
succ SparcRegL7 = SparcRegO0
succ SparcRegO0 = SparcRegO1
succ SparcRegO1 = SparcRegO2
succ SparcRegO2 = SparcRegO3
succ SparcRegO3 = SparcRegO4
succ SparcRegO4 = SparcRegO5
succ SparcRegO5 = SparcRegO7
succ SparcRegO7 = SparcRegSp
succ SparcRegSp = SparcRegY
succ SparcRegO6 = SparcRegY
succ SparcRegY = SparcRegXcc
succ SparcRegXcc = SparcRegEnding
succ SparcRegEnding = error "SparcReg.succ: SparcRegEnding has no successor"
pred SparcRegF0 = SparcRegInvalid
pred SparcRegF1 = SparcRegF0
pred SparcRegF2 = SparcRegF1
pred SparcRegF3 = SparcRegF2
pred SparcRegF4 = SparcRegF3
pred SparcRegF5 = SparcRegF4
pred SparcRegF6 = SparcRegF5
pred SparcRegF7 = SparcRegF6
pred SparcRegF8 = SparcRegF7
pred SparcRegF9 = SparcRegF8
pred SparcRegF10 = SparcRegF9
pred SparcRegF11 = SparcRegF10
pred SparcRegF12 = SparcRegF11
pred SparcRegF13 = SparcRegF12
pred SparcRegF14 = SparcRegF13
pred SparcRegF15 = SparcRegF14
pred SparcRegF16 = SparcRegF15
pred SparcRegF17 = SparcRegF16
pred SparcRegF18 = SparcRegF17
pred SparcRegF19 = SparcRegF18
pred SparcRegF20 = SparcRegF19
pred SparcRegF21 = SparcRegF20
pred SparcRegF22 = SparcRegF21
pred SparcRegF23 = SparcRegF22
pred SparcRegF24 = SparcRegF23
pred SparcRegF25 = SparcRegF24
pred SparcRegF26 = SparcRegF25
pred SparcRegF27 = SparcRegF26
pred SparcRegF28 = SparcRegF27
pred SparcRegF29 = SparcRegF28
pred SparcRegF30 = SparcRegF29
pred SparcRegF31 = SparcRegF30
pred SparcRegF32 = SparcRegF31
pred SparcRegF34 = SparcRegF32
pred SparcRegF36 = SparcRegF34
pred SparcRegF38 = SparcRegF36
pred SparcRegF40 = SparcRegF38
pred SparcRegF42 = SparcRegF40
pred SparcRegF44 = SparcRegF42
pred SparcRegF46 = SparcRegF44
pred SparcRegF48 = SparcRegF46
pred SparcRegF50 = SparcRegF48
pred SparcRegF52 = SparcRegF50
pred SparcRegF54 = SparcRegF52
pred SparcRegF56 = SparcRegF54
pred SparcRegF58 = SparcRegF56
pred SparcRegF60 = SparcRegF58
pred SparcRegF62 = SparcRegF60
pred SparcRegFcc0 = SparcRegF62
pred SparcRegFcc1 = SparcRegFcc0
pred SparcRegFcc2 = SparcRegFcc1
pred SparcRegFcc3 = SparcRegFcc2
pred SparcRegFp = SparcRegFcc3
pred SparcRegI6 = SparcRegFcc3
pred SparcRegG0 = SparcRegFp
pred SparcRegG1 = SparcRegG0
pred SparcRegG2 = SparcRegG1
pred SparcRegG3 = SparcRegG2
pred SparcRegG4 = SparcRegG3
pred SparcRegG5 = SparcRegG4
pred SparcRegG6 = SparcRegG5
pred SparcRegG7 = SparcRegG6
pred SparcRegI0 = SparcRegG7
pred SparcRegI1 = SparcRegI0
pred SparcRegI2 = SparcRegI1
pred SparcRegI3 = SparcRegI2
pred SparcRegI4 = SparcRegI3
pred SparcRegI5 = SparcRegI4
pred SparcRegI7 = SparcRegI5
pred SparcRegIcc = SparcRegI7
pred SparcRegL0 = SparcRegIcc
pred SparcRegL1 = SparcRegL0
pred SparcRegL2 = SparcRegL1
pred SparcRegL3 = SparcRegL2
pred SparcRegL4 = SparcRegL3
pred SparcRegL5 = SparcRegL4
pred SparcRegL6 = SparcRegL5
pred SparcRegL7 = SparcRegL6
pred SparcRegO0 = SparcRegL7
pred SparcRegO1 = SparcRegO0
pred SparcRegO2 = SparcRegO1
pred SparcRegO3 = SparcRegO2
pred SparcRegO4 = SparcRegO3
pred SparcRegO5 = SparcRegO4
pred SparcRegO7 = SparcRegO5
pred SparcRegSp = SparcRegO7
pred SparcRegO6 = SparcRegO7
pred SparcRegY = SparcRegSp
pred SparcRegXcc = SparcRegY
pred SparcRegEnding = SparcRegXcc
pred SparcRegInvalid = error "SparcReg.pred: SparcRegInvalid 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 SparcRegEnding
fromEnum SparcRegInvalid = 0
fromEnum SparcRegF0 = 1
fromEnum SparcRegF1 = 2
fromEnum SparcRegF2 = 3
fromEnum SparcRegF3 = 4
fromEnum SparcRegF4 = 5
fromEnum SparcRegF5 = 6
fromEnum SparcRegF6 = 7
fromEnum SparcRegF7 = 8
fromEnum SparcRegF8 = 9
fromEnum SparcRegF9 = 10
fromEnum SparcRegF10 = 11
fromEnum SparcRegF11 = 12
fromEnum SparcRegF12 = 13
fromEnum SparcRegF13 = 14
fromEnum SparcRegF14 = 15
fromEnum SparcRegF15 = 16
fromEnum SparcRegF16 = 17
fromEnum SparcRegF17 = 18
fromEnum SparcRegF18 = 19
fromEnum SparcRegF19 = 20
fromEnum SparcRegF20 = 21
fromEnum SparcRegF21 = 22
fromEnum SparcRegF22 = 23
fromEnum SparcRegF23 = 24
fromEnum SparcRegF24 = 25
fromEnum SparcRegF25 = 26
fromEnum SparcRegF26 = 27
fromEnum SparcRegF27 = 28
fromEnum SparcRegF28 = 29
fromEnum SparcRegF29 = 30
fromEnum SparcRegF30 = 31
fromEnum SparcRegF31 = 32
fromEnum SparcRegF32 = 33
fromEnum SparcRegF34 = 34
fromEnum SparcRegF36 = 35
fromEnum SparcRegF38 = 36
fromEnum SparcRegF40 = 37
fromEnum SparcRegF42 = 38
fromEnum SparcRegF44 = 39
fromEnum SparcRegF46 = 40
fromEnum SparcRegF48 = 41
fromEnum SparcRegF50 = 42
fromEnum SparcRegF52 = 43
fromEnum SparcRegF54 = 44
fromEnum SparcRegF56 = 45
fromEnum SparcRegF58 = 46
fromEnum SparcRegF60 = 47
fromEnum SparcRegF62 = 48
fromEnum SparcRegFcc0 = 49
fromEnum SparcRegFcc1 = 50
fromEnum SparcRegFcc2 = 51
fromEnum SparcRegFcc3 = 52
fromEnum SparcRegFp = 53
fromEnum SparcRegI6 = 53
fromEnum SparcRegG0 = 54
fromEnum SparcRegG1 = 55
fromEnum SparcRegG2 = 56
fromEnum SparcRegG3 = 57
fromEnum SparcRegG4 = 58
fromEnum SparcRegG5 = 59
fromEnum SparcRegG6 = 60
fromEnum SparcRegG7 = 61
fromEnum SparcRegI0 = 62
fromEnum SparcRegI1 = 63
fromEnum SparcRegI2 = 64
fromEnum SparcRegI3 = 65
fromEnum SparcRegI4 = 66
fromEnum SparcRegI5 = 67
fromEnum SparcRegI7 = 68
fromEnum SparcRegIcc = 69
fromEnum SparcRegL0 = 70
fromEnum SparcRegL1 = 71
fromEnum SparcRegL2 = 72
fromEnum SparcRegL3 = 73
fromEnum SparcRegL4 = 74
fromEnum SparcRegL5 = 75
fromEnum SparcRegL6 = 76
fromEnum SparcRegL7 = 77
fromEnum SparcRegO0 = 78
fromEnum SparcRegO1 = 79
fromEnum SparcRegO2 = 80
fromEnum SparcRegO3 = 81
fromEnum SparcRegO4 = 82
fromEnum SparcRegO5 = 83
fromEnum SparcRegO7 = 84
fromEnum SparcRegSp = 85
fromEnum SparcRegO6 = 85
fromEnum SparcRegY = 86
fromEnum SparcRegXcc = 87
fromEnum SparcRegEnding = 88
toEnum 0 = SparcRegInvalid
toEnum 1 = SparcRegF0
toEnum 2 = SparcRegF1
toEnum 3 = SparcRegF2
toEnum 4 = SparcRegF3
toEnum 5 = SparcRegF4
toEnum 6 = SparcRegF5
toEnum 7 = SparcRegF6
toEnum 8 = SparcRegF7
toEnum 9 = SparcRegF8
toEnum 10 = SparcRegF9
toEnum 11 = SparcRegF10
toEnum 12 = SparcRegF11
toEnum 13 = SparcRegF12
toEnum 14 = SparcRegF13
toEnum 15 = SparcRegF14
toEnum 16 = SparcRegF15
toEnum 17 = SparcRegF16
toEnum 18 = SparcRegF17
toEnum 19 = SparcRegF18
toEnum 20 = SparcRegF19
toEnum 21 = SparcRegF20
toEnum 22 = SparcRegF21
toEnum 23 = SparcRegF22
toEnum 24 = SparcRegF23
toEnum 25 = SparcRegF24
toEnum 26 = SparcRegF25
toEnum 27 = SparcRegF26
toEnum 28 = SparcRegF27
toEnum 29 = SparcRegF28
toEnum 30 = SparcRegF29
toEnum 31 = SparcRegF30
toEnum 32 = SparcRegF31
toEnum 33 = SparcRegF32
toEnum 34 = SparcRegF34
toEnum 35 = SparcRegF36
toEnum 36 = SparcRegF38
toEnum 37 = SparcRegF40
toEnum 38 = SparcRegF42
toEnum 39 = SparcRegF44
toEnum 40 = SparcRegF46
toEnum 41 = SparcRegF48
toEnum 42 = SparcRegF50
toEnum 43 = SparcRegF52
toEnum 44 = SparcRegF54
toEnum 45 = SparcRegF56
toEnum 46 = SparcRegF58
toEnum 47 = SparcRegF60
toEnum 48 = SparcRegF62
toEnum 49 = SparcRegFcc0
toEnum 50 = SparcRegFcc1
toEnum 51 = SparcRegFcc2
toEnum 52 = SparcRegFcc3
toEnum 53 = SparcRegFp
toEnum 54 = SparcRegG0
toEnum 55 = SparcRegG1
toEnum 56 = SparcRegG2
toEnum 57 = SparcRegG3
toEnum 58 = SparcRegG4
toEnum 59 = SparcRegG5
toEnum 60 = SparcRegG6
toEnum 61 = SparcRegG7
toEnum 62 = SparcRegI0
toEnum 63 = SparcRegI1
toEnum 64 = SparcRegI2
toEnum 65 = SparcRegI3
toEnum 66 = SparcRegI4
toEnum 67 = SparcRegI5
toEnum 68 = SparcRegI7
toEnum 69 = SparcRegIcc
toEnum 70 = SparcRegL0
toEnum 71 = SparcRegL1
toEnum 72 = SparcRegL2
toEnum 73 = SparcRegL3
toEnum 74 = SparcRegL4
toEnum 75 = SparcRegL5
toEnum 76 = SparcRegL6
toEnum 77 = SparcRegL7
toEnum 78 = SparcRegO0
toEnum 79 = SparcRegO1
toEnum 80 = SparcRegO2
toEnum 81 = SparcRegO3
toEnum 82 = SparcRegO4
toEnum 83 = SparcRegO5
toEnum 84 = SparcRegO7
toEnum 85 = SparcRegSp
toEnum 86 = SparcRegY
toEnum 87 = SparcRegXcc
toEnum 88 = SparcRegEnding
toEnum unmatched = error ("SparcReg.toEnum: Cannot match " ++ show unmatched)
data SparcOpMemStruct = SparcOpMemStruct
{ base :: Word8
, index :: Word8
, disp :: Int32
} deriving (Show, Eq)
instance Storable SparcOpMemStruct where
sizeOf _ = 8
alignment _ = 4
peek p = SparcOpMemStruct
<$> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CUChar}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 1 :: IO C2HSImp.CUChar}) p)
<*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p)
poke p (SparcOpMemStruct b i d) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CUChar)}) p (fromIntegral b)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 1 (val :: C2HSImp.CUChar)}) p (fromIntegral i)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral d)
data CsSparcOp
= Reg Word32
| Imm Int32
| Mem SparcOpMemStruct
| Undefined
deriving (Show, Eq)
instance Storable CsSparcOp where
sizeOf _ = 12
alignment _ = 4
peek p = do
t <- fromIntegral <$> ((\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p :: IO CInt)
let bP = plusPtr p 4
case toEnum t of
SparcOpReg -> Reg <$> peek bP
SparcOpImm -> Imm <$> peek bP
SparcOpMem -> Mem <$> peek bP
_ -> return Undefined
poke p op = do
let bP = plusPtr p 4
setType = (\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p . fromIntegral . fromEnum
case op of
Reg r -> do
poke bP (fromIntegral $ fromEnum r :: CInt)
setType SparcOpReg
Imm i -> do
poke bP i
setType SparcOpImm
Mem m -> do
poke bP m
setType SparcOpMem
_ -> setType SparcOpInvalid
data CsSparc = CsSparc
{ cc :: SparcCc
, hint :: SparcHint
, operands :: [CsSparcOp]
} deriving (Show, Eq)
instance Storable CsSparc where
sizeOf _ = 60
alignment _ = 4
peek p = CsSparc
<$> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p)
<*> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 4 :: IO C2HSImp.CInt}) p)
<*> do num <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CUChar}) p
let ptr = plusPtr p (12)
peekArray num ptr
poke p (CsSparc cc h o) = do
(\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum cc)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 4 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum h)
(\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CUChar)}) p (fromIntegral $ length o)
if length o > 4
then error "operands overflew 4 elements"
else pokeArray (plusPtr p (12)) o
data SparcInsn = SparcInsInvalid
| SparcInsAddcc
| SparcInsAddx
| SparcInsAddxcc
| SparcInsAddxc
| SparcInsAddxccc
| SparcInsAdd
| SparcInsAlignaddr
| SparcInsAlignaddrl
| SparcInsAndcc
| SparcInsAndncc
| SparcInsAndn
| SparcInsAnd
| SparcInsArray16
| SparcInsArray32
| SparcInsArray8
| SparcInsB
| SparcInsJmp
| SparcInsBmask
| SparcInsFb
| SparcInsBrgez
| SparcInsBrgz
| SparcInsBrlez
| SparcInsBrlz
| SparcInsBrnz
| SparcInsBrz
| SparcInsBshuffle
| SparcInsCall
| SparcInsCasx
| SparcInsCas
| SparcInsCmask16
| SparcInsCmask32
| SparcInsCmask8
| SparcInsCmp
| SparcInsEdge16
| SparcInsEdge16l
| SparcInsEdge16ln
| SparcInsEdge16n
| SparcInsEdge32
| SparcInsEdge32l
| SparcInsEdge32ln
| SparcInsEdge32n
| SparcInsEdge8
| SparcInsEdge8l
| SparcInsEdge8ln
| SparcInsEdge8n
| SparcInsFabsd
| SparcInsFabsq
| SparcInsFabss
| SparcInsFaddd
| SparcInsFaddq
| SparcInsFadds
| SparcInsFaligndata
| SparcInsFand
| SparcInsFandnot1
| SparcInsFandnot1s
| SparcInsFandnot2
| SparcInsFandnot2s
| SparcInsFands
| SparcInsFchksm16
| SparcInsFcmpd
| SparcInsFcmpeq16
| SparcInsFcmpeq32
| SparcInsFcmpgt16
| SparcInsFcmpgt32
| SparcInsFcmple16
| SparcInsFcmple32
| SparcInsFcmpne16
| SparcInsFcmpne32
| SparcInsFcmpq
| SparcInsFcmps
| SparcInsFdivd
| SparcInsFdivq
| SparcInsFdivs
| SparcInsFdmulq
| SparcInsFdtoi
| SparcInsFdtoq
| SparcInsFdtos
| SparcInsFdtox
| SparcInsFexpand
| SparcInsFhaddd
| SparcInsFhadds
| SparcInsFhsubd
| SparcInsFhsubs
| SparcInsFitod
| SparcInsFitoq
| SparcInsFitos
| SparcInsFlcmpd
| SparcInsFlcmps
| SparcInsFlushw
| SparcInsFmean16
| SparcInsFmovd
| SparcInsFmovq
| SparcInsFmovrdgez
| SparcInsFmovrqgez
| SparcInsFmovrsgez
| SparcInsFmovrdgz
| SparcInsFmovrqgz
| SparcInsFmovrsgz
| SparcInsFmovrdlez
| SparcInsFmovrqlez
| SparcInsFmovrslez
| SparcInsFmovrdlz
| SparcInsFmovrqlz
| SparcInsFmovrslz
| SparcInsFmovrdnz
| SparcInsFmovrqnz
| SparcInsFmovrsnz
| SparcInsFmovrdz
| SparcInsFmovrqz
| SparcInsFmovrsz
| SparcInsFmovs
| SparcInsFmul8sux16
| SparcInsFmul8ulx16
| SparcInsFmul8x16
| SparcInsFmul8x16al
| SparcInsFmul8x16au
| SparcInsFmuld
| SparcInsFmuld8sux16
| SparcInsFmuld8ulx16
| SparcInsFmulq
| SparcInsFmuls
| SparcInsFnaddd
| SparcInsFnadds
| SparcInsFnand
| SparcInsFnands
| SparcInsFnegd
| SparcInsFnegq
| SparcInsFnegs
| SparcInsFnhaddd
| SparcInsFnhadds
| SparcInsFnor
| SparcInsFnors
| SparcInsFnot1
| SparcInsFnot1s
| SparcInsFnot2
| SparcInsFnot2s
| SparcInsFone
| SparcInsFones
| SparcInsFor
| SparcInsFornot1
| SparcInsFornot1s
| SparcInsFornot2
| SparcInsFornot2s
| SparcInsFors
| SparcInsFpack16
| SparcInsFpack32
| SparcInsFpackfix
| SparcInsFpadd16
| SparcInsFpadd16s
| SparcInsFpadd32
| SparcInsFpadd32s
| SparcInsFpadd64
| SparcInsFpmerge
| SparcInsFpsub16
| SparcInsFpsub16s
| SparcInsFpsub32
| SparcInsFpsub32s
| SparcInsFqtod
| SparcInsFqtoi
| SparcInsFqtos
| SparcInsFqtox
| SparcInsFslas16
| SparcInsFslas32
| SparcInsFsll16
| SparcInsFsll32
| SparcInsFsmuld
| SparcInsFsqrtd
| SparcInsFsqrtq
| SparcInsFsqrts
| SparcInsFsra16
| SparcInsFsra32
| SparcInsFsrc1
| SparcInsFsrc1s
| SparcInsFsrc2
| SparcInsFsrc2s
| SparcInsFsrl16
| SparcInsFsrl32
| SparcInsFstod
| SparcInsFstoi
| SparcInsFstoq
| SparcInsFstox
| SparcInsFsubd
| SparcInsFsubq
| SparcInsFsubs
| SparcInsFxnor
| SparcInsFxnors
| SparcInsFxor
| SparcInsFxors
| SparcInsFxtod
| SparcInsFxtoq
| SparcInsFxtos
| SparcInsFzero
| SparcInsFzeros
| SparcInsJmpl
| SparcInsLdd
| SparcInsLd
| SparcInsLdq
| SparcInsLdsb
| SparcInsLdsh
| SparcInsLdsw
| SparcInsLdub
| SparcInsLduh
| SparcInsLdx
| SparcInsLzcnt
| SparcInsMembar
| SparcInsMovdtox
| SparcInsMov
| SparcInsMovrgez
| SparcInsMovrgz
| SparcInsMovrlez
| SparcInsMovrlz
| SparcInsMovrnz
| SparcInsMovrz
| SparcInsMovstosw
| SparcInsMovstouw
| SparcInsMulx
| SparcInsNop
| SparcInsOrcc
| SparcInsOrncc
| SparcInsOrn
| SparcInsOr
| SparcInsPdist
| SparcInsPdistn
| SparcInsPopc
| SparcInsRd
| SparcInsRestore
| SparcInsRett
| SparcInsSave
| SparcInsSdivcc
| SparcInsSdivx
| SparcInsSdiv
| SparcInsSethi
| SparcInsShutdown
| SparcInsSiam
| SparcInsSllx
| SparcInsSll
| SparcInsSmulcc
| SparcInsSmul
| SparcInsSrax
| SparcInsSra
| SparcInsSrlx
| SparcInsSrl
| SparcInsStbar
| SparcInsStb
| SparcInsStd
| SparcInsSt
| SparcInsSth
| SparcInsStq
| SparcInsStx
| SparcInsSubcc
| SparcInsSubx
| SparcInsSubxcc
| SparcInsSub
| SparcInsSwap
| SparcInsTaddcctv
| SparcInsTaddcc
| SparcInsT
| SparcInsTsubcctv
| SparcInsTsubcc
| SparcInsUdivcc
| SparcInsUdivx
| SparcInsUdiv
| SparcInsUmulcc
| SparcInsUmulxhi
| SparcInsUmul
| SparcInsUnimp
| SparcInsFcmped
| SparcInsFcmpeq
| SparcInsFcmpes
| SparcInsWr
| SparcInsXmulx
| SparcInsXmulxhi
| SparcInsXnorcc
| SparcInsXnor
| SparcInsXorcc
| SparcInsXor
| SparcInsRet
| SparcInsRetl
| SparcInsEnding
deriving (Show,Eq,Bounded)
instance Enum SparcInsn where
succ SparcInsInvalid = SparcInsAddcc
succ SparcInsAddcc = SparcInsAddx
succ SparcInsAddx = SparcInsAddxcc
succ SparcInsAddxcc = SparcInsAddxc
succ SparcInsAddxc = SparcInsAddxccc
succ SparcInsAddxccc = SparcInsAdd
succ SparcInsAdd = SparcInsAlignaddr
succ SparcInsAlignaddr = SparcInsAlignaddrl
succ SparcInsAlignaddrl = SparcInsAndcc
succ SparcInsAndcc = SparcInsAndncc
succ SparcInsAndncc = SparcInsAndn
succ SparcInsAndn = SparcInsAnd
succ SparcInsAnd = SparcInsArray16
succ SparcInsArray16 = SparcInsArray32
succ SparcInsArray32 = SparcInsArray8
succ SparcInsArray8 = SparcInsB
succ SparcInsB = SparcInsJmp
succ SparcInsJmp = SparcInsBmask
succ SparcInsBmask = SparcInsFb
succ SparcInsFb = SparcInsBrgez
succ SparcInsBrgez = SparcInsBrgz
succ SparcInsBrgz = SparcInsBrlez
succ SparcInsBrlez = SparcInsBrlz
succ SparcInsBrlz = SparcInsBrnz
succ SparcInsBrnz = SparcInsBrz
succ SparcInsBrz = SparcInsBshuffle
succ SparcInsBshuffle = SparcInsCall
succ SparcInsCall = SparcInsCasx
succ SparcInsCasx = SparcInsCas
succ SparcInsCas = SparcInsCmask16
succ SparcInsCmask16 = SparcInsCmask32
succ SparcInsCmask32 = SparcInsCmask8
succ SparcInsCmask8 = SparcInsCmp
succ SparcInsCmp = SparcInsEdge16
succ SparcInsEdge16 = SparcInsEdge16l
succ SparcInsEdge16l = SparcInsEdge16ln
succ SparcInsEdge16ln = SparcInsEdge16n
succ SparcInsEdge16n = SparcInsEdge32
succ SparcInsEdge32 = SparcInsEdge32l
succ SparcInsEdge32l = SparcInsEdge32ln
succ SparcInsEdge32ln = SparcInsEdge32n
succ SparcInsEdge32n = SparcInsEdge8
succ SparcInsEdge8 = SparcInsEdge8l
succ SparcInsEdge8l = SparcInsEdge8ln
succ SparcInsEdge8ln = SparcInsEdge8n
succ SparcInsEdge8n = SparcInsFabsd
succ SparcInsFabsd = SparcInsFabsq
succ SparcInsFabsq = SparcInsFabss
succ SparcInsFabss = SparcInsFaddd
succ SparcInsFaddd = SparcInsFaddq
succ SparcInsFaddq = SparcInsFadds
succ SparcInsFadds = SparcInsFaligndata
succ SparcInsFaligndata = SparcInsFand
succ SparcInsFand = SparcInsFandnot1
succ SparcInsFandnot1 = SparcInsFandnot1s
succ SparcInsFandnot1s = SparcInsFandnot2
succ SparcInsFandnot2 = SparcInsFandnot2s
succ SparcInsFandnot2s = SparcInsFands
succ SparcInsFands = SparcInsFchksm16
succ SparcInsFchksm16 = SparcInsFcmpd
succ SparcInsFcmpd = SparcInsFcmpeq16
succ SparcInsFcmpeq16 = SparcInsFcmpeq32
succ SparcInsFcmpeq32 = SparcInsFcmpgt16
succ SparcInsFcmpgt16 = SparcInsFcmpgt32
succ SparcInsFcmpgt32 = SparcInsFcmple16
succ SparcInsFcmple16 = SparcInsFcmple32
succ SparcInsFcmple32 = SparcInsFcmpne16
succ SparcInsFcmpne16 = SparcInsFcmpne32
succ SparcInsFcmpne32 = SparcInsFcmpq
succ SparcInsFcmpq = SparcInsFcmps
succ SparcInsFcmps = SparcInsFdivd
succ SparcInsFdivd = SparcInsFdivq
succ SparcInsFdivq = SparcInsFdivs
succ SparcInsFdivs = SparcInsFdmulq
succ SparcInsFdmulq = SparcInsFdtoi
succ SparcInsFdtoi = SparcInsFdtoq
succ SparcInsFdtoq = SparcInsFdtos
succ SparcInsFdtos = SparcInsFdtox
succ SparcInsFdtox = SparcInsFexpand
succ SparcInsFexpand = SparcInsFhaddd
succ SparcInsFhaddd = SparcInsFhadds
succ SparcInsFhadds = SparcInsFhsubd
succ SparcInsFhsubd = SparcInsFhsubs
succ SparcInsFhsubs = SparcInsFitod
succ SparcInsFitod = SparcInsFitoq
succ SparcInsFitoq = SparcInsFitos
succ SparcInsFitos = SparcInsFlcmpd
succ SparcInsFlcmpd = SparcInsFlcmps
succ SparcInsFlcmps = SparcInsFlushw
succ SparcInsFlushw = SparcInsFmean16
succ SparcInsFmean16 = SparcInsFmovd
succ SparcInsFmovd = SparcInsFmovq
succ SparcInsFmovq = SparcInsFmovrdgez
succ SparcInsFmovrdgez = SparcInsFmovrqgez
succ SparcInsFmovrqgez = SparcInsFmovrsgez
succ SparcInsFmovrsgez = SparcInsFmovrdgz
succ SparcInsFmovrdgz = SparcInsFmovrqgz
succ SparcInsFmovrqgz = SparcInsFmovrsgz
succ SparcInsFmovrsgz = SparcInsFmovrdlez
succ SparcInsFmovrdlez = SparcInsFmovrqlez
succ SparcInsFmovrqlez = SparcInsFmovrslez
succ SparcInsFmovrslez = SparcInsFmovrdlz
succ SparcInsFmovrdlz = SparcInsFmovrqlz
succ SparcInsFmovrqlz = SparcInsFmovrslz
succ SparcInsFmovrslz = SparcInsFmovrdnz
succ SparcInsFmovrdnz = SparcInsFmovrqnz
succ SparcInsFmovrqnz = SparcInsFmovrsnz
succ SparcInsFmovrsnz = SparcInsFmovrdz
succ SparcInsFmovrdz = SparcInsFmovrqz
succ SparcInsFmovrqz = SparcInsFmovrsz
succ SparcInsFmovrsz = SparcInsFmovs
succ SparcInsFmovs = SparcInsFmul8sux16
succ SparcInsFmul8sux16 = SparcInsFmul8ulx16
succ SparcInsFmul8ulx16 = SparcInsFmul8x16
succ SparcInsFmul8x16 = SparcInsFmul8x16al
succ SparcInsFmul8x16al = SparcInsFmul8x16au
succ SparcInsFmul8x16au = SparcInsFmuld
succ SparcInsFmuld = SparcInsFmuld8sux16
succ SparcInsFmuld8sux16 = SparcInsFmuld8ulx16
succ SparcInsFmuld8ulx16 = SparcInsFmulq
succ SparcInsFmulq = SparcInsFmuls
succ SparcInsFmuls = SparcInsFnaddd
succ SparcInsFnaddd = SparcInsFnadds
succ SparcInsFnadds = SparcInsFnand
succ SparcInsFnand = SparcInsFnands
succ SparcInsFnands = SparcInsFnegd
succ SparcInsFnegd = SparcInsFnegq
succ SparcInsFnegq = SparcInsFnegs
succ SparcInsFnegs = SparcInsFnhaddd
succ SparcInsFnhaddd = SparcInsFnhadds
succ SparcInsFnhadds = SparcInsFnor
succ SparcInsFnor = SparcInsFnors
succ SparcInsFnors = SparcInsFnot1
succ SparcInsFnot1 = SparcInsFnot1s
succ SparcInsFnot1s = SparcInsFnot2
succ SparcInsFnot2 = SparcInsFnot2s
succ SparcInsFnot2s = SparcInsFone
succ SparcInsFone = SparcInsFones
succ SparcInsFones = SparcInsFor
succ SparcInsFor = SparcInsFornot1
succ SparcInsFornot1 = SparcInsFornot1s
succ SparcInsFornot1s = SparcInsFornot2
succ SparcInsFornot2 = SparcInsFornot2s
succ SparcInsFornot2s = SparcInsFors
succ SparcInsFors = SparcInsFpack16
succ SparcInsFpack16 = SparcInsFpack32
succ SparcInsFpack32 = SparcInsFpackfix
succ SparcInsFpackfix = SparcInsFpadd16
succ SparcInsFpadd16 = SparcInsFpadd16s
succ SparcInsFpadd16s = SparcInsFpadd32
succ SparcInsFpadd32 = SparcInsFpadd32s
succ SparcInsFpadd32s = SparcInsFpadd64
succ SparcInsFpadd64 = SparcInsFpmerge
succ SparcInsFpmerge = SparcInsFpsub16
succ SparcInsFpsub16 = SparcInsFpsub16s
succ SparcInsFpsub16s = SparcInsFpsub32
succ SparcInsFpsub32 = SparcInsFpsub32s
succ SparcInsFpsub32s = SparcInsFqtod
succ SparcInsFqtod = SparcInsFqtoi
succ SparcInsFqtoi = SparcInsFqtos
succ SparcInsFqtos = SparcInsFqtox
succ SparcInsFqtox = SparcInsFslas16
succ SparcInsFslas16 = SparcInsFslas32
succ SparcInsFslas32 = SparcInsFsll16
succ SparcInsFsll16 = SparcInsFsll32
succ SparcInsFsll32 = SparcInsFsmuld
succ SparcInsFsmuld = SparcInsFsqrtd
succ SparcInsFsqrtd = SparcInsFsqrtq
succ SparcInsFsqrtq = SparcInsFsqrts
succ SparcInsFsqrts = SparcInsFsra16
succ SparcInsFsra16 = SparcInsFsra32
succ SparcInsFsra32 = SparcInsFsrc1
succ SparcInsFsrc1 = SparcInsFsrc1s
succ SparcInsFsrc1s = SparcInsFsrc2
succ SparcInsFsrc2 = SparcInsFsrc2s
succ SparcInsFsrc2s = SparcInsFsrl16
succ SparcInsFsrl16 = SparcInsFsrl32
succ SparcInsFsrl32 = SparcInsFstod
succ SparcInsFstod = SparcInsFstoi
succ SparcInsFstoi = SparcInsFstoq
succ SparcInsFstoq = SparcInsFstox
succ SparcInsFstox = SparcInsFsubd
succ SparcInsFsubd = SparcInsFsubq
succ SparcInsFsubq = SparcInsFsubs
succ SparcInsFsubs = SparcInsFxnor
succ SparcInsFxnor = SparcInsFxnors
succ SparcInsFxnors = SparcInsFxor
succ SparcInsFxor = SparcInsFxors
succ SparcInsFxors = SparcInsFxtod
succ SparcInsFxtod = SparcInsFxtoq
succ SparcInsFxtoq = SparcInsFxtos
succ SparcInsFxtos = SparcInsFzero
succ SparcInsFzero = SparcInsFzeros
succ SparcInsFzeros = SparcInsJmpl
succ SparcInsJmpl = SparcInsLdd
succ SparcInsLdd = SparcInsLd
succ SparcInsLd = SparcInsLdq
succ SparcInsLdq = SparcInsLdsb
succ SparcInsLdsb = SparcInsLdsh
succ SparcInsLdsh = SparcInsLdsw
succ SparcInsLdsw = SparcInsLdub
succ SparcInsLdub = SparcInsLduh
succ SparcInsLduh = SparcInsLdx
succ SparcInsLdx = SparcInsLzcnt
succ SparcInsLzcnt = SparcInsMembar
succ SparcInsMembar = SparcInsMovdtox
succ SparcInsMovdtox = SparcInsMov
succ SparcInsMov = SparcInsMovrgez
succ SparcInsMovrgez = SparcInsMovrgz
succ SparcInsMovrgz = SparcInsMovrlez
succ SparcInsMovrlez = SparcInsMovrlz
succ SparcInsMovrlz = SparcInsMovrnz
succ SparcInsMovrnz = SparcInsMovrz
succ SparcInsMovrz = SparcInsMovstosw
succ SparcInsMovstosw = SparcInsMovstouw
succ SparcInsMovstouw = SparcInsMulx
succ SparcInsMulx = SparcInsNop
succ SparcInsNop = SparcInsOrcc
succ SparcInsOrcc = SparcInsOrncc
succ SparcInsOrncc = SparcInsOrn
succ SparcInsOrn = SparcInsOr
succ SparcInsOr = SparcInsPdist
succ SparcInsPdist = SparcInsPdistn
succ SparcInsPdistn = SparcInsPopc
succ SparcInsPopc = SparcInsRd
succ SparcInsRd = SparcInsRestore
succ SparcInsRestore = SparcInsRett
succ SparcInsRett = SparcInsSave
succ SparcInsSave = SparcInsSdivcc
succ SparcInsSdivcc = SparcInsSdivx
succ SparcInsSdivx = SparcInsSdiv
succ SparcInsSdiv = SparcInsSethi
succ SparcInsSethi = SparcInsShutdown
succ SparcInsShutdown = SparcInsSiam
succ SparcInsSiam = SparcInsSllx
succ SparcInsSllx = SparcInsSll
succ SparcInsSll = SparcInsSmulcc
succ SparcInsSmulcc = SparcInsSmul
succ SparcInsSmul = SparcInsSrax
succ SparcInsSrax = SparcInsSra
succ SparcInsSra = SparcInsSrlx
succ SparcInsSrlx = SparcInsSrl
succ SparcInsSrl = SparcInsStbar
succ SparcInsStbar = SparcInsStb
succ SparcInsStb = SparcInsStd
succ SparcInsStd = SparcInsSt
succ SparcInsSt = SparcInsSth
succ SparcInsSth = SparcInsStq
succ SparcInsStq = SparcInsStx
succ SparcInsStx = SparcInsSubcc
succ SparcInsSubcc = SparcInsSubx
succ SparcInsSubx = SparcInsSubxcc
succ SparcInsSubxcc = SparcInsSub
succ SparcInsSub = SparcInsSwap
succ SparcInsSwap = SparcInsTaddcctv
succ SparcInsTaddcctv = SparcInsTaddcc
succ SparcInsTaddcc = SparcInsT
succ SparcInsT = SparcInsTsubcctv
succ SparcInsTsubcctv = SparcInsTsubcc
succ SparcInsTsubcc = SparcInsUdivcc
succ SparcInsUdivcc = SparcInsUdivx
succ SparcInsUdivx = SparcInsUdiv
succ SparcInsUdiv = SparcInsUmulcc
succ SparcInsUmulcc = SparcInsUmulxhi
succ SparcInsUmulxhi = SparcInsUmul
succ SparcInsUmul = SparcInsUnimp
succ SparcInsUnimp = SparcInsFcmped
succ SparcInsFcmped = SparcInsFcmpeq
succ SparcInsFcmpeq = SparcInsFcmpes
succ SparcInsFcmpes = SparcInsWr
succ SparcInsWr = SparcInsXmulx
succ SparcInsXmulx = SparcInsXmulxhi
succ SparcInsXmulxhi = SparcInsXnorcc
succ SparcInsXnorcc = SparcInsXnor
succ SparcInsXnor = SparcInsXorcc
succ SparcInsXorcc = SparcInsXor
succ SparcInsXor = SparcInsRet
succ SparcInsRet = SparcInsRetl
succ SparcInsRetl = SparcInsEnding
succ SparcInsEnding = error "SparcInsn.succ: SparcInsEnding has no successor"
pred SparcInsAddcc = SparcInsInvalid
pred SparcInsAddx = SparcInsAddcc
pred SparcInsAddxcc = SparcInsAddx
pred SparcInsAddxc = SparcInsAddxcc
pred SparcInsAddxccc = SparcInsAddxc
pred SparcInsAdd = SparcInsAddxccc
pred SparcInsAlignaddr = SparcInsAdd
pred SparcInsAlignaddrl = SparcInsAlignaddr
pred SparcInsAndcc = SparcInsAlignaddrl
pred SparcInsAndncc = SparcInsAndcc
pred SparcInsAndn = SparcInsAndncc
pred SparcInsAnd = SparcInsAndn
pred SparcInsArray16 = SparcInsAnd
pred SparcInsArray32 = SparcInsArray16
pred SparcInsArray8 = SparcInsArray32
pred SparcInsB = SparcInsArray8
pred SparcInsJmp = SparcInsB
pred SparcInsBmask = SparcInsJmp
pred SparcInsFb = SparcInsBmask
pred SparcInsBrgez = SparcInsFb
pred SparcInsBrgz = SparcInsBrgez
pred SparcInsBrlez = SparcInsBrgz
pred SparcInsBrlz = SparcInsBrlez
pred SparcInsBrnz = SparcInsBrlz
pred SparcInsBrz = SparcInsBrnz
pred SparcInsBshuffle = SparcInsBrz
pred SparcInsCall = SparcInsBshuffle
pred SparcInsCasx = SparcInsCall
pred SparcInsCas = SparcInsCasx
pred SparcInsCmask16 = SparcInsCas
pred SparcInsCmask32 = SparcInsCmask16
pred SparcInsCmask8 = SparcInsCmask32
pred SparcInsCmp = SparcInsCmask8
pred SparcInsEdge16 = SparcInsCmp
pred SparcInsEdge16l = SparcInsEdge16
pred SparcInsEdge16ln = SparcInsEdge16l
pred SparcInsEdge16n = SparcInsEdge16ln
pred SparcInsEdge32 = SparcInsEdge16n
pred SparcInsEdge32l = SparcInsEdge32
pred SparcInsEdge32ln = SparcInsEdge32l
pred SparcInsEdge32n = SparcInsEdge32ln
pred SparcInsEdge8 = SparcInsEdge32n
pred SparcInsEdge8l = SparcInsEdge8
pred SparcInsEdge8ln = SparcInsEdge8l
pred SparcInsEdge8n = SparcInsEdge8ln
pred SparcInsFabsd = SparcInsEdge8n
pred SparcInsFabsq = SparcInsFabsd
pred SparcInsFabss = SparcInsFabsq
pred SparcInsFaddd = SparcInsFabss
pred SparcInsFaddq = SparcInsFaddd
pred SparcInsFadds = SparcInsFaddq
pred SparcInsFaligndata = SparcInsFadds
pred SparcInsFand = SparcInsFaligndata
pred SparcInsFandnot1 = SparcInsFand
pred SparcInsFandnot1s = SparcInsFandnot1
pred SparcInsFandnot2 = SparcInsFandnot1s
pred SparcInsFandnot2s = SparcInsFandnot2
pred SparcInsFands = SparcInsFandnot2s
pred SparcInsFchksm16 = SparcInsFands
pred SparcInsFcmpd = SparcInsFchksm16
pred SparcInsFcmpeq16 = SparcInsFcmpd
pred SparcInsFcmpeq32 = SparcInsFcmpeq16
pred SparcInsFcmpgt16 = SparcInsFcmpeq32
pred SparcInsFcmpgt32 = SparcInsFcmpgt16
pred SparcInsFcmple16 = SparcInsFcmpgt32
pred SparcInsFcmple32 = SparcInsFcmple16
pred SparcInsFcmpne16 = SparcInsFcmple32
pred SparcInsFcmpne32 = SparcInsFcmpne16
pred SparcInsFcmpq = SparcInsFcmpne32
pred SparcInsFcmps = SparcInsFcmpq
pred SparcInsFdivd = SparcInsFcmps
pred SparcInsFdivq = SparcInsFdivd
pred SparcInsFdivs = SparcInsFdivq
pred SparcInsFdmulq = SparcInsFdivs
pred SparcInsFdtoi = SparcInsFdmulq
pred SparcInsFdtoq = SparcInsFdtoi
pred SparcInsFdtos = SparcInsFdtoq
pred SparcInsFdtox = SparcInsFdtos
pred SparcInsFexpand = SparcInsFdtox
pred SparcInsFhaddd = SparcInsFexpand
pred SparcInsFhadds = SparcInsFhaddd
pred SparcInsFhsubd = SparcInsFhadds
pred SparcInsFhsubs = SparcInsFhsubd
pred SparcInsFitod = SparcInsFhsubs
pred SparcInsFitoq = SparcInsFitod
pred SparcInsFitos = SparcInsFitoq
pred SparcInsFlcmpd = SparcInsFitos
pred SparcInsFlcmps = SparcInsFlcmpd
pred SparcInsFlushw = SparcInsFlcmps
pred SparcInsFmean16 = SparcInsFlushw
pred SparcInsFmovd = SparcInsFmean16
pred SparcInsFmovq = SparcInsFmovd
pred SparcInsFmovrdgez = SparcInsFmovq
pred SparcInsFmovrqgez = SparcInsFmovrdgez
pred SparcInsFmovrsgez = SparcInsFmovrqgez
pred SparcInsFmovrdgz = SparcInsFmovrsgez
pred SparcInsFmovrqgz = SparcInsFmovrdgz
pred SparcInsFmovrsgz = SparcInsFmovrqgz
pred SparcInsFmovrdlez = SparcInsFmovrsgz
pred SparcInsFmovrqlez = SparcInsFmovrdlez
pred SparcInsFmovrslez = SparcInsFmovrqlez
pred SparcInsFmovrdlz = SparcInsFmovrslez
pred SparcInsFmovrqlz = SparcInsFmovrdlz
pred SparcInsFmovrslz = SparcInsFmovrqlz
pred SparcInsFmovrdnz = SparcInsFmovrslz
pred SparcInsFmovrqnz = SparcInsFmovrdnz
pred SparcInsFmovrsnz = SparcInsFmovrqnz
pred SparcInsFmovrdz = SparcInsFmovrsnz
pred SparcInsFmovrqz = SparcInsFmovrdz
pred SparcInsFmovrsz = SparcInsFmovrqz
pred SparcInsFmovs = SparcInsFmovrsz
pred SparcInsFmul8sux16 = SparcInsFmovs
pred SparcInsFmul8ulx16 = SparcInsFmul8sux16
pred SparcInsFmul8x16 = SparcInsFmul8ulx16
pred SparcInsFmul8x16al = SparcInsFmul8x16
pred SparcInsFmul8x16au = SparcInsFmul8x16al
pred SparcInsFmuld = SparcInsFmul8x16au
pred SparcInsFmuld8sux16 = SparcInsFmuld
pred SparcInsFmuld8ulx16 = SparcInsFmuld8sux16
pred SparcInsFmulq = SparcInsFmuld8ulx16
pred SparcInsFmuls = SparcInsFmulq
pred SparcInsFnaddd = SparcInsFmuls
pred SparcInsFnadds = SparcInsFnaddd
pred SparcInsFnand = SparcInsFnadds
pred SparcInsFnands = SparcInsFnand
pred SparcInsFnegd = SparcInsFnands
pred SparcInsFnegq = SparcInsFnegd
pred SparcInsFnegs = SparcInsFnegq
pred SparcInsFnhaddd = SparcInsFnegs
pred SparcInsFnhadds = SparcInsFnhaddd
pred SparcInsFnor = SparcInsFnhadds
pred SparcInsFnors = SparcInsFnor
pred SparcInsFnot1 = SparcInsFnors
pred SparcInsFnot1s = SparcInsFnot1
pred SparcInsFnot2 = SparcInsFnot1s
pred SparcInsFnot2s = SparcInsFnot2
pred SparcInsFone = SparcInsFnot2s
pred SparcInsFones = SparcInsFone
pred SparcInsFor = SparcInsFones
pred SparcInsFornot1 = SparcInsFor
pred SparcInsFornot1s = SparcInsFornot1
pred SparcInsFornot2 = SparcInsFornot1s
pred SparcInsFornot2s = SparcInsFornot2
pred SparcInsFors = SparcInsFornot2s
pred SparcInsFpack16 = SparcInsFors
pred SparcInsFpack32 = SparcInsFpack16
pred SparcInsFpackfix = SparcInsFpack32
pred SparcInsFpadd16 = SparcInsFpackfix
pred SparcInsFpadd16s = SparcInsFpadd16
pred SparcInsFpadd32 = SparcInsFpadd16s
pred SparcInsFpadd32s = SparcInsFpadd32
pred SparcInsFpadd64 = SparcInsFpadd32s
pred SparcInsFpmerge = SparcInsFpadd64
pred SparcInsFpsub16 = SparcInsFpmerge
pred SparcInsFpsub16s = SparcInsFpsub16
pred SparcInsFpsub32 = SparcInsFpsub16s
pred SparcInsFpsub32s = SparcInsFpsub32
pred SparcInsFqtod = SparcInsFpsub32s
pred SparcInsFqtoi = SparcInsFqtod
pred SparcInsFqtos = SparcInsFqtoi
pred SparcInsFqtox = SparcInsFqtos
pred SparcInsFslas16 = SparcInsFqtox
pred SparcInsFslas32 = SparcInsFslas16
pred SparcInsFsll16 = SparcInsFslas32
pred SparcInsFsll32 = SparcInsFsll16
pred SparcInsFsmuld = SparcInsFsll32
pred SparcInsFsqrtd = SparcInsFsmuld
pred SparcInsFsqrtq = SparcInsFsqrtd
pred SparcInsFsqrts = SparcInsFsqrtq
pred SparcInsFsra16 = SparcInsFsqrts
pred SparcInsFsra32 = SparcInsFsra16
pred SparcInsFsrc1 = SparcInsFsra32
pred SparcInsFsrc1s = SparcInsFsrc1
pred SparcInsFsrc2 = SparcInsFsrc1s
pred SparcInsFsrc2s = SparcInsFsrc2
pred SparcInsFsrl16 = SparcInsFsrc2s
pred SparcInsFsrl32 = SparcInsFsrl16
pred SparcInsFstod = SparcInsFsrl32
pred SparcInsFstoi = SparcInsFstod
pred SparcInsFstoq = SparcInsFstoi
pred SparcInsFstox = SparcInsFstoq
pred SparcInsFsubd = SparcInsFstox
pred SparcInsFsubq = SparcInsFsubd
pred SparcInsFsubs = SparcInsFsubq
pred SparcInsFxnor = SparcInsFsubs
pred SparcInsFxnors = SparcInsFxnor
pred SparcInsFxor = SparcInsFxnors
pred SparcInsFxors = SparcInsFxor
pred SparcInsFxtod = SparcInsFxors
pred SparcInsFxtoq = SparcInsFxtod
pred SparcInsFxtos = SparcInsFxtoq
pred SparcInsFzero = SparcInsFxtos
pred SparcInsFzeros = SparcInsFzero
pred SparcInsJmpl = SparcInsFzeros
pred SparcInsLdd = SparcInsJmpl
pred SparcInsLd = SparcInsLdd
pred SparcInsLdq = SparcInsLd
pred SparcInsLdsb = SparcInsLdq
pred SparcInsLdsh = SparcInsLdsb
pred SparcInsLdsw = SparcInsLdsh
pred SparcInsLdub = SparcInsLdsw
pred SparcInsLduh = SparcInsLdub
pred SparcInsLdx = SparcInsLduh
pred SparcInsLzcnt = SparcInsLdx
pred SparcInsMembar = SparcInsLzcnt
pred SparcInsMovdtox = SparcInsMembar
pred SparcInsMov = SparcInsMovdtox
pred SparcInsMovrgez = SparcInsMov
pred SparcInsMovrgz = SparcInsMovrgez
pred SparcInsMovrlez = SparcInsMovrgz
pred SparcInsMovrlz = SparcInsMovrlez
pred SparcInsMovrnz = SparcInsMovrlz
pred SparcInsMovrz = SparcInsMovrnz
pred SparcInsMovstosw = SparcInsMovrz
pred SparcInsMovstouw = SparcInsMovstosw
pred SparcInsMulx = SparcInsMovstouw
pred SparcInsNop = SparcInsMulx
pred SparcInsOrcc = SparcInsNop
pred SparcInsOrncc = SparcInsOrcc
pred SparcInsOrn = SparcInsOrncc
pred SparcInsOr = SparcInsOrn
pred SparcInsPdist = SparcInsOr
pred SparcInsPdistn = SparcInsPdist
pred SparcInsPopc = SparcInsPdistn
pred SparcInsRd = SparcInsPopc
pred SparcInsRestore = SparcInsRd
pred SparcInsRett = SparcInsRestore
pred SparcInsSave = SparcInsRett
pred SparcInsSdivcc = SparcInsSave
pred SparcInsSdivx = SparcInsSdivcc
pred SparcInsSdiv = SparcInsSdivx
pred SparcInsSethi = SparcInsSdiv
pred SparcInsShutdown = SparcInsSethi
pred SparcInsSiam = SparcInsShutdown
pred SparcInsSllx = SparcInsSiam
pred SparcInsSll = SparcInsSllx
pred SparcInsSmulcc = SparcInsSll
pred SparcInsSmul = SparcInsSmulcc
pred SparcInsSrax = SparcInsSmul
pred SparcInsSra = SparcInsSrax
pred SparcInsSrlx = SparcInsSra
pred SparcInsSrl = SparcInsSrlx
pred SparcInsStbar = SparcInsSrl
pred SparcInsStb = SparcInsStbar
pred SparcInsStd = SparcInsStb
pred SparcInsSt = SparcInsStd
pred SparcInsSth = SparcInsSt
pred SparcInsStq = SparcInsSth
pred SparcInsStx = SparcInsStq
pred SparcInsSubcc = SparcInsStx
pred SparcInsSubx = SparcInsSubcc
pred SparcInsSubxcc = SparcInsSubx
pred SparcInsSub = SparcInsSubxcc
pred SparcInsSwap = SparcInsSub
pred SparcInsTaddcctv = SparcInsSwap
pred SparcInsTaddcc = SparcInsTaddcctv
pred SparcInsT = SparcInsTaddcc
pred SparcInsTsubcctv = SparcInsT
pred SparcInsTsubcc = SparcInsTsubcctv
pred SparcInsUdivcc = SparcInsTsubcc
pred SparcInsUdivx = SparcInsUdivcc
pred SparcInsUdiv = SparcInsUdivx
pred SparcInsUmulcc = SparcInsUdiv
pred SparcInsUmulxhi = SparcInsUmulcc
pred SparcInsUmul = SparcInsUmulxhi
pred SparcInsUnimp = SparcInsUmul
pred SparcInsFcmped = SparcInsUnimp
pred SparcInsFcmpeq = SparcInsFcmped
pred SparcInsFcmpes = SparcInsFcmpeq
pred SparcInsWr = SparcInsFcmpes
pred SparcInsXmulx = SparcInsWr
pred SparcInsXmulxhi = SparcInsXmulx
pred SparcInsXnorcc = SparcInsXmulxhi
pred SparcInsXnor = SparcInsXnorcc
pred SparcInsXorcc = SparcInsXnor
pred SparcInsXor = SparcInsXorcc
pred SparcInsRet = SparcInsXor
pred SparcInsRetl = SparcInsRet
pred SparcInsEnding = SparcInsRetl
pred SparcInsInvalid = error "SparcInsn.pred: SparcInsInvalid 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 SparcInsEnding
fromEnum SparcInsInvalid = 0
fromEnum SparcInsAddcc = 1
fromEnum SparcInsAddx = 2
fromEnum SparcInsAddxcc = 3
fromEnum SparcInsAddxc = 4
fromEnum SparcInsAddxccc = 5
fromEnum SparcInsAdd = 6
fromEnum SparcInsAlignaddr = 7
fromEnum SparcInsAlignaddrl = 8
fromEnum SparcInsAndcc = 9
fromEnum SparcInsAndncc = 10
fromEnum SparcInsAndn = 11
fromEnum SparcInsAnd = 12
fromEnum SparcInsArray16 = 13
fromEnum SparcInsArray32 = 14
fromEnum SparcInsArray8 = 15
fromEnum SparcInsB = 16
fromEnum SparcInsJmp = 17
fromEnum SparcInsBmask = 18
fromEnum SparcInsFb = 19
fromEnum SparcInsBrgez = 20
fromEnum SparcInsBrgz = 21
fromEnum SparcInsBrlez = 22
fromEnum SparcInsBrlz = 23
fromEnum SparcInsBrnz = 24
fromEnum SparcInsBrz = 25
fromEnum SparcInsBshuffle = 26
fromEnum SparcInsCall = 27
fromEnum SparcInsCasx = 28
fromEnum SparcInsCas = 29
fromEnum SparcInsCmask16 = 30
fromEnum SparcInsCmask32 = 31
fromEnum SparcInsCmask8 = 32
fromEnum SparcInsCmp = 33
fromEnum SparcInsEdge16 = 34
fromEnum SparcInsEdge16l = 35
fromEnum SparcInsEdge16ln = 36
fromEnum SparcInsEdge16n = 37
fromEnum SparcInsEdge32 = 38
fromEnum SparcInsEdge32l = 39
fromEnum SparcInsEdge32ln = 40
fromEnum SparcInsEdge32n = 41
fromEnum SparcInsEdge8 = 42
fromEnum SparcInsEdge8l = 43
fromEnum SparcInsEdge8ln = 44
fromEnum SparcInsEdge8n = 45
fromEnum SparcInsFabsd = 46
fromEnum SparcInsFabsq = 47
fromEnum SparcInsFabss = 48
fromEnum SparcInsFaddd = 49
fromEnum SparcInsFaddq = 50
fromEnum SparcInsFadds = 51
fromEnum SparcInsFaligndata = 52
fromEnum SparcInsFand = 53
fromEnum SparcInsFandnot1 = 54
fromEnum SparcInsFandnot1s = 55
fromEnum SparcInsFandnot2 = 56
fromEnum SparcInsFandnot2s = 57
fromEnum SparcInsFands = 58
fromEnum SparcInsFchksm16 = 59
fromEnum SparcInsFcmpd = 60
fromEnum SparcInsFcmpeq16 = 61
fromEnum SparcInsFcmpeq32 = 62
fromEnum SparcInsFcmpgt16 = 63
fromEnum SparcInsFcmpgt32 = 64
fromEnum SparcInsFcmple16 = 65
fromEnum SparcInsFcmple32 = 66
fromEnum SparcInsFcmpne16 = 67
fromEnum SparcInsFcmpne32 = 68
fromEnum SparcInsFcmpq = 69
fromEnum SparcInsFcmps = 70
fromEnum SparcInsFdivd = 71
fromEnum SparcInsFdivq = 72
fromEnum SparcInsFdivs = 73
fromEnum SparcInsFdmulq = 74
fromEnum SparcInsFdtoi = 75
fromEnum SparcInsFdtoq = 76
fromEnum SparcInsFdtos = 77
fromEnum SparcInsFdtox = 78
fromEnum SparcInsFexpand = 79
fromEnum SparcInsFhaddd = 80
fromEnum SparcInsFhadds = 81
fromEnum SparcInsFhsubd = 82
fromEnum SparcInsFhsubs = 83
fromEnum SparcInsFitod = 84
fromEnum SparcInsFitoq = 85
fromEnum SparcInsFitos = 86
fromEnum SparcInsFlcmpd = 87
fromEnum SparcInsFlcmps = 88
fromEnum SparcInsFlushw = 89
fromEnum SparcInsFmean16 = 90
fromEnum SparcInsFmovd = 91
fromEnum SparcInsFmovq = 92
fromEnum SparcInsFmovrdgez = 93
fromEnum SparcInsFmovrqgez = 94
fromEnum SparcInsFmovrsgez = 95
fromEnum SparcInsFmovrdgz = 96
fromEnum SparcInsFmovrqgz = 97
fromEnum SparcInsFmovrsgz = 98
fromEnum SparcInsFmovrdlez = 99
fromEnum SparcInsFmovrqlez = 100
fromEnum SparcInsFmovrslez = 101
fromEnum SparcInsFmovrdlz = 102
fromEnum SparcInsFmovrqlz = 103
fromEnum SparcInsFmovrslz = 104
fromEnum SparcInsFmovrdnz = 105
fromEnum SparcInsFmovrqnz = 106
fromEnum SparcInsFmovrsnz = 107
fromEnum SparcInsFmovrdz = 108
fromEnum SparcInsFmovrqz = 109
fromEnum SparcInsFmovrsz = 110
fromEnum SparcInsFmovs = 111
fromEnum SparcInsFmul8sux16 = 112
fromEnum SparcInsFmul8ulx16 = 113
fromEnum SparcInsFmul8x16 = 114
fromEnum SparcInsFmul8x16al = 115
fromEnum SparcInsFmul8x16au = 116
fromEnum SparcInsFmuld = 117
fromEnum SparcInsFmuld8sux16 = 118
fromEnum SparcInsFmuld8ulx16 = 119
fromEnum SparcInsFmulq = 120
fromEnum SparcInsFmuls = 121
fromEnum SparcInsFnaddd = 122
fromEnum SparcInsFnadds = 123
fromEnum SparcInsFnand = 124
fromEnum SparcInsFnands = 125
fromEnum SparcInsFnegd = 126
fromEnum SparcInsFnegq = 127
fromEnum SparcInsFnegs = 128
fromEnum SparcInsFnhaddd = 129
fromEnum SparcInsFnhadds = 130
fromEnum SparcInsFnor = 131
fromEnum SparcInsFnors = 132
fromEnum SparcInsFnot1 = 133
fromEnum SparcInsFnot1s = 134
fromEnum SparcInsFnot2 = 135
fromEnum SparcInsFnot2s = 136
fromEnum SparcInsFone = 137
fromEnum SparcInsFones = 138
fromEnum SparcInsFor = 139
fromEnum SparcInsFornot1 = 140
fromEnum SparcInsFornot1s = 141
fromEnum SparcInsFornot2 = 142
fromEnum SparcInsFornot2s = 143
fromEnum SparcInsFors = 144
fromEnum SparcInsFpack16 = 145
fromEnum SparcInsFpack32 = 146
fromEnum SparcInsFpackfix = 147
fromEnum SparcInsFpadd16 = 148
fromEnum SparcInsFpadd16s = 149
fromEnum SparcInsFpadd32 = 150
fromEnum SparcInsFpadd32s = 151
fromEnum SparcInsFpadd64 = 152
fromEnum SparcInsFpmerge = 153
fromEnum SparcInsFpsub16 = 154
fromEnum SparcInsFpsub16s = 155
fromEnum SparcInsFpsub32 = 156
fromEnum SparcInsFpsub32s = 157
fromEnum SparcInsFqtod = 158
fromEnum SparcInsFqtoi = 159
fromEnum SparcInsFqtos = 160
fromEnum SparcInsFqtox = 161
fromEnum SparcInsFslas16 = 162
fromEnum SparcInsFslas32 = 163
fromEnum SparcInsFsll16 = 164
fromEnum SparcInsFsll32 = 165
fromEnum SparcInsFsmuld = 166
fromEnum SparcInsFsqrtd = 167
fromEnum SparcInsFsqrtq = 168
fromEnum SparcInsFsqrts = 169
fromEnum SparcInsFsra16 = 170
fromEnum SparcInsFsra32 = 171
fromEnum SparcInsFsrc1 = 172
fromEnum SparcInsFsrc1s = 173
fromEnum SparcInsFsrc2 = 174
fromEnum SparcInsFsrc2s = 175
fromEnum SparcInsFsrl16 = 176
fromEnum SparcInsFsrl32 = 177
fromEnum SparcInsFstod = 178
fromEnum SparcInsFstoi = 179
fromEnum SparcInsFstoq = 180
fromEnum SparcInsFstox = 181
fromEnum SparcInsFsubd = 182
fromEnum SparcInsFsubq = 183
fromEnum SparcInsFsubs = 184
fromEnum SparcInsFxnor = 185
fromEnum SparcInsFxnors = 186
fromEnum SparcInsFxor = 187
fromEnum SparcInsFxors = 188
fromEnum SparcInsFxtod = 189
fromEnum SparcInsFxtoq = 190
fromEnum SparcInsFxtos = 191
fromEnum SparcInsFzero = 192
fromEnum SparcInsFzeros = 193
fromEnum SparcInsJmpl = 194
fromEnum SparcInsLdd = 195
fromEnum SparcInsLd = 196
fromEnum SparcInsLdq = 197
fromEnum SparcInsLdsb = 198
fromEnum SparcInsLdsh = 199
fromEnum SparcInsLdsw = 200
fromEnum SparcInsLdub = 201
fromEnum SparcInsLduh = 202
fromEnum SparcInsLdx = 203
fromEnum SparcInsLzcnt = 204
fromEnum SparcInsMembar = 205
fromEnum SparcInsMovdtox = 206
fromEnum SparcInsMov = 207
fromEnum SparcInsMovrgez = 208
fromEnum SparcInsMovrgz = 209
fromEnum SparcInsMovrlez = 210
fromEnum SparcInsMovrlz = 211
fromEnum SparcInsMovrnz = 212
fromEnum SparcInsMovrz = 213
fromEnum SparcInsMovstosw = 214
fromEnum SparcInsMovstouw = 215
fromEnum SparcInsMulx = 216
fromEnum SparcInsNop = 217
fromEnum SparcInsOrcc = 218
fromEnum SparcInsOrncc = 219
fromEnum SparcInsOrn = 220
fromEnum SparcInsOr = 221
fromEnum SparcInsPdist = 222
fromEnum SparcInsPdistn = 223
fromEnum SparcInsPopc = 224
fromEnum SparcInsRd = 225
fromEnum SparcInsRestore = 226
fromEnum SparcInsRett = 227
fromEnum SparcInsSave = 228
fromEnum SparcInsSdivcc = 229
fromEnum SparcInsSdivx = 230
fromEnum SparcInsSdiv = 231
fromEnum SparcInsSethi = 232
fromEnum SparcInsShutdown = 233
fromEnum SparcInsSiam = 234
fromEnum SparcInsSllx = 235
fromEnum SparcInsSll = 236
fromEnum SparcInsSmulcc = 237
fromEnum SparcInsSmul = 238
fromEnum SparcInsSrax = 239
fromEnum SparcInsSra = 240
fromEnum SparcInsSrlx = 241
fromEnum SparcInsSrl = 242
fromEnum SparcInsStbar = 243
fromEnum SparcInsStb = 244
fromEnum SparcInsStd = 245
fromEnum SparcInsSt = 246
fromEnum SparcInsSth = 247
fromEnum SparcInsStq = 248
fromEnum SparcInsStx = 249
fromEnum SparcInsSubcc = 250
fromEnum SparcInsSubx = 251
fromEnum SparcInsSubxcc = 252
fromEnum SparcInsSub = 253
fromEnum SparcInsSwap = 254
fromEnum SparcInsTaddcctv = 255
fromEnum SparcInsTaddcc = 256
fromEnum SparcInsT = 257
fromEnum SparcInsTsubcctv = 258
fromEnum SparcInsTsubcc = 259
fromEnum SparcInsUdivcc = 260
fromEnum SparcInsUdivx = 261
fromEnum SparcInsUdiv = 262
fromEnum SparcInsUmulcc = 263
fromEnum SparcInsUmulxhi = 264
fromEnum SparcInsUmul = 265
fromEnum SparcInsUnimp = 266
fromEnum SparcInsFcmped = 267
fromEnum SparcInsFcmpeq = 268
fromEnum SparcInsFcmpes = 269
fromEnum SparcInsWr = 270
fromEnum SparcInsXmulx = 271
fromEnum SparcInsXmulxhi = 272
fromEnum SparcInsXnorcc = 273
fromEnum SparcInsXnor = 274
fromEnum SparcInsXorcc = 275
fromEnum SparcInsXor = 276
fromEnum SparcInsRet = 277
fromEnum SparcInsRetl = 278
fromEnum SparcInsEnding = 279
toEnum 0 = SparcInsInvalid
toEnum 1 = SparcInsAddcc
toEnum 2 = SparcInsAddx
toEnum 3 = SparcInsAddxcc
toEnum 4 = SparcInsAddxc
toEnum 5 = SparcInsAddxccc
toEnum 6 = SparcInsAdd
toEnum 7 = SparcInsAlignaddr
toEnum 8 = SparcInsAlignaddrl
toEnum 9 = SparcInsAndcc
toEnum 10 = SparcInsAndncc
toEnum 11 = SparcInsAndn
toEnum 12 = SparcInsAnd
toEnum 13 = SparcInsArray16
toEnum 14 = SparcInsArray32
toEnum 15 = SparcInsArray8
toEnum 16 = SparcInsB
toEnum 17 = SparcInsJmp
toEnum 18 = SparcInsBmask
toEnum 19 = SparcInsFb
toEnum 20 = SparcInsBrgez
toEnum 21 = SparcInsBrgz
toEnum 22 = SparcInsBrlez
toEnum 23 = SparcInsBrlz
toEnum 24 = SparcInsBrnz
toEnum 25 = SparcInsBrz
toEnum 26 = SparcInsBshuffle
toEnum 27 = SparcInsCall
toEnum 28 = SparcInsCasx
toEnum 29 = SparcInsCas
toEnum 30 = SparcInsCmask16
toEnum 31 = SparcInsCmask32
toEnum 32 = SparcInsCmask8
toEnum 33 = SparcInsCmp
toEnum 34 = SparcInsEdge16
toEnum 35 = SparcInsEdge16l
toEnum 36 = SparcInsEdge16ln
toEnum 37 = SparcInsEdge16n
toEnum 38 = SparcInsEdge32
toEnum 39 = SparcInsEdge32l
toEnum 40 = SparcInsEdge32ln
toEnum 41 = SparcInsEdge32n
toEnum 42 = SparcInsEdge8
toEnum 43 = SparcInsEdge8l
toEnum 44 = SparcInsEdge8ln
toEnum 45 = SparcInsEdge8n
toEnum 46 = SparcInsFabsd
toEnum 47 = SparcInsFabsq
toEnum 48 = SparcInsFabss
toEnum 49 = SparcInsFaddd
toEnum 50 = SparcInsFaddq
toEnum 51 = SparcInsFadds
toEnum 52 = SparcInsFaligndata
toEnum 53 = SparcInsFand
toEnum 54 = SparcInsFandnot1
toEnum 55 = SparcInsFandnot1s
toEnum 56 = SparcInsFandnot2
toEnum 57 = SparcInsFandnot2s
toEnum 58 = SparcInsFands
toEnum 59 = SparcInsFchksm16
toEnum 60 = SparcInsFcmpd
toEnum 61 = SparcInsFcmpeq16
toEnum 62 = SparcInsFcmpeq32
toEnum 63 = SparcInsFcmpgt16
toEnum 64 = SparcInsFcmpgt32
toEnum 65 = SparcInsFcmple16
toEnum 66 = SparcInsFcmple32
toEnum 67 = SparcInsFcmpne16
toEnum 68 = SparcInsFcmpne32
toEnum 69 = SparcInsFcmpq
toEnum 70 = SparcInsFcmps
toEnum 71 = SparcInsFdivd
toEnum 72 = SparcInsFdivq
toEnum 73 = SparcInsFdivs
toEnum 74 = SparcInsFdmulq
toEnum 75 = SparcInsFdtoi
toEnum 76 = SparcInsFdtoq
toEnum 77 = SparcInsFdtos
toEnum 78 = SparcInsFdtox
toEnum 79 = SparcInsFexpand
toEnum 80 = SparcInsFhaddd
toEnum 81 = SparcInsFhadds
toEnum 82 = SparcInsFhsubd
toEnum 83 = SparcInsFhsubs
toEnum 84 = SparcInsFitod
toEnum 85 = SparcInsFitoq
toEnum 86 = SparcInsFitos
toEnum 87 = SparcInsFlcmpd
toEnum 88 = SparcInsFlcmps
toEnum 89 = SparcInsFlushw
toEnum 90 = SparcInsFmean16
toEnum 91 = SparcInsFmovd
toEnum 92 = SparcInsFmovq
toEnum 93 = SparcInsFmovrdgez
toEnum 94 = SparcInsFmovrqgez
toEnum 95 = SparcInsFmovrsgez
toEnum 96 = SparcInsFmovrdgz
toEnum 97 = SparcInsFmovrqgz
toEnum 98 = SparcInsFmovrsgz
toEnum 99 = SparcInsFmovrdlez
toEnum 100 = SparcInsFmovrqlez
toEnum 101 = SparcInsFmovrslez
toEnum 102 = SparcInsFmovrdlz
toEnum 103 = SparcInsFmovrqlz
toEnum 104 = SparcInsFmovrslz
toEnum 105 = SparcInsFmovrdnz
toEnum 106 = SparcInsFmovrqnz
toEnum 107 = SparcInsFmovrsnz
toEnum 108 = SparcInsFmovrdz
toEnum 109 = SparcInsFmovrqz
toEnum 110 = SparcInsFmovrsz
toEnum 111 = SparcInsFmovs
toEnum 112 = SparcInsFmul8sux16
toEnum 113 = SparcInsFmul8ulx16
toEnum 114 = SparcInsFmul8x16
toEnum 115 = SparcInsFmul8x16al
toEnum 116 = SparcInsFmul8x16au
toEnum 117 = SparcInsFmuld
toEnum 118 = SparcInsFmuld8sux16
toEnum 119 = SparcInsFmuld8ulx16
toEnum 120 = SparcInsFmulq
toEnum 121 = SparcInsFmuls
toEnum 122 = SparcInsFnaddd
toEnum 123 = SparcInsFnadds
toEnum 124 = SparcInsFnand
toEnum 125 = SparcInsFnands
toEnum 126 = SparcInsFnegd
toEnum 127 = SparcInsFnegq
toEnum 128 = SparcInsFnegs
toEnum 129 = SparcInsFnhaddd
toEnum 130 = SparcInsFnhadds
toEnum 131 = SparcInsFnor
toEnum 132 = SparcInsFnors
toEnum 133 = SparcInsFnot1
toEnum 134 = SparcInsFnot1s
toEnum 135 = SparcInsFnot2
toEnum 136 = SparcInsFnot2s
toEnum 137 = SparcInsFone
toEnum 138 = SparcInsFones
toEnum 139 = SparcInsFor
toEnum 140 = SparcInsFornot1
toEnum 141 = SparcInsFornot1s
toEnum 142 = SparcInsFornot2
toEnum 143 = SparcInsFornot2s
toEnum 144 = SparcInsFors
toEnum 145 = SparcInsFpack16
toEnum 146 = SparcInsFpack32
toEnum 147 = SparcInsFpackfix
toEnum 148 = SparcInsFpadd16
toEnum 149 = SparcInsFpadd16s
toEnum 150 = SparcInsFpadd32
toEnum 151 = SparcInsFpadd32s
toEnum 152 = SparcInsFpadd64
toEnum 153 = SparcInsFpmerge
toEnum 154 = SparcInsFpsub16
toEnum 155 = SparcInsFpsub16s
toEnum 156 = SparcInsFpsub32
toEnum 157 = SparcInsFpsub32s
toEnum 158 = SparcInsFqtod
toEnum 159 = SparcInsFqtoi
toEnum 160 = SparcInsFqtos
toEnum 161 = SparcInsFqtox
toEnum 162 = SparcInsFslas16
toEnum 163 = SparcInsFslas32
toEnum 164 = SparcInsFsll16
toEnum 165 = SparcInsFsll32
toEnum 166 = SparcInsFsmuld
toEnum 167 = SparcInsFsqrtd
toEnum 168 = SparcInsFsqrtq
toEnum 169 = SparcInsFsqrts
toEnum 170 = SparcInsFsra16
toEnum 171 = SparcInsFsra32
toEnum 172 = SparcInsFsrc1
toEnum 173 = SparcInsFsrc1s
toEnum 174 = SparcInsFsrc2
toEnum 175 = SparcInsFsrc2s
toEnum 176 = SparcInsFsrl16
toEnum 177 = SparcInsFsrl32
toEnum 178 = SparcInsFstod
toEnum 179 = SparcInsFstoi
toEnum 180 = SparcInsFstoq
toEnum 181 = SparcInsFstox
toEnum 182 = SparcInsFsubd
toEnum 183 = SparcInsFsubq
toEnum 184 = SparcInsFsubs
toEnum 185 = SparcInsFxnor
toEnum 186 = SparcInsFxnors
toEnum 187 = SparcInsFxor
toEnum 188 = SparcInsFxors
toEnum 189 = SparcInsFxtod
toEnum 190 = SparcInsFxtoq
toEnum 191 = SparcInsFxtos
toEnum 192 = SparcInsFzero
toEnum 193 = SparcInsFzeros
toEnum 194 = SparcInsJmpl
toEnum 195 = SparcInsLdd
toEnum 196 = SparcInsLd
toEnum 197 = SparcInsLdq
toEnum 198 = SparcInsLdsb
toEnum 199 = SparcInsLdsh
toEnum 200 = SparcInsLdsw
toEnum 201 = SparcInsLdub
toEnum 202 = SparcInsLduh
toEnum 203 = SparcInsLdx
toEnum 204 = SparcInsLzcnt
toEnum 205 = SparcInsMembar
toEnum 206 = SparcInsMovdtox
toEnum 207 = SparcInsMov
toEnum 208 = SparcInsMovrgez
toEnum 209 = SparcInsMovrgz
toEnum 210 = SparcInsMovrlez
toEnum 211 = SparcInsMovrlz
toEnum 212 = SparcInsMovrnz
toEnum 213 = SparcInsMovrz
toEnum 214 = SparcInsMovstosw
toEnum 215 = SparcInsMovstouw
toEnum 216 = SparcInsMulx
toEnum 217 = SparcInsNop
toEnum 218 = SparcInsOrcc
toEnum 219 = SparcInsOrncc
toEnum 220 = SparcInsOrn
toEnum 221 = SparcInsOr
toEnum 222 = SparcInsPdist
toEnum 223 = SparcInsPdistn
toEnum 224 = SparcInsPopc
toEnum 225 = SparcInsRd
toEnum 226 = SparcInsRestore
toEnum 227 = SparcInsRett
toEnum 228 = SparcInsSave
toEnum 229 = SparcInsSdivcc
toEnum 230 = SparcInsSdivx
toEnum 231 = SparcInsSdiv
toEnum 232 = SparcInsSethi
toEnum 233 = SparcInsShutdown
toEnum 234 = SparcInsSiam
toEnum 235 = SparcInsSllx
toEnum 236 = SparcInsSll
toEnum 237 = SparcInsSmulcc
toEnum 238 = SparcInsSmul
toEnum 239 = SparcInsSrax
toEnum 240 = SparcInsSra
toEnum 241 = SparcInsSrlx
toEnum 242 = SparcInsSrl
toEnum 243 = SparcInsStbar
toEnum 244 = SparcInsStb
toEnum 245 = SparcInsStd
toEnum 246 = SparcInsSt
toEnum 247 = SparcInsSth
toEnum 248 = SparcInsStq
toEnum 249 = SparcInsStx
toEnum 250 = SparcInsSubcc
toEnum 251 = SparcInsSubx
toEnum 252 = SparcInsSubxcc
toEnum 253 = SparcInsSub
toEnum 254 = SparcInsSwap
toEnum 255 = SparcInsTaddcctv
toEnum 256 = SparcInsTaddcc
toEnum 257 = SparcInsT
toEnum 258 = SparcInsTsubcctv
toEnum 259 = SparcInsTsubcc
toEnum 260 = SparcInsUdivcc
toEnum 261 = SparcInsUdivx
toEnum 262 = SparcInsUdiv
toEnum 263 = SparcInsUmulcc
toEnum 264 = SparcInsUmulxhi
toEnum 265 = SparcInsUmul
toEnum 266 = SparcInsUnimp
toEnum 267 = SparcInsFcmped
toEnum 268 = SparcInsFcmpeq
toEnum 269 = SparcInsFcmpes
toEnum 270 = SparcInsWr
toEnum 271 = SparcInsXmulx
toEnum 272 = SparcInsXmulxhi
toEnum 273 = SparcInsXnorcc
toEnum 274 = SparcInsXnor
toEnum 275 = SparcInsXorcc
toEnum 276 = SparcInsXor
toEnum 277 = SparcInsRet
toEnum 278 = SparcInsRetl
toEnum 279 = SparcInsEnding
toEnum unmatched = error ("SparcInsn.toEnum: Cannot match " ++ show unmatched)
data SparcInsnGroup = SparcGrpInvalid
| SparcGrpJump
| SparcGrpHardquad
| SparcGrpV9
| SparcGrpVis
| SparcGrpVis2
| SparcGrpVis3
| SparcGrp32bit
| SparcGrp64bit
| SparcGrpEnding
deriving (Show,Eq,Bounded)
instance Enum SparcInsnGroup where
succ SparcGrpInvalid = SparcGrpJump
succ SparcGrpJump = SparcGrpHardquad
succ SparcGrpHardquad = SparcGrpV9
succ SparcGrpV9 = SparcGrpVis
succ SparcGrpVis = SparcGrpVis2
succ SparcGrpVis2 = SparcGrpVis3
succ SparcGrpVis3 = SparcGrp32bit
succ SparcGrp32bit = SparcGrp64bit
succ SparcGrp64bit = SparcGrpEnding
succ SparcGrpEnding = error "SparcInsnGroup.succ: SparcGrpEnding has no successor"
pred SparcGrpJump = SparcGrpInvalid
pred SparcGrpHardquad = SparcGrpJump
pred SparcGrpV9 = SparcGrpHardquad
pred SparcGrpVis = SparcGrpV9
pred SparcGrpVis2 = SparcGrpVis
pred SparcGrpVis3 = SparcGrpVis2
pred SparcGrp32bit = SparcGrpVis3
pred SparcGrp64bit = SparcGrp32bit
pred SparcGrpEnding = SparcGrp64bit
pred SparcGrpInvalid = error "SparcInsnGroup.pred: SparcGrpInvalid 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 SparcGrpEnding
fromEnum SparcGrpInvalid = 0
fromEnum SparcGrpJump = 1
fromEnum SparcGrpHardquad = 128
fromEnum SparcGrpV9 = 129
fromEnum SparcGrpVis = 130
fromEnum SparcGrpVis2 = 131
fromEnum SparcGrpVis3 = 132
fromEnum SparcGrp32bit = 133
fromEnum SparcGrp64bit = 134
fromEnum SparcGrpEnding = 135
toEnum 0 = SparcGrpInvalid
toEnum 1 = SparcGrpJump
toEnum 128 = SparcGrpHardquad
toEnum 129 = SparcGrpV9
toEnum 130 = SparcGrpVis
toEnum 131 = SparcGrpVis2
toEnum 132 = SparcGrpVis3
toEnum 133 = SparcGrp32bit
toEnum 134 = SparcGrp64bit
toEnum 135 = SparcGrpEnding
toEnum unmatched = error ("SparcInsnGroup.toEnum: Cannot match " ++ show unmatched)