-- GENERATED by C->Haskell Compiler, version 0.28.1 Switcheroo, 1 April 2016 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "src/Hapstone/Internal/Mips.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-|
Module      : Hapstone.Internal.Mips
Description : MIPS architecture header ported using C2HS + some boilerplate
Copyright   : (c) Inokentiy Babushkin, 2016
License     : BSD3
Maintainer  : Inokentiy Babushkin <inokentiy.babushkin@googlemail.com>
Stability   : experimental

This module contains MIPS specific datatypes and their respective Storable
instances. Most of the types are used internally and can be looked up here.
Some of them are currently unused, as the headers only define them as symbolic
constants whose type is never used explicitly, which poses a problem for a
memory-safe port to the Haskell language, this is about to get fixed in a
future version.

Apart from that, because the module is generated using C2HS, some of the
documentation is misplaced or rendered incorrectly, so if in doubt, read the
source file.
-}
module Hapstone.Internal.Mips where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Storable as C2HSImp






{-# LINE 25 "src/Hapstone/Internal/Mips.chs" #-}


import Foreign
import Foreign.C.Types

-- | operand type for instruction's operands
data MipsOpType = MipsOpInvalid
                | MipsOpReg
                | MipsOpImm
                | MipsOpMem
  deriving (Show,Eq,Bounded)
instance Enum MipsOpType where
  succ MipsOpInvalid = MipsOpReg
  succ MipsOpReg = MipsOpImm
  succ MipsOpImm = MipsOpMem
  succ MipsOpMem = error "MipsOpType.succ: MipsOpMem has no successor"

  pred MipsOpReg = MipsOpInvalid
  pred MipsOpImm = MipsOpReg
  pred MipsOpMem = MipsOpImm
  pred MipsOpInvalid = error "MipsOpType.pred: MipsOpInvalid 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 MipsOpMem

  fromEnum MipsOpInvalid = 0
  fromEnum MipsOpReg = 1
  fromEnum MipsOpImm = 2
  fromEnum MipsOpMem = 3

  toEnum 0 = MipsOpInvalid
  toEnum 1 = MipsOpReg
  toEnum 2 = MipsOpImm
  toEnum 3 = MipsOpMem
  toEnum unmatched = error ("MipsOpType.toEnum: Cannot match " ++ show unmatched)

{-# LINE 32 "src/Hapstone/Internal/Mips.chs" #-}


-- | MIPS registers
data MipsReg = MipsRegInvalid
             | MipsRegPc
             | MipsReg0
             | MipsRegZero
             | MipsReg1
             | MipsRegAt
             | MipsReg2
             | MipsRegV0
             | MipsReg3
             | MipsRegV1
             | MipsReg4
             | MipsRegA0
             | MipsReg5
             | MipsRegA1
             | MipsReg6
             | MipsRegA2
             | MipsReg7
             | MipsRegA3
             | MipsReg8
             | MipsRegT0
             | MipsReg9
             | MipsRegT1
             | MipsReg10
             | MipsRegT2
             | MipsReg11
             | MipsRegT3
             | MipsReg12
             | MipsRegT4
             | MipsReg13
             | MipsRegT5
             | MipsReg14
             | MipsRegT6
             | MipsReg15
             | MipsRegT7
             | MipsReg16
             | MipsRegS0
             | MipsReg17
             | MipsRegS1
             | MipsReg18
             | MipsRegS2
             | MipsReg19
             | MipsRegS3
             | MipsReg20
             | MipsRegS4
             | MipsReg21
             | MipsRegS5
             | MipsReg22
             | MipsRegS6
             | MipsReg23
             | MipsRegS7
             | MipsReg24
             | MipsRegT8
             | MipsReg25
             | MipsRegT9
             | MipsReg26
             | MipsRegK0
             | MipsReg27
             | MipsRegK1
             | MipsReg28
             | MipsRegGp
             | MipsReg29
             | MipsRegSp
             | MipsReg30
             | MipsRegFp
             | MipsRegS8
             | MipsReg31
             | MipsRegRa
             | MipsRegDspccond
             | MipsRegDspcarry
             | MipsRegDspefi
             | MipsRegDspoutflag
             | MipsRegDspoutflag1619
             | MipsRegDspoutflag20
             | MipsRegDspoutflag21
             | MipsRegDspoutflag22
             | MipsRegDspoutflag23
             | MipsRegDsppos
             | MipsRegDspscount
             | MipsRegAc0
             | MipsRegHi0
             | MipsRegLo0
             | MipsRegAc1
             | MipsRegHi1
             | MipsRegLo1
             | MipsRegAc2
             | MipsRegHi2
             | MipsRegLo2
             | MipsRegAc3
             | MipsRegHi3
             | MipsRegLo3
             | MipsRegCc0
             | MipsRegCc1
             | MipsRegCc2
             | MipsRegCc3
             | MipsRegCc4
             | MipsRegCc5
             | MipsRegCc6
             | MipsRegCc7
             | MipsRegF0
             | MipsRegF1
             | MipsRegF2
             | MipsRegF3
             | MipsRegF4
             | MipsRegF5
             | MipsRegF6
             | MipsRegF7
             | MipsRegF8
             | MipsRegF9
             | MipsRegF10
             | MipsRegF11
             | MipsRegF12
             | MipsRegF13
             | MipsRegF14
             | MipsRegF15
             | MipsRegF16
             | MipsRegF17
             | MipsRegF18
             | MipsRegF19
             | MipsRegF20
             | MipsRegF21
             | MipsRegF22
             | MipsRegF23
             | MipsRegF24
             | MipsRegF25
             | MipsRegF26
             | MipsRegF27
             | MipsRegF28
             | MipsRegF29
             | MipsRegF30
             | MipsRegF31
             | MipsRegFcc0
             | MipsRegFcc1
             | MipsRegFcc2
             | MipsRegFcc3
             | MipsRegFcc4
             | MipsRegFcc5
             | MipsRegFcc6
             | MipsRegFcc7
             | MipsRegW0
             | MipsRegW1
             | MipsRegW2
             | MipsRegW3
             | MipsRegW4
             | MipsRegW5
             | MipsRegW6
             | MipsRegW7
             | MipsRegW8
             | MipsRegW9
             | MipsRegW10
             | MipsRegW11
             | MipsRegW12
             | MipsRegW13
             | MipsRegW14
             | MipsRegW15
             | MipsRegW16
             | MipsRegW17
             | MipsRegW18
             | MipsRegW19
             | MipsRegW20
             | MipsRegW21
             | MipsRegW22
             | MipsRegW23
             | MipsRegW24
             | MipsRegW25
             | MipsRegW26
             | MipsRegW27
             | MipsRegW28
             | MipsRegW29
             | MipsRegW30
             | MipsRegW31
             | MipsRegHi
             | MipsRegLo
             | MipsRegP0
             | MipsRegP1
             | MipsRegP2
             | MipsRegMpl0
             | MipsRegMpl1
             | MipsRegMpl2
             | MipsRegEnding
  deriving (Show,Eq,Bounded)
instance Enum MipsReg where
  succ MipsRegInvalid = MipsRegPc
  succ MipsRegPc = MipsReg0
  succ MipsReg0 = MipsReg1
  succ MipsRegZero = MipsReg1
  succ MipsReg1 = MipsReg2
  succ MipsRegAt = MipsReg2
  succ MipsReg2 = MipsReg3
  succ MipsRegV0 = MipsReg3
  succ MipsReg3 = MipsReg4
  succ MipsRegV1 = MipsReg4
  succ MipsReg4 = MipsReg5
  succ MipsRegA0 = MipsReg5
  succ MipsReg5 = MipsReg6
  succ MipsRegA1 = MipsReg6
  succ MipsReg6 = MipsReg7
  succ MipsRegA2 = MipsReg7
  succ MipsReg7 = MipsReg8
  succ MipsRegA3 = MipsReg8
  succ MipsReg8 = MipsReg9
  succ MipsRegT0 = MipsReg9
  succ MipsReg9 = MipsReg10
  succ MipsRegT1 = MipsReg10
  succ MipsReg10 = MipsReg11
  succ MipsRegT2 = MipsReg11
  succ MipsReg11 = MipsReg12
  succ MipsRegT3 = MipsReg12
  succ MipsReg12 = MipsReg13
  succ MipsRegT4 = MipsReg13
  succ MipsReg13 = MipsReg14
  succ MipsRegT5 = MipsReg14
  succ MipsReg14 = MipsReg15
  succ MipsRegT6 = MipsReg15
  succ MipsReg15 = MipsReg16
  succ MipsRegT7 = MipsReg16
  succ MipsReg16 = MipsReg17
  succ MipsRegS0 = MipsReg17
  succ MipsReg17 = MipsReg18
  succ MipsRegS1 = MipsReg18
  succ MipsReg18 = MipsReg19
  succ MipsRegS2 = MipsReg19
  succ MipsReg19 = MipsReg20
  succ MipsRegS3 = MipsReg20
  succ MipsReg20 = MipsReg21
  succ MipsRegS4 = MipsReg21
  succ MipsReg21 = MipsReg22
  succ MipsRegS5 = MipsReg22
  succ MipsReg22 = MipsReg23
  succ MipsRegS6 = MipsReg23
  succ MipsReg23 = MipsReg24
  succ MipsRegS7 = MipsReg24
  succ MipsReg24 = MipsReg25
  succ MipsRegT8 = MipsReg25
  succ MipsReg25 = MipsReg26
  succ MipsRegT9 = MipsReg26
  succ MipsReg26 = MipsReg27
  succ MipsRegK0 = MipsReg27
  succ MipsReg27 = MipsReg28
  succ MipsRegK1 = MipsReg28
  succ MipsReg28 = MipsReg29
  succ MipsRegGp = MipsReg29
  succ MipsReg29 = MipsReg30
  succ MipsRegSp = MipsReg30
  succ MipsReg30 = MipsReg31
  succ MipsRegFp = MipsReg31
  succ MipsRegS8 = MipsReg31
  succ MipsReg31 = MipsRegDspccond
  succ MipsRegRa = MipsRegDspccond
  succ MipsRegDspccond = MipsRegDspcarry
  succ MipsRegDspcarry = MipsRegDspefi
  succ MipsRegDspefi = MipsRegDspoutflag
  succ MipsRegDspoutflag = MipsRegDspoutflag1619
  succ MipsRegDspoutflag1619 = MipsRegDspoutflag20
  succ MipsRegDspoutflag20 = MipsRegDspoutflag21
  succ MipsRegDspoutflag21 = MipsRegDspoutflag22
  succ MipsRegDspoutflag22 = MipsRegDspoutflag23
  succ MipsRegDspoutflag23 = MipsRegDsppos
  succ MipsRegDsppos = MipsRegDspscount
  succ MipsRegDspscount = MipsRegAc0
  succ MipsRegAc0 = MipsRegAc1
  succ MipsRegHi0 = MipsRegAc1
  succ MipsRegLo0 = MipsRegAc1
  succ MipsRegAc1 = MipsRegAc2
  succ MipsRegHi1 = MipsRegAc2
  succ MipsRegLo1 = MipsRegAc2
  succ MipsRegAc2 = MipsRegAc3
  succ MipsRegHi2 = MipsRegAc3
  succ MipsRegLo2 = MipsRegAc3
  succ MipsRegAc3 = MipsRegCc0
  succ MipsRegHi3 = MipsRegCc0
  succ MipsRegLo3 = MipsRegCc0
  succ MipsRegCc0 = MipsRegCc1
  succ MipsRegCc1 = MipsRegCc2
  succ MipsRegCc2 = MipsRegCc3
  succ MipsRegCc3 = MipsRegCc4
  succ MipsRegCc4 = MipsRegCc5
  succ MipsRegCc5 = MipsRegCc6
  succ MipsRegCc6 = MipsRegCc7
  succ MipsRegCc7 = MipsRegF0
  succ MipsRegF0 = MipsRegF1
  succ MipsRegF1 = MipsRegF2
  succ MipsRegF2 = MipsRegF3
  succ MipsRegF3 = MipsRegF4
  succ MipsRegF4 = MipsRegF5
  succ MipsRegF5 = MipsRegF6
  succ MipsRegF6 = MipsRegF7
  succ MipsRegF7 = MipsRegF8
  succ MipsRegF8 = MipsRegF9
  succ MipsRegF9 = MipsRegF10
  succ MipsRegF10 = MipsRegF11
  succ MipsRegF11 = MipsRegF12
  succ MipsRegF12 = MipsRegF13
  succ MipsRegF13 = MipsRegF14
  succ MipsRegF14 = MipsRegF15
  succ MipsRegF15 = MipsRegF16
  succ MipsRegF16 = MipsRegF17
  succ MipsRegF17 = MipsRegF18
  succ MipsRegF18 = MipsRegF19
  succ MipsRegF19 = MipsRegF20
  succ MipsRegF20 = MipsRegF21
  succ MipsRegF21 = MipsRegF22
  succ MipsRegF22 = MipsRegF23
  succ MipsRegF23 = MipsRegF24
  succ MipsRegF24 = MipsRegF25
  succ MipsRegF25 = MipsRegF26
  succ MipsRegF26 = MipsRegF27
  succ MipsRegF27 = MipsRegF28
  succ MipsRegF28 = MipsRegF29
  succ MipsRegF29 = MipsRegF30
  succ MipsRegF30 = MipsRegF31
  succ MipsRegF31 = MipsRegFcc0
  succ MipsRegFcc0 = MipsRegFcc1
  succ MipsRegFcc1 = MipsRegFcc2
  succ MipsRegFcc2 = MipsRegFcc3
  succ MipsRegFcc3 = MipsRegFcc4
  succ MipsRegFcc4 = MipsRegFcc5
  succ MipsRegFcc5 = MipsRegFcc6
  succ MipsRegFcc6 = MipsRegFcc7
  succ MipsRegFcc7 = MipsRegW0
  succ MipsRegW0 = MipsRegW1
  succ MipsRegW1 = MipsRegW2
  succ MipsRegW2 = MipsRegW3
  succ MipsRegW3 = MipsRegW4
  succ MipsRegW4 = MipsRegW5
  succ MipsRegW5 = MipsRegW6
  succ MipsRegW6 = MipsRegW7
  succ MipsRegW7 = MipsRegW8
  succ MipsRegW8 = MipsRegW9
  succ MipsRegW9 = MipsRegW10
  succ MipsRegW10 = MipsRegW11
  succ MipsRegW11 = MipsRegW12
  succ MipsRegW12 = MipsRegW13
  succ MipsRegW13 = MipsRegW14
  succ MipsRegW14 = MipsRegW15
  succ MipsRegW15 = MipsRegW16
  succ MipsRegW16 = MipsRegW17
  succ MipsRegW17 = MipsRegW18
  succ MipsRegW18 = MipsRegW19
  succ MipsRegW19 = MipsRegW20
  succ MipsRegW20 = MipsRegW21
  succ MipsRegW21 = MipsRegW22
  succ MipsRegW22 = MipsRegW23
  succ MipsRegW23 = MipsRegW24
  succ MipsRegW24 = MipsRegW25
  succ MipsRegW25 = MipsRegW26
  succ MipsRegW26 = MipsRegW27
  succ MipsRegW27 = MipsRegW28
  succ MipsRegW28 = MipsRegW29
  succ MipsRegW29 = MipsRegW30
  succ MipsRegW30 = MipsRegW31
  succ MipsRegW31 = MipsRegHi
  succ MipsRegHi = MipsRegLo
  succ MipsRegLo = MipsRegP0
  succ MipsRegP0 = MipsRegP1
  succ MipsRegP1 = MipsRegP2
  succ MipsRegP2 = MipsRegMpl0
  succ MipsRegMpl0 = MipsRegMpl1
  succ MipsRegMpl1 = MipsRegMpl2
  succ MipsRegMpl2 = MipsRegEnding
  succ MipsRegEnding = error "MipsReg.succ: MipsRegEnding has no successor"

  pred MipsRegPc = MipsRegInvalid
  pred MipsReg0 = MipsRegPc
  pred MipsRegZero = MipsRegPc
  pred MipsReg1 = MipsReg0
  pred MipsRegAt = MipsReg0
  pred MipsReg2 = MipsReg1
  pred MipsRegV0 = MipsReg1
  pred MipsReg3 = MipsReg2
  pred MipsRegV1 = MipsReg2
  pred MipsReg4 = MipsReg3
  pred MipsRegA0 = MipsReg3
  pred MipsReg5 = MipsReg4
  pred MipsRegA1 = MipsReg4
  pred MipsReg6 = MipsReg5
  pred MipsRegA2 = MipsReg5
  pred MipsReg7 = MipsReg6
  pred MipsRegA3 = MipsReg6
  pred MipsReg8 = MipsReg7
  pred MipsRegT0 = MipsReg7
  pred MipsReg9 = MipsReg8
  pred MipsRegT1 = MipsReg8
  pred MipsReg10 = MipsReg9
  pred MipsRegT2 = MipsReg9
  pred MipsReg11 = MipsReg10
  pred MipsRegT3 = MipsReg10
  pred MipsReg12 = MipsReg11
  pred MipsRegT4 = MipsReg11
  pred MipsReg13 = MipsReg12
  pred MipsRegT5 = MipsReg12
  pred MipsReg14 = MipsReg13
  pred MipsRegT6 = MipsReg13
  pred MipsReg15 = MipsReg14
  pred MipsRegT7 = MipsReg14
  pred MipsReg16 = MipsReg15
  pred MipsRegS0 = MipsReg15
  pred MipsReg17 = MipsReg16
  pred MipsRegS1 = MipsReg16
  pred MipsReg18 = MipsReg17
  pred MipsRegS2 = MipsReg17
  pred MipsReg19 = MipsReg18
  pred MipsRegS3 = MipsReg18
  pred MipsReg20 = MipsReg19
  pred MipsRegS4 = MipsReg19
  pred MipsReg21 = MipsReg20
  pred MipsRegS5 = MipsReg20
  pred MipsReg22 = MipsReg21
  pred MipsRegS6 = MipsReg21
  pred MipsReg23 = MipsReg22
  pred MipsRegS7 = MipsReg22
  pred MipsReg24 = MipsReg23
  pred MipsRegT8 = MipsReg23
  pred MipsReg25 = MipsReg24
  pred MipsRegT9 = MipsReg24
  pred MipsReg26 = MipsReg25
  pred MipsRegK0 = MipsReg25
  pred MipsReg27 = MipsReg26
  pred MipsRegK1 = MipsReg26
  pred MipsReg28 = MipsReg27
  pred MipsRegGp = MipsReg27
  pred MipsReg29 = MipsReg28
  pred MipsRegSp = MipsReg28
  pred MipsReg30 = MipsReg29
  pred MipsRegFp = MipsReg29
  pred MipsRegS8 = MipsReg29
  pred MipsReg31 = MipsReg30
  pred MipsRegRa = MipsReg30
  pred MipsRegDspccond = MipsReg31
  pred MipsRegDspcarry = MipsRegDspccond
  pred MipsRegDspefi = MipsRegDspcarry
  pred MipsRegDspoutflag = MipsRegDspefi
  pred MipsRegDspoutflag1619 = MipsRegDspoutflag
  pred MipsRegDspoutflag20 = MipsRegDspoutflag1619
  pred MipsRegDspoutflag21 = MipsRegDspoutflag20
  pred MipsRegDspoutflag22 = MipsRegDspoutflag21
  pred MipsRegDspoutflag23 = MipsRegDspoutflag22
  pred MipsRegDsppos = MipsRegDspoutflag23
  pred MipsRegDspscount = MipsRegDsppos
  pred MipsRegAc0 = MipsRegDspscount
  pred MipsRegHi0 = MipsRegDspscount
  pred MipsRegLo0 = MipsRegDspscount
  pred MipsRegAc1 = MipsRegAc0
  pred MipsRegHi1 = MipsRegAc0
  pred MipsRegLo1 = MipsRegAc0
  pred MipsRegAc2 = MipsRegAc1
  pred MipsRegHi2 = MipsRegAc1
  pred MipsRegLo2 = MipsRegAc1
  pred MipsRegAc3 = MipsRegAc2
  pred MipsRegHi3 = MipsRegAc2
  pred MipsRegLo3 = MipsRegAc2
  pred MipsRegCc0 = MipsRegAc3
  pred MipsRegCc1 = MipsRegCc0
  pred MipsRegCc2 = MipsRegCc1
  pred MipsRegCc3 = MipsRegCc2
  pred MipsRegCc4 = MipsRegCc3
  pred MipsRegCc5 = MipsRegCc4
  pred MipsRegCc6 = MipsRegCc5
  pred MipsRegCc7 = MipsRegCc6
  pred MipsRegF0 = MipsRegCc7
  pred MipsRegF1 = MipsRegF0
  pred MipsRegF2 = MipsRegF1
  pred MipsRegF3 = MipsRegF2
  pred MipsRegF4 = MipsRegF3
  pred MipsRegF5 = MipsRegF4
  pred MipsRegF6 = MipsRegF5
  pred MipsRegF7 = MipsRegF6
  pred MipsRegF8 = MipsRegF7
  pred MipsRegF9 = MipsRegF8
  pred MipsRegF10 = MipsRegF9
  pred MipsRegF11 = MipsRegF10
  pred MipsRegF12 = MipsRegF11
  pred MipsRegF13 = MipsRegF12
  pred MipsRegF14 = MipsRegF13
  pred MipsRegF15 = MipsRegF14
  pred MipsRegF16 = MipsRegF15
  pred MipsRegF17 = MipsRegF16
  pred MipsRegF18 = MipsRegF17
  pred MipsRegF19 = MipsRegF18
  pred MipsRegF20 = MipsRegF19
  pred MipsRegF21 = MipsRegF20
  pred MipsRegF22 = MipsRegF21
  pred MipsRegF23 = MipsRegF22
  pred MipsRegF24 = MipsRegF23
  pred MipsRegF25 = MipsRegF24
  pred MipsRegF26 = MipsRegF25
  pred MipsRegF27 = MipsRegF26
  pred MipsRegF28 = MipsRegF27
  pred MipsRegF29 = MipsRegF28
  pred MipsRegF30 = MipsRegF29
  pred MipsRegF31 = MipsRegF30
  pred MipsRegFcc0 = MipsRegF31
  pred MipsRegFcc1 = MipsRegFcc0
  pred MipsRegFcc2 = MipsRegFcc1
  pred MipsRegFcc3 = MipsRegFcc2
  pred MipsRegFcc4 = MipsRegFcc3
  pred MipsRegFcc5 = MipsRegFcc4
  pred MipsRegFcc6 = MipsRegFcc5
  pred MipsRegFcc7 = MipsRegFcc6
  pred MipsRegW0 = MipsRegFcc7
  pred MipsRegW1 = MipsRegW0
  pred MipsRegW2 = MipsRegW1
  pred MipsRegW3 = MipsRegW2
  pred MipsRegW4 = MipsRegW3
  pred MipsRegW5 = MipsRegW4
  pred MipsRegW6 = MipsRegW5
  pred MipsRegW7 = MipsRegW6
  pred MipsRegW8 = MipsRegW7
  pred MipsRegW9 = MipsRegW8
  pred MipsRegW10 = MipsRegW9
  pred MipsRegW11 = MipsRegW10
  pred MipsRegW12 = MipsRegW11
  pred MipsRegW13 = MipsRegW12
  pred MipsRegW14 = MipsRegW13
  pred MipsRegW15 = MipsRegW14
  pred MipsRegW16 = MipsRegW15
  pred MipsRegW17 = MipsRegW16
  pred MipsRegW18 = MipsRegW17
  pred MipsRegW19 = MipsRegW18
  pred MipsRegW20 = MipsRegW19
  pred MipsRegW21 = MipsRegW20
  pred MipsRegW22 = MipsRegW21
  pred MipsRegW23 = MipsRegW22
  pred MipsRegW24 = MipsRegW23
  pred MipsRegW25 = MipsRegW24
  pred MipsRegW26 = MipsRegW25
  pred MipsRegW27 = MipsRegW26
  pred MipsRegW28 = MipsRegW27
  pred MipsRegW29 = MipsRegW28
  pred MipsRegW30 = MipsRegW29
  pred MipsRegW31 = MipsRegW30
  pred MipsRegHi = MipsRegW31
  pred MipsRegLo = MipsRegHi
  pred MipsRegP0 = MipsRegLo
  pred MipsRegP1 = MipsRegP0
  pred MipsRegP2 = MipsRegP1
  pred MipsRegMpl0 = MipsRegP2
  pred MipsRegMpl1 = MipsRegMpl0
  pred MipsRegMpl2 = MipsRegMpl1
  pred MipsRegEnding = MipsRegMpl2
  pred MipsRegInvalid = error "MipsReg.pred: MipsRegInvalid 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 MipsRegEnding

  fromEnum MipsRegInvalid = 0
  fromEnum MipsRegPc = 1
  fromEnum MipsReg0 = 2
  fromEnum MipsRegZero = 2
  fromEnum MipsReg1 = 3
  fromEnum MipsRegAt = 3
  fromEnum MipsReg2 = 4
  fromEnum MipsRegV0 = 4
  fromEnum MipsReg3 = 5
  fromEnum MipsRegV1 = 5
  fromEnum MipsReg4 = 6
  fromEnum MipsRegA0 = 6
  fromEnum MipsReg5 = 7
  fromEnum MipsRegA1 = 7
  fromEnum MipsReg6 = 8
  fromEnum MipsRegA2 = 8
  fromEnum MipsReg7 = 9
  fromEnum MipsRegA3 = 9
  fromEnum MipsReg8 = 10
  fromEnum MipsRegT0 = 10
  fromEnum MipsReg9 = 11
  fromEnum MipsRegT1 = 11
  fromEnum MipsReg10 = 12
  fromEnum MipsRegT2 = 12
  fromEnum MipsReg11 = 13
  fromEnum MipsRegT3 = 13
  fromEnum MipsReg12 = 14
  fromEnum MipsRegT4 = 14
  fromEnum MipsReg13 = 15
  fromEnum MipsRegT5 = 15
  fromEnum MipsReg14 = 16
  fromEnum MipsRegT6 = 16
  fromEnum MipsReg15 = 17
  fromEnum MipsRegT7 = 17
  fromEnum MipsReg16 = 18
  fromEnum MipsRegS0 = 18
  fromEnum MipsReg17 = 19
  fromEnum MipsRegS1 = 19
  fromEnum MipsReg18 = 20
  fromEnum MipsRegS2 = 20
  fromEnum MipsReg19 = 21
  fromEnum MipsRegS3 = 21
  fromEnum MipsReg20 = 22
  fromEnum MipsRegS4 = 22
  fromEnum MipsReg21 = 23
  fromEnum MipsRegS5 = 23
  fromEnum MipsReg22 = 24
  fromEnum MipsRegS6 = 24
  fromEnum MipsReg23 = 25
  fromEnum MipsRegS7 = 25
  fromEnum MipsReg24 = 26
  fromEnum MipsRegT8 = 26
  fromEnum MipsReg25 = 27
  fromEnum MipsRegT9 = 27
  fromEnum MipsReg26 = 28
  fromEnum MipsRegK0 = 28
  fromEnum MipsReg27 = 29
  fromEnum MipsRegK1 = 29
  fromEnum MipsReg28 = 30
  fromEnum MipsRegGp = 30
  fromEnum MipsReg29 = 31
  fromEnum MipsRegSp = 31
  fromEnum MipsReg30 = 32
  fromEnum MipsRegFp = 32
  fromEnum MipsRegS8 = 32
  fromEnum MipsReg31 = 33
  fromEnum MipsRegRa = 33
  fromEnum MipsRegDspccond = 34
  fromEnum MipsRegDspcarry = 35
  fromEnum MipsRegDspefi = 36
  fromEnum MipsRegDspoutflag = 37
  fromEnum MipsRegDspoutflag1619 = 38
  fromEnum MipsRegDspoutflag20 = 39
  fromEnum MipsRegDspoutflag21 = 40
  fromEnum MipsRegDspoutflag22 = 41
  fromEnum MipsRegDspoutflag23 = 42
  fromEnum MipsRegDsppos = 43
  fromEnum MipsRegDspscount = 44
  fromEnum MipsRegAc0 = 45
  fromEnum MipsRegHi0 = 45
  fromEnum MipsRegLo0 = 45
  fromEnum MipsRegAc1 = 46
  fromEnum MipsRegHi1 = 46
  fromEnum MipsRegLo1 = 46
  fromEnum MipsRegAc2 = 47
  fromEnum MipsRegHi2 = 47
  fromEnum MipsRegLo2 = 47
  fromEnum MipsRegAc3 = 48
  fromEnum MipsRegHi3 = 48
  fromEnum MipsRegLo3 = 48
  fromEnum MipsRegCc0 = 49
  fromEnum MipsRegCc1 = 50
  fromEnum MipsRegCc2 = 51
  fromEnum MipsRegCc3 = 52
  fromEnum MipsRegCc4 = 53
  fromEnum MipsRegCc5 = 54
  fromEnum MipsRegCc6 = 55
  fromEnum MipsRegCc7 = 56
  fromEnum MipsRegF0 = 57
  fromEnum MipsRegF1 = 58
  fromEnum MipsRegF2 = 59
  fromEnum MipsRegF3 = 60
  fromEnum MipsRegF4 = 61
  fromEnum MipsRegF5 = 62
  fromEnum MipsRegF6 = 63
  fromEnum MipsRegF7 = 64
  fromEnum MipsRegF8 = 65
  fromEnum MipsRegF9 = 66
  fromEnum MipsRegF10 = 67
  fromEnum MipsRegF11 = 68
  fromEnum MipsRegF12 = 69
  fromEnum MipsRegF13 = 70
  fromEnum MipsRegF14 = 71
  fromEnum MipsRegF15 = 72
  fromEnum MipsRegF16 = 73
  fromEnum MipsRegF17 = 74
  fromEnum MipsRegF18 = 75
  fromEnum MipsRegF19 = 76
  fromEnum MipsRegF20 = 77
  fromEnum MipsRegF21 = 78
  fromEnum MipsRegF22 = 79
  fromEnum MipsRegF23 = 80
  fromEnum MipsRegF24 = 81
  fromEnum MipsRegF25 = 82
  fromEnum MipsRegF26 = 83
  fromEnum MipsRegF27 = 84
  fromEnum MipsRegF28 = 85
  fromEnum MipsRegF29 = 86
  fromEnum MipsRegF30 = 87
  fromEnum MipsRegF31 = 88
  fromEnum MipsRegFcc0 = 89
  fromEnum MipsRegFcc1 = 90
  fromEnum MipsRegFcc2 = 91
  fromEnum MipsRegFcc3 = 92
  fromEnum MipsRegFcc4 = 93
  fromEnum MipsRegFcc5 = 94
  fromEnum MipsRegFcc6 = 95
  fromEnum MipsRegFcc7 = 96
  fromEnum MipsRegW0 = 97
  fromEnum MipsRegW1 = 98
  fromEnum MipsRegW2 = 99
  fromEnum MipsRegW3 = 100
  fromEnum MipsRegW4 = 101
  fromEnum MipsRegW5 = 102
  fromEnum MipsRegW6 = 103
  fromEnum MipsRegW7 = 104
  fromEnum MipsRegW8 = 105
  fromEnum MipsRegW9 = 106
  fromEnum MipsRegW10 = 107
  fromEnum MipsRegW11 = 108
  fromEnum MipsRegW12 = 109
  fromEnum MipsRegW13 = 110
  fromEnum MipsRegW14 = 111
  fromEnum MipsRegW15 = 112
  fromEnum MipsRegW16 = 113
  fromEnum MipsRegW17 = 114
  fromEnum MipsRegW18 = 115
  fromEnum MipsRegW19 = 116
  fromEnum MipsRegW20 = 117
  fromEnum MipsRegW21 = 118
  fromEnum MipsRegW22 = 119
  fromEnum MipsRegW23 = 120
  fromEnum MipsRegW24 = 121
  fromEnum MipsRegW25 = 122
  fromEnum MipsRegW26 = 123
  fromEnum MipsRegW27 = 124
  fromEnum MipsRegW28 = 125
  fromEnum MipsRegW29 = 126
  fromEnum MipsRegW30 = 127
  fromEnum MipsRegW31 = 128
  fromEnum MipsRegHi = 129
  fromEnum MipsRegLo = 130
  fromEnum MipsRegP0 = 131
  fromEnum MipsRegP1 = 132
  fromEnum MipsRegP2 = 133
  fromEnum MipsRegMpl0 = 134
  fromEnum MipsRegMpl1 = 135
  fromEnum MipsRegMpl2 = 136
  fromEnum MipsRegEnding = 137

  toEnum 0 = MipsRegInvalid
  toEnum 1 = MipsRegPc
  toEnum 2 = MipsReg0
  toEnum 3 = MipsReg1
  toEnum 4 = MipsReg2
  toEnum 5 = MipsReg3
  toEnum 6 = MipsReg4
  toEnum 7 = MipsReg5
  toEnum 8 = MipsReg6
  toEnum 9 = MipsReg7
  toEnum 10 = MipsReg8
  toEnum 11 = MipsReg9
  toEnum 12 = MipsReg10
  toEnum 13 = MipsReg11
  toEnum 14 = MipsReg12
  toEnum 15 = MipsReg13
  toEnum 16 = MipsReg14
  toEnum 17 = MipsReg15
  toEnum 18 = MipsReg16
  toEnum 19 = MipsReg17
  toEnum 20 = MipsReg18
  toEnum 21 = MipsReg19
  toEnum 22 = MipsReg20
  toEnum 23 = MipsReg21
  toEnum 24 = MipsReg22
  toEnum 25 = MipsReg23
  toEnum 26 = MipsReg24
  toEnum 27 = MipsReg25
  toEnum 28 = MipsReg26
  toEnum 29 = MipsReg27
  toEnum 30 = MipsReg28
  toEnum 31 = MipsReg29
  toEnum 32 = MipsReg30
  toEnum 33 = MipsReg31
  toEnum 34 = MipsRegDspccond
  toEnum 35 = MipsRegDspcarry
  toEnum 36 = MipsRegDspefi
  toEnum 37 = MipsRegDspoutflag
  toEnum 38 = MipsRegDspoutflag1619
  toEnum 39 = MipsRegDspoutflag20
  toEnum 40 = MipsRegDspoutflag21
  toEnum 41 = MipsRegDspoutflag22
  toEnum 42 = MipsRegDspoutflag23
  toEnum 43 = MipsRegDsppos
  toEnum 44 = MipsRegDspscount
  toEnum 45 = MipsRegAc0
  toEnum 46 = MipsRegAc1
  toEnum 47 = MipsRegAc2
  toEnum 48 = MipsRegAc3
  toEnum 49 = MipsRegCc0
  toEnum 50 = MipsRegCc1
  toEnum 51 = MipsRegCc2
  toEnum 52 = MipsRegCc3
  toEnum 53 = MipsRegCc4
  toEnum 54 = MipsRegCc5
  toEnum 55 = MipsRegCc6
  toEnum 56 = MipsRegCc7
  toEnum 57 = MipsRegF0
  toEnum 58 = MipsRegF1
  toEnum 59 = MipsRegF2
  toEnum 60 = MipsRegF3
  toEnum 61 = MipsRegF4
  toEnum 62 = MipsRegF5
  toEnum 63 = MipsRegF6
  toEnum 64 = MipsRegF7
  toEnum 65 = MipsRegF8
  toEnum 66 = MipsRegF9
  toEnum 67 = MipsRegF10
  toEnum 68 = MipsRegF11
  toEnum 69 = MipsRegF12
  toEnum 70 = MipsRegF13
  toEnum 71 = MipsRegF14
  toEnum 72 = MipsRegF15
  toEnum 73 = MipsRegF16
  toEnum 74 = MipsRegF17
  toEnum 75 = MipsRegF18
  toEnum 76 = MipsRegF19
  toEnum 77 = MipsRegF20
  toEnum 78 = MipsRegF21
  toEnum 79 = MipsRegF22
  toEnum 80 = MipsRegF23
  toEnum 81 = MipsRegF24
  toEnum 82 = MipsRegF25
  toEnum 83 = MipsRegF26
  toEnum 84 = MipsRegF27
  toEnum 85 = MipsRegF28
  toEnum 86 = MipsRegF29
  toEnum 87 = MipsRegF30
  toEnum 88 = MipsRegF31
  toEnum 89 = MipsRegFcc0
  toEnum 90 = MipsRegFcc1
  toEnum 91 = MipsRegFcc2
  toEnum 92 = MipsRegFcc3
  toEnum 93 = MipsRegFcc4
  toEnum 94 = MipsRegFcc5
  toEnum 95 = MipsRegFcc6
  toEnum 96 = MipsRegFcc7
  toEnum 97 = MipsRegW0
  toEnum 98 = MipsRegW1
  toEnum 99 = MipsRegW2
  toEnum 100 = MipsRegW3
  toEnum 101 = MipsRegW4
  toEnum 102 = MipsRegW5
  toEnum 103 = MipsRegW6
  toEnum 104 = MipsRegW7
  toEnum 105 = MipsRegW8
  toEnum 106 = MipsRegW9
  toEnum 107 = MipsRegW10
  toEnum 108 = MipsRegW11
  toEnum 109 = MipsRegW12
  toEnum 110 = MipsRegW13
  toEnum 111 = MipsRegW14
  toEnum 112 = MipsRegW15
  toEnum 113 = MipsRegW16
  toEnum 114 = MipsRegW17
  toEnum 115 = MipsRegW18
  toEnum 116 = MipsRegW19
  toEnum 117 = MipsRegW20
  toEnum 118 = MipsRegW21
  toEnum 119 = MipsRegW22
  toEnum 120 = MipsRegW23
  toEnum 121 = MipsRegW24
  toEnum 122 = MipsRegW25
  toEnum 123 = MipsRegW26
  toEnum 124 = MipsRegW27
  toEnum 125 = MipsRegW28
  toEnum 126 = MipsRegW29
  toEnum 127 = MipsRegW30
  toEnum 128 = MipsRegW31
  toEnum 129 = MipsRegHi
  toEnum 130 = MipsRegLo
  toEnum 131 = MipsRegP0
  toEnum 132 = MipsRegP1
  toEnum 133 = MipsRegP2
  toEnum 134 = MipsRegMpl0
  toEnum 135 = MipsRegMpl1
  toEnum 136 = MipsRegMpl2
  toEnum 137 = MipsRegEnding
  toEnum unmatched = error ("MipsReg.toEnum: Cannot match " ++ show unmatched)

{-# LINE 36 "src/Hapstone/Internal/Mips.chs" #-}


-- | memory access operands
-- associated with 'MipsOpMem' operand type
data MipsOpMemStruct = MipsOpMemStruct 
    { base :: MipsReg -- ^ base register
    , disp ::  Int64 -- ^ displacement/offset value
    } deriving (Show, Eq)

instance Storable MipsOpMemStruct where
    sizeOf _ = 16
{-# LINE 46 "src/Hapstone/Internal/Mips.chs" #-}

    alignment _ = 8
{-# LINE 47 "src/Hapstone/Internal/Mips.chs" #-}

    peek p = MipsOpMemStruct
        <$> ((toEnum . fromIntegral) <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p)
        <*> (fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 8 :: IO C2HSImp.CLong}) p)
    poke p (MipsOpMemStruct b d) = do
        (\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p (fromIntegral $ fromEnum b)
        (\ptr val -> do {C2HSImp.pokeByteOff ptr 8 (val :: C2HSImp.CLong)}) p(fromIntegral d)

-- | instruction operand
data CsMipsOp
    = Reg Word32 -- ^ register value for 'MipsOpReg' operands
    | Imm Int64 -- ^ immediate value for 'MipsOpImm' operands
    | Mem MipsOpMemStruct -- ^ base,disp value for 'MipsOpMem' operands
    | Undefined -- ^ invalid operand value, for MipsOpInvalid operand
    deriving (Show, Eq)

instance Storable CsMipsOp where
    sizeOf _ = 24
    alignment _ = 8
    peek p = do
        t <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CInt}) p
        let bP = plusPtr p 8
        case toEnum t of
          MipsOpReg -> (Reg . fromIntegral) <$> (peek bP :: IO CUInt)
          MipsOpImm -> (Imm . fromIntegral) <$> (peek bP :: IO Int64)
          MipsOpMem -> Mem <$> (peek bP :: IO MipsOpMemStruct)
          _ -> return Undefined
    poke p op = do
        let bP = plusPtr p 8
            setType = (\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CInt)}) p . fromIntegral . fromEnum
        case op of
          Reg r -> do
              poke bP (fromIntegral r :: CUInt)
              setType MipsOpReg
          Imm i -> do
              poke bP (fromIntegral i :: Int64)
              setType MipsOpImm
          Mem m -> do
              poke bP m
              setType MipsOpMem
          _ -> setType MipsOpInvalid

-- | instruction datatype
newtype CsMips = CsMips [CsMipsOp] -- ^ operand list for this instruction,
                                   -- *MUST* have <= 8 elements, else you'll
                                   -- get a runtime error when you (implicitly)
                                   -- try to write it to memory via it's
                                   -- Storable instance
    deriving (Show, Eq)

instance Storable CsMips where
    sizeOf _ = 200
    alignment _ = 8
    peek p = CsMips
        <$> do num <- fromIntegral <$> (\ptr -> do {C2HSImp.peekByteOff ptr 0 :: IO C2HSImp.CUChar}) p
               let ptr = plusPtr p 8
               peekArray num ptr
    poke p (CsMips o) = do
        (\ptr val -> do {C2HSImp.pokeByteOff ptr 0 (val :: C2HSImp.CUChar)}) p (fromIntegral $ length o)
        if length o > 8
           then error "operands overflew 8 elements"
           else pokeArray (plusPtr p 8) o

-- | MIPS instructions
data MipsInsn = MipsInsInvalid
              | MipsInsAbsqS
              | MipsInsAdd
              | MipsInsAddiupc
              | MipsInsAddiur1sp
              | MipsInsAddiur2
              | MipsInsAddius5
              | MipsInsAddiusp
              | MipsInsAddqh
              | MipsInsAddqhR
              | MipsInsAddq
              | MipsInsAddqS
              | MipsInsAddsc
              | MipsInsAddsA
              | MipsInsAddsS
              | MipsInsAddsU
              | MipsInsAddu16
              | MipsInsAdduh
              | MipsInsAdduhR
              | MipsInsAddu
              | MipsInsAdduS
              | MipsInsAddvi
              | MipsInsAddv
              | MipsInsAddwc
              | MipsInsAddA
              | MipsInsAddi
              | MipsInsAddiu
              | MipsInsAlign
              | MipsInsAluipc
              | MipsInsAnd
              | MipsInsAnd16
              | MipsInsAndi16
              | MipsInsAndi
              | MipsInsAppend
              | MipsInsAsubS
              | MipsInsAsubU
              | MipsInsAui
              | MipsInsAuipc
              | MipsInsAverS
              | MipsInsAverU
              | MipsInsAveS
              | MipsInsAveU
              | MipsInsB16
              | MipsInsBaddu
              | MipsInsBal
              | MipsInsBalc
              | MipsInsBalign
              | MipsInsBbit0
              | MipsInsBbit032
              | MipsInsBbit1
              | MipsInsBbit132
              | MipsInsBc
              | MipsInsBc0f
              | MipsInsBc0fl
              | MipsInsBc0t
              | MipsInsBc0tl
              | MipsInsBc1eqz
              | MipsInsBc1f
              | MipsInsBc1fl
              | MipsInsBc1nez
              | MipsInsBc1t
              | MipsInsBc1tl
              | MipsInsBc2eqz
              | MipsInsBc2f
              | MipsInsBc2fl
              | MipsInsBc2nez
              | MipsInsBc2t
              | MipsInsBc2tl
              | MipsInsBc3f
              | MipsInsBc3fl
              | MipsInsBc3t
              | MipsInsBc3tl
              | MipsInsBclri
              | MipsInsBclr
              | MipsInsBeq
              | MipsInsBeqc
              | MipsInsBeql
              | MipsInsBeqz16
              | MipsInsBeqzalc
              | MipsInsBeqzc
              | MipsInsBgec
              | MipsInsBgeuc
              | MipsInsBgez
              | MipsInsBgezal
              | MipsInsBgezalc
              | MipsInsBgezall
              | MipsInsBgezals
              | MipsInsBgezc
              | MipsInsBgezl
              | MipsInsBgtz
              | MipsInsBgtzalc
              | MipsInsBgtzc
              | MipsInsBgtzl
              | MipsInsBinsli
              | MipsInsBinsl
              | MipsInsBinsri
              | MipsInsBinsr
              | MipsInsBitrev
              | MipsInsBitswap
              | MipsInsBlez
              | MipsInsBlezalc
              | MipsInsBlezc
              | MipsInsBlezl
              | MipsInsBltc
              | MipsInsBltuc
              | MipsInsBltz
              | MipsInsBltzal
              | MipsInsBltzalc
              | MipsInsBltzall
              | MipsInsBltzals
              | MipsInsBltzc
              | MipsInsBltzl
              | MipsInsBmnzi
              | MipsInsBmnz
              | MipsInsBmzi
              | MipsInsBmz
              | MipsInsBne
              | MipsInsBnec
              | MipsInsBnegi
              | MipsInsBneg
              | MipsInsBnel
              | MipsInsBnez16
              | MipsInsBnezalc
              | MipsInsBnezc
              | MipsInsBnvc
              | MipsInsBnz
              | MipsInsBovc
              | MipsInsBposge32
              | MipsInsBreak
              | MipsInsBreak16
              | MipsInsBseli
              | MipsInsBsel
              | MipsInsBseti
              | MipsInsBset
              | MipsInsBz
              | MipsInsBeqz
              | MipsInsB
              | MipsInsBnez
              | MipsInsBteqz
              | MipsInsBtnez
              | MipsInsCache
              | MipsInsCeil
              | MipsInsCeqi
              | MipsInsCeq
              | MipsInsCfc1
              | MipsInsCfcmsa
              | MipsInsCins
              | MipsInsCins32
              | MipsInsClass
              | MipsInsCleiS
              | MipsInsCleiU
              | MipsInsCleS
              | MipsInsCleU
              | MipsInsClo
              | MipsInsCltiS
              | MipsInsCltiU
              | MipsInsCltS
              | MipsInsCltU
              | MipsInsClz
              | MipsInsCmpgdu
              | MipsInsCmpgu
              | MipsInsCmpu
              | MipsInsCmp
              | MipsInsCopyS
              | MipsInsCopyU
              | MipsInsCtc1
              | MipsInsCtcmsa
              | MipsInsCvt
              | MipsInsC
              | MipsInsCmpi
              | MipsInsDadd
              | MipsInsDaddi
              | MipsInsDaddiu
              | MipsInsDaddu
              | MipsInsDahi
              | MipsInsDalign
              | MipsInsDati
              | MipsInsDaui
              | MipsInsDbitswap
              | MipsInsDclo
              | MipsInsDclz
              | MipsInsDdiv
              | MipsInsDdivu
              | MipsInsDeret
              | MipsInsDext
              | MipsInsDextm
              | MipsInsDextu
              | MipsInsDi
              | MipsInsDins
              | MipsInsDinsm
              | MipsInsDinsu
              | MipsInsDiv
              | MipsInsDivu
              | MipsInsDivS
              | MipsInsDivU
              | MipsInsDlsa
              | MipsInsDmfc0
              | MipsInsDmfc1
              | MipsInsDmfc2
              | MipsInsDmod
              | MipsInsDmodu
              | MipsInsDmtc0
              | MipsInsDmtc1
              | MipsInsDmtc2
              | MipsInsDmuh
              | MipsInsDmuhu
              | MipsInsDmul
              | MipsInsDmult
              | MipsInsDmultu
              | MipsInsDmulu
              | MipsInsDotpS
              | MipsInsDotpU
              | MipsInsDpaddS
              | MipsInsDpaddU
              | MipsInsDpaqxSa
              | MipsInsDpaqxS
              | MipsInsDpaqSa
              | MipsInsDpaqS
              | MipsInsDpau
              | MipsInsDpax
              | MipsInsDpa
              | MipsInsDpop
              | MipsInsDpsqxSa
              | MipsInsDpsqxS
              | MipsInsDpsqSa
              | MipsInsDpsqS
              | MipsInsDpsubS
              | MipsInsDpsubU
              | MipsInsDpsu
              | MipsInsDpsx
              | MipsInsDps
              | MipsInsDrotr
              | MipsInsDrotr32
              | MipsInsDrotrv
              | MipsInsDsbh
              | MipsInsDshd
              | MipsInsDsll
              | MipsInsDsll32
              | MipsInsDsllv
              | MipsInsDsra
              | MipsInsDsra32
              | MipsInsDsrav
              | MipsInsDsrl
              | MipsInsDsrl32
              | MipsInsDsrlv
              | MipsInsDsub
              | MipsInsDsubu
              | MipsInsEhb
              | MipsInsEi
              | MipsInsEret
              | MipsInsExt
              | MipsInsExtp
              | MipsInsExtpdp
              | MipsInsExtpdpv
              | MipsInsExtpv
              | MipsInsExtrvRs
              | MipsInsExtrvR
              | MipsInsExtrvS
              | MipsInsExtrv
              | MipsInsExtrRs
              | MipsInsExtrR
              | MipsInsExtrS
              | MipsInsExtr
              | MipsInsExts
              | MipsInsExts32
              | MipsInsAbs
              | MipsInsFadd
              | MipsInsFcaf
              | MipsInsFceq
              | MipsInsFclass
              | MipsInsFcle
              | MipsInsFclt
              | MipsInsFcne
              | MipsInsFcor
              | MipsInsFcueq
              | MipsInsFcule
              | MipsInsFcult
              | MipsInsFcune
              | MipsInsFcun
              | MipsInsFdiv
              | MipsInsFexdo
              | MipsInsFexp2
              | MipsInsFexupl
              | MipsInsFexupr
              | MipsInsFfintS
              | MipsInsFfintU
              | MipsInsFfql
              | MipsInsFfqr
              | MipsInsFill
              | MipsInsFlog2
              | MipsInsFloor
              | MipsInsFmadd
              | MipsInsFmaxA
              | MipsInsFmax
              | MipsInsFminA
              | MipsInsFmin
              | MipsInsMov
              | MipsInsFmsub
              | MipsInsFmul
              | MipsInsMul
              | MipsInsNeg
              | MipsInsFrcp
              | MipsInsFrint
              | MipsInsFrsqrt
              | MipsInsFsaf
              | MipsInsFseq
              | MipsInsFsle
              | MipsInsFslt
              | MipsInsFsne
              | MipsInsFsor
              | MipsInsFsqrt
              | MipsInsSqrt
              | MipsInsFsub
              | MipsInsSub
              | MipsInsFsueq
              | MipsInsFsule
              | MipsInsFsult
              | MipsInsFsune
              | MipsInsFsun
              | MipsInsFtintS
              | MipsInsFtintU
              | MipsInsFtq
              | MipsInsFtruncS
              | MipsInsFtruncU
              | MipsInsHaddS
              | MipsInsHaddU
              | MipsInsHsubS
              | MipsInsHsubU
              | MipsInsIlvev
              | MipsInsIlvl
              | MipsInsIlvod
              | MipsInsIlvr
              | MipsInsIns
              | MipsInsInsert
              | MipsInsInsv
              | MipsInsInsve
              | MipsInsJ
              | MipsInsJal
              | MipsInsJalr
              | MipsInsJalrs16
              | MipsInsJalrs
              | MipsInsJals
              | MipsInsJalx
              | MipsInsJialc
              | MipsInsJic
              | MipsInsJr
              | MipsInsJr16
              | MipsInsJraddiusp
              | MipsInsJrc
              | MipsInsJalrc
              | MipsInsLb
              | MipsInsLbu16
              | MipsInsLbux
              | MipsInsLbu
              | MipsInsLd
              | MipsInsLdc1
              | MipsInsLdc2
              | MipsInsLdc3
              | MipsInsLdi
              | MipsInsLdl
              | MipsInsLdpc
              | MipsInsLdr
              | MipsInsLdxc1
              | MipsInsLh
              | MipsInsLhu16
              | MipsInsLhx
              | MipsInsLhu
              | MipsInsLi16
              | MipsInsLl
              | MipsInsLld
              | MipsInsLsa
              | MipsInsLuxc1
              | MipsInsLui
              | MipsInsLw
              | MipsInsLw16
              | MipsInsLwc1
              | MipsInsLwc2
              | MipsInsLwc3
              | MipsInsLwl
              | MipsInsLwm16
              | MipsInsLwm32
              | MipsInsLwpc
              | MipsInsLwp
              | MipsInsLwr
              | MipsInsLwupc
              | MipsInsLwu
              | MipsInsLwx
              | MipsInsLwxc1
              | MipsInsLwxs
              | MipsInsLi
              | MipsInsMadd
              | MipsInsMaddf
              | MipsInsMaddrQ
              | MipsInsMaddu
              | MipsInsMaddv
              | MipsInsMaddQ
              | MipsInsMaqSa
              | MipsInsMaqS
              | MipsInsMaxa
              | MipsInsMaxiS
              | MipsInsMaxiU
              | MipsInsMaxA
              | MipsInsMax
              | MipsInsMaxS
              | MipsInsMaxU
              | MipsInsMfc0
              | MipsInsMfc1
              | MipsInsMfc2
              | MipsInsMfhc1
              | MipsInsMfhi
              | MipsInsMflo
              | MipsInsMina
              | MipsInsMiniS
              | MipsInsMiniU
              | MipsInsMinA
              | MipsInsMin
              | MipsInsMinS
              | MipsInsMinU
              | MipsInsMod
              | MipsInsModsub
              | MipsInsModu
              | MipsInsModS
              | MipsInsModU
              | MipsInsMove
              | MipsInsMovep
              | MipsInsMovf
              | MipsInsMovn
              | MipsInsMovt
              | MipsInsMovz
              | MipsInsMsub
              | MipsInsMsubf
              | MipsInsMsubrQ
              | MipsInsMsubu
              | MipsInsMsubv
              | MipsInsMsubQ
              | MipsInsMtc0
              | MipsInsMtc1
              | MipsInsMtc2
              | MipsInsMthc1
              | MipsInsMthi
              | MipsInsMthlip
              | MipsInsMtlo
              | MipsInsMtm0
              | MipsInsMtm1
              | MipsInsMtm2
              | MipsInsMtp0
              | MipsInsMtp1
              | MipsInsMtp2
              | MipsInsMuh
              | MipsInsMuhu
              | MipsInsMuleqS
              | MipsInsMuleuS
              | MipsInsMulqRs
              | MipsInsMulqS
              | MipsInsMulrQ
              | MipsInsMulsaqS
              | MipsInsMulsa
              | MipsInsMult
              | MipsInsMultu
              | MipsInsMulu
              | MipsInsMulv
              | MipsInsMulQ
              | MipsInsMulS
              | MipsInsNloc
              | MipsInsNlzc
              | MipsInsNmadd
              | MipsInsNmsub
              | MipsInsNor
              | MipsInsNori
              | MipsInsNot16
              | MipsInsNot
              | MipsInsOr
              | MipsInsOr16
              | MipsInsOri
              | MipsInsPackrl
              | MipsInsPause
              | MipsInsPckev
              | MipsInsPckod
              | MipsInsPcnt
              | MipsInsPick
              | MipsInsPop
              | MipsInsPrecequ
              | MipsInsPreceq
              | MipsInsPreceu
              | MipsInsPrecrquS
              | MipsInsPrecrq
              | MipsInsPrecrqRs
              | MipsInsPrecr
              | MipsInsPrecrSra
              | MipsInsPrecrSraR
              | MipsInsPref
              | MipsInsPrepend
              | MipsInsRaddu
              | MipsInsRddsp
              | MipsInsRdhwr
              | MipsInsReplv
              | MipsInsRepl
              | MipsInsRint
              | MipsInsRotr
              | MipsInsRotrv
              | MipsInsRound
              | MipsInsSatS
              | MipsInsSatU
              | MipsInsSb
              | MipsInsSb16
              | MipsInsSc
              | MipsInsScd
              | MipsInsSd
              | MipsInsSdbbp
              | MipsInsSdbbp16
              | MipsInsSdc1
              | MipsInsSdc2
              | MipsInsSdc3
              | MipsInsSdl
              | MipsInsSdr
              | MipsInsSdxc1
              | MipsInsSeb
              | MipsInsSeh
              | MipsInsSeleqz
              | MipsInsSelnez
              | MipsInsSel
              | MipsInsSeq
              | MipsInsSeqi
              | MipsInsSh
              | MipsInsSh16
              | MipsInsShf
              | MipsInsShilo
              | MipsInsShilov
              | MipsInsShllv
              | MipsInsShllvS
              | MipsInsShll
              | MipsInsShllS
              | MipsInsShrav
              | MipsInsShravR
              | MipsInsShra
              | MipsInsShraR
              | MipsInsShrlv
              | MipsInsShrl
              | MipsInsSldi
              | MipsInsSld
              | MipsInsSll
              | MipsInsSll16
              | MipsInsSlli
              | MipsInsSllv
              | MipsInsSlt
              | MipsInsSlti
              | MipsInsSltiu
              | MipsInsSltu
              | MipsInsSne
              | MipsInsSnei
              | MipsInsSplati
              | MipsInsSplat
              | MipsInsSra
              | MipsInsSrai
              | MipsInsSrari
              | MipsInsSrar
              | MipsInsSrav
              | MipsInsSrl
              | MipsInsSrl16
              | MipsInsSrli
              | MipsInsSrlri
              | MipsInsSrlr
              | MipsInsSrlv
              | MipsInsSsnop
              | MipsInsSt
              | MipsInsSubqh
              | MipsInsSubqhR
              | MipsInsSubq
              | MipsInsSubqS
              | MipsInsSubsusU
              | MipsInsSubsuuS
              | MipsInsSubsS
              | MipsInsSubsU
              | MipsInsSubu16
              | MipsInsSubuh
              | MipsInsSubuhR
              | MipsInsSubu
              | MipsInsSubuS
              | MipsInsSubvi
              | MipsInsSubv
              | MipsInsSuxc1
              | MipsInsSw
              | MipsInsSw16
              | MipsInsSwc1
              | MipsInsSwc2
              | MipsInsSwc3
              | MipsInsSwl
              | MipsInsSwm16
              | MipsInsSwm32
              | MipsInsSwp
              | MipsInsSwr
              | MipsInsSwxc1
              | MipsInsSync
              | MipsInsSynci
              | MipsInsSyscall
              | MipsInsTeq
              | MipsInsTeqi
              | MipsInsTge
              | MipsInsTgei
              | MipsInsTgeiu
              | MipsInsTgeu
              | MipsInsTlbp
              | MipsInsTlbr
              | MipsInsTlbwi
              | MipsInsTlbwr
              | MipsInsTlt
              | MipsInsTlti
              | MipsInsTltiu
              | MipsInsTltu
              | MipsInsTne
              | MipsInsTnei
              | MipsInsTrunc
              | MipsInsV3mulu
              | MipsInsVmm0
              | MipsInsVmulu
              | MipsInsVshf
              | MipsInsWait
              | MipsInsWrdsp
              | MipsInsWsbh
              | MipsInsXor
              | MipsInsXor16
              | MipsInsXori
              | MipsInsNop
              | MipsInsNegu
              | MipsInsJalrHb
              | MipsInsJrHb
              | MipsInsEnding
  deriving (Show,Eq,Bounded)
instance Enum MipsInsn where
  succ MipsInsInvalid = MipsInsAbsqS
  succ MipsInsAbsqS = MipsInsAdd
  succ MipsInsAdd = MipsInsAddiupc
  succ MipsInsAddiupc = MipsInsAddiur1sp
  succ MipsInsAddiur1sp = MipsInsAddiur2
  succ MipsInsAddiur2 = MipsInsAddius5
  succ MipsInsAddius5 = MipsInsAddiusp
  succ MipsInsAddiusp = MipsInsAddqh
  succ MipsInsAddqh = MipsInsAddqhR
  succ MipsInsAddqhR = MipsInsAddq
  succ MipsInsAddq = MipsInsAddqS
  succ MipsInsAddqS = MipsInsAddsc
  succ MipsInsAddsc = MipsInsAddsA
  succ MipsInsAddsA = MipsInsAddsS
  succ MipsInsAddsS = MipsInsAddsU
  succ MipsInsAddsU = MipsInsAddu16
  succ MipsInsAddu16 = MipsInsAdduh
  succ MipsInsAdduh = MipsInsAdduhR
  succ MipsInsAdduhR = MipsInsAddu
  succ MipsInsAddu = MipsInsAdduS
  succ MipsInsAdduS = MipsInsAddvi
  succ MipsInsAddvi = MipsInsAddv
  succ MipsInsAddv = MipsInsAddwc
  succ MipsInsAddwc = MipsInsAddA
  succ MipsInsAddA = MipsInsAddi
  succ MipsInsAddi = MipsInsAddiu
  succ MipsInsAddiu = MipsInsAlign
  succ MipsInsAlign = MipsInsAluipc
  succ MipsInsAluipc = MipsInsAnd
  succ MipsInsAnd = MipsInsAnd16
  succ MipsInsAnd16 = MipsInsAndi16
  succ MipsInsAndi16 = MipsInsAndi
  succ MipsInsAndi = MipsInsAppend
  succ MipsInsAppend = MipsInsAsubS
  succ MipsInsAsubS = MipsInsAsubU
  succ MipsInsAsubU = MipsInsAui
  succ MipsInsAui = MipsInsAuipc
  succ MipsInsAuipc = MipsInsAverS
  succ MipsInsAverS = MipsInsAverU
  succ MipsInsAverU = MipsInsAveS
  succ MipsInsAveS = MipsInsAveU
  succ MipsInsAveU = MipsInsB16
  succ MipsInsB16 = MipsInsBaddu
  succ MipsInsBaddu = MipsInsBal
  succ MipsInsBal = MipsInsBalc
  succ MipsInsBalc = MipsInsBalign
  succ MipsInsBalign = MipsInsBbit0
  succ MipsInsBbit0 = MipsInsBbit032
  succ MipsInsBbit032 = MipsInsBbit1
  succ MipsInsBbit1 = MipsInsBbit132
  succ MipsInsBbit132 = MipsInsBc
  succ MipsInsBc = MipsInsBc0f
  succ MipsInsBc0f = MipsInsBc0fl
  succ MipsInsBc0fl = MipsInsBc0t
  succ MipsInsBc0t = MipsInsBc0tl
  succ MipsInsBc0tl = MipsInsBc1eqz
  succ MipsInsBc1eqz = MipsInsBc1f
  succ MipsInsBc1f = MipsInsBc1fl
  succ MipsInsBc1fl = MipsInsBc1nez
  succ MipsInsBc1nez = MipsInsBc1t
  succ MipsInsBc1t = MipsInsBc1tl
  succ MipsInsBc1tl = MipsInsBc2eqz
  succ MipsInsBc2eqz = MipsInsBc2f
  succ MipsInsBc2f = MipsInsBc2fl
  succ MipsInsBc2fl = MipsInsBc2nez
  succ MipsInsBc2nez = MipsInsBc2t
  succ MipsInsBc2t = MipsInsBc2tl
  succ MipsInsBc2tl = MipsInsBc3f
  succ MipsInsBc3f = MipsInsBc3fl
  succ MipsInsBc3fl = MipsInsBc3t
  succ MipsInsBc3t = MipsInsBc3tl
  succ MipsInsBc3tl = MipsInsBclri
  succ MipsInsBclri = MipsInsBclr
  succ MipsInsBclr = MipsInsBeq
  succ MipsInsBeq = MipsInsBeqc
  succ MipsInsBeqc = MipsInsBeql
  succ MipsInsBeql = MipsInsBeqz16
  succ MipsInsBeqz16 = MipsInsBeqzalc
  succ MipsInsBeqzalc = MipsInsBeqzc
  succ MipsInsBeqzc = MipsInsBgec
  succ MipsInsBgec = MipsInsBgeuc
  succ MipsInsBgeuc = MipsInsBgez
  succ MipsInsBgez = MipsInsBgezal
  succ MipsInsBgezal = MipsInsBgezalc
  succ MipsInsBgezalc = MipsInsBgezall
  succ MipsInsBgezall = MipsInsBgezals
  succ MipsInsBgezals = MipsInsBgezc
  succ MipsInsBgezc = MipsInsBgezl
  succ MipsInsBgezl = MipsInsBgtz
  succ MipsInsBgtz = MipsInsBgtzalc
  succ MipsInsBgtzalc = MipsInsBgtzc
  succ MipsInsBgtzc = MipsInsBgtzl
  succ MipsInsBgtzl = MipsInsBinsli
  succ MipsInsBinsli = MipsInsBinsl
  succ MipsInsBinsl = MipsInsBinsri
  succ MipsInsBinsri = MipsInsBinsr
  succ MipsInsBinsr = MipsInsBitrev
  succ MipsInsBitrev = MipsInsBitswap
  succ MipsInsBitswap = MipsInsBlez
  succ MipsInsBlez = MipsInsBlezalc
  succ MipsInsBlezalc = MipsInsBlezc
  succ MipsInsBlezc = MipsInsBlezl
  succ MipsInsBlezl = MipsInsBltc
  succ MipsInsBltc = MipsInsBltuc
  succ MipsInsBltuc = MipsInsBltz
  succ MipsInsBltz = MipsInsBltzal
  succ MipsInsBltzal = MipsInsBltzalc
  succ MipsInsBltzalc = MipsInsBltzall
  succ MipsInsBltzall = MipsInsBltzals
  succ MipsInsBltzals = MipsInsBltzc
  succ MipsInsBltzc = MipsInsBltzl
  succ MipsInsBltzl = MipsInsBmnzi
  succ MipsInsBmnzi = MipsInsBmnz
  succ MipsInsBmnz = MipsInsBmzi
  succ MipsInsBmzi = MipsInsBmz
  succ MipsInsBmz = MipsInsBne
  succ MipsInsBne = MipsInsBnec
  succ MipsInsBnec = MipsInsBnegi
  succ MipsInsBnegi = MipsInsBneg
  succ MipsInsBneg = MipsInsBnel
  succ MipsInsBnel = MipsInsBnez16
  succ MipsInsBnez16 = MipsInsBnezalc
  succ MipsInsBnezalc = MipsInsBnezc
  succ MipsInsBnezc = MipsInsBnvc
  succ MipsInsBnvc = MipsInsBnz
  succ MipsInsBnz = MipsInsBovc
  succ MipsInsBovc = MipsInsBposge32
  succ MipsInsBposge32 = MipsInsBreak
  succ MipsInsBreak = MipsInsBreak16
  succ MipsInsBreak16 = MipsInsBseli
  succ MipsInsBseli = MipsInsBsel
  succ MipsInsBsel = MipsInsBseti
  succ MipsInsBseti = MipsInsBset
  succ MipsInsBset = MipsInsBz
  succ MipsInsBz = MipsInsBeqz
  succ MipsInsBeqz = MipsInsB
  succ MipsInsB = MipsInsBnez
  succ MipsInsBnez = MipsInsBteqz
  succ MipsInsBteqz = MipsInsBtnez
  succ MipsInsBtnez = MipsInsCache
  succ MipsInsCache = MipsInsCeil
  succ MipsInsCeil = MipsInsCeqi
  succ MipsInsCeqi = MipsInsCeq
  succ MipsInsCeq = MipsInsCfc1
  succ MipsInsCfc1 = MipsInsCfcmsa
  succ MipsInsCfcmsa = MipsInsCins
  succ MipsInsCins = MipsInsCins32
  succ MipsInsCins32 = MipsInsClass
  succ MipsInsClass = MipsInsCleiS
  succ MipsInsCleiS = MipsInsCleiU
  succ MipsInsCleiU = MipsInsCleS
  succ MipsInsCleS = MipsInsCleU
  succ MipsInsCleU = MipsInsClo
  succ MipsInsClo = MipsInsCltiS
  succ MipsInsCltiS = MipsInsCltiU
  succ MipsInsCltiU = MipsInsCltS
  succ MipsInsCltS = MipsInsCltU
  succ MipsInsCltU = MipsInsClz
  succ MipsInsClz = MipsInsCmpgdu
  succ MipsInsCmpgdu = MipsInsCmpgu
  succ MipsInsCmpgu = MipsInsCmpu
  succ MipsInsCmpu = MipsInsCmp
  succ MipsInsCmp = MipsInsCopyS
  succ MipsInsCopyS = MipsInsCopyU
  succ MipsInsCopyU = MipsInsCtc1
  succ MipsInsCtc1 = MipsInsCtcmsa
  succ MipsInsCtcmsa = MipsInsCvt
  succ MipsInsCvt = MipsInsC
  succ MipsInsC = MipsInsCmpi
  succ MipsInsCmpi = MipsInsDadd
  succ MipsInsDadd = MipsInsDaddi
  succ MipsInsDaddi = MipsInsDaddiu
  succ MipsInsDaddiu = MipsInsDaddu
  succ MipsInsDaddu = MipsInsDahi
  succ MipsInsDahi = MipsInsDalign
  succ MipsInsDalign = MipsInsDati
  succ MipsInsDati = MipsInsDaui
  succ MipsInsDaui = MipsInsDbitswap
  succ MipsInsDbitswap = MipsInsDclo
  succ MipsInsDclo = MipsInsDclz
  succ MipsInsDclz = MipsInsDdiv
  succ MipsInsDdiv = MipsInsDdivu
  succ MipsInsDdivu = MipsInsDeret
  succ MipsInsDeret = MipsInsDext
  succ MipsInsDext = MipsInsDextm
  succ MipsInsDextm = MipsInsDextu
  succ MipsInsDextu = MipsInsDi
  succ MipsInsDi = MipsInsDins
  succ MipsInsDins = MipsInsDinsm
  succ MipsInsDinsm = MipsInsDinsu
  succ MipsInsDinsu = MipsInsDiv
  succ MipsInsDiv = MipsInsDivu
  succ MipsInsDivu = MipsInsDivS
  succ MipsInsDivS = MipsInsDivU
  succ MipsInsDivU = MipsInsDlsa
  succ MipsInsDlsa = MipsInsDmfc0
  succ MipsInsDmfc0 = MipsInsDmfc1
  succ MipsInsDmfc1 = MipsInsDmfc2
  succ MipsInsDmfc2 = MipsInsDmod
  succ MipsInsDmod = MipsInsDmodu
  succ MipsInsDmodu = MipsInsDmtc0
  succ MipsInsDmtc0 = MipsInsDmtc1
  succ MipsInsDmtc1 = MipsInsDmtc2
  succ MipsInsDmtc2 = MipsInsDmuh
  succ MipsInsDmuh = MipsInsDmuhu
  succ MipsInsDmuhu = MipsInsDmul
  succ MipsInsDmul = MipsInsDmult
  succ MipsInsDmult = MipsInsDmultu
  succ MipsInsDmultu = MipsInsDmulu
  succ MipsInsDmulu = MipsInsDotpS
  succ MipsInsDotpS = MipsInsDotpU
  succ MipsInsDotpU = MipsInsDpaddS
  succ MipsInsDpaddS = MipsInsDpaddU
  succ MipsInsDpaddU = MipsInsDpaqxSa
  succ MipsInsDpaqxSa = MipsInsDpaqxS
  succ MipsInsDpaqxS = MipsInsDpaqSa
  succ MipsInsDpaqSa = MipsInsDpaqS
  succ MipsInsDpaqS = MipsInsDpau
  succ MipsInsDpau = MipsInsDpax
  succ MipsInsDpax = MipsInsDpa
  succ MipsInsDpa = MipsInsDpop
  succ MipsInsDpop = MipsInsDpsqxSa
  succ MipsInsDpsqxSa = MipsInsDpsqxS
  succ MipsInsDpsqxS = MipsInsDpsqSa
  succ MipsInsDpsqSa = MipsInsDpsqS
  succ MipsInsDpsqS = MipsInsDpsubS
  succ MipsInsDpsubS = MipsInsDpsubU
  succ MipsInsDpsubU = MipsInsDpsu
  succ MipsInsDpsu = MipsInsDpsx
  succ MipsInsDpsx = MipsInsDps
  succ MipsInsDps = MipsInsDrotr
  succ MipsInsDrotr = MipsInsDrotr32
  succ MipsInsDrotr32 = MipsInsDrotrv
  succ MipsInsDrotrv = MipsInsDsbh
  succ MipsInsDsbh = MipsInsDshd
  succ MipsInsDshd = MipsInsDsll
  succ MipsInsDsll = MipsInsDsll32
  succ MipsInsDsll32 = MipsInsDsllv
  succ MipsInsDsllv = MipsInsDsra
  succ MipsInsDsra = MipsInsDsra32
  succ MipsInsDsra32 = MipsInsDsrav
  succ MipsInsDsrav = MipsInsDsrl
  succ MipsInsDsrl = MipsInsDsrl32
  succ MipsInsDsrl32 = MipsInsDsrlv
  succ MipsInsDsrlv = MipsInsDsub
  succ MipsInsDsub = MipsInsDsubu
  succ MipsInsDsubu = MipsInsEhb
  succ MipsInsEhb = MipsInsEi
  succ MipsInsEi = MipsInsEret
  succ MipsInsEret = MipsInsExt
  succ MipsInsExt = MipsInsExtp
  succ MipsInsExtp = MipsInsExtpdp
  succ MipsInsExtpdp = MipsInsExtpdpv
  succ MipsInsExtpdpv = MipsInsExtpv
  succ MipsInsExtpv = MipsInsExtrvRs
  succ MipsInsExtrvRs = MipsInsExtrvR
  succ MipsInsExtrvR = MipsInsExtrvS
  succ MipsInsExtrvS = MipsInsExtrv
  succ MipsInsExtrv = MipsInsExtrRs
  succ MipsInsExtrRs = MipsInsExtrR
  succ MipsInsExtrR = MipsInsExtrS
  succ MipsInsExtrS = MipsInsExtr
  succ MipsInsExtr = MipsInsExts
  succ MipsInsExts = MipsInsExts32
  succ MipsInsExts32 = MipsInsAbs
  succ MipsInsAbs = MipsInsFadd
  succ MipsInsFadd = MipsInsFcaf
  succ MipsInsFcaf = MipsInsFceq
  succ MipsInsFceq = MipsInsFclass
  succ MipsInsFclass = MipsInsFcle
  succ MipsInsFcle = MipsInsFclt
  succ MipsInsFclt = MipsInsFcne
  succ MipsInsFcne = MipsInsFcor
  succ MipsInsFcor = MipsInsFcueq
  succ MipsInsFcueq = MipsInsFcule
  succ MipsInsFcule = MipsInsFcult
  succ MipsInsFcult = MipsInsFcune
  succ MipsInsFcune = MipsInsFcun
  succ MipsInsFcun = MipsInsFdiv
  succ MipsInsFdiv = MipsInsFexdo
  succ MipsInsFexdo = MipsInsFexp2
  succ MipsInsFexp2 = MipsInsFexupl
  succ MipsInsFexupl = MipsInsFexupr
  succ MipsInsFexupr = MipsInsFfintS
  succ MipsInsFfintS = MipsInsFfintU
  succ MipsInsFfintU = MipsInsFfql
  succ MipsInsFfql = MipsInsFfqr
  succ MipsInsFfqr = MipsInsFill
  succ MipsInsFill = MipsInsFlog2
  succ MipsInsFlog2 = MipsInsFloor
  succ MipsInsFloor = MipsInsFmadd
  succ MipsInsFmadd = MipsInsFmaxA
  succ MipsInsFmaxA = MipsInsFmax
  succ MipsInsFmax = MipsInsFminA
  succ MipsInsFminA = MipsInsFmin
  succ MipsInsFmin = MipsInsMov
  succ MipsInsMov = MipsInsFmsub
  succ MipsInsFmsub = MipsInsFmul
  succ MipsInsFmul = MipsInsMul
  succ MipsInsMul = MipsInsNeg
  succ MipsInsNeg = MipsInsFrcp
  succ MipsInsFrcp = MipsInsFrint
  succ MipsInsFrint = MipsInsFrsqrt
  succ MipsInsFrsqrt = MipsInsFsaf
  succ MipsInsFsaf = MipsInsFseq
  succ MipsInsFseq = MipsInsFsle
  succ MipsInsFsle = MipsInsFslt
  succ MipsInsFslt = MipsInsFsne
  succ MipsInsFsne = MipsInsFsor
  succ MipsInsFsor = MipsInsFsqrt
  succ MipsInsFsqrt = MipsInsSqrt
  succ MipsInsSqrt = MipsInsFsub
  succ MipsInsFsub = MipsInsSub
  succ MipsInsSub = MipsInsFsueq
  succ MipsInsFsueq = MipsInsFsule
  succ MipsInsFsule = MipsInsFsult
  succ MipsInsFsult = MipsInsFsune
  succ MipsInsFsune = MipsInsFsun
  succ MipsInsFsun = MipsInsFtintS
  succ MipsInsFtintS = MipsInsFtintU
  succ MipsInsFtintU = MipsInsFtq
  succ MipsInsFtq = MipsInsFtruncS
  succ MipsInsFtruncS = MipsInsFtruncU
  succ MipsInsFtruncU = MipsInsHaddS
  succ MipsInsHaddS = MipsInsHaddU
  succ MipsInsHaddU = MipsInsHsubS
  succ MipsInsHsubS = MipsInsHsubU
  succ MipsInsHsubU = MipsInsIlvev
  succ MipsInsIlvev = MipsInsIlvl
  succ MipsInsIlvl = MipsInsIlvod
  succ MipsInsIlvod = MipsInsIlvr
  succ MipsInsIlvr = MipsInsIns
  succ MipsInsIns = MipsInsInsert
  succ MipsInsInsert = MipsInsInsv
  succ MipsInsInsv = MipsInsInsve
  succ MipsInsInsve = MipsInsJ
  succ MipsInsJ = MipsInsJal
  succ MipsInsJal = MipsInsJalr
  succ MipsInsJalr = MipsInsJalrs16
  succ MipsInsJalrs16 = MipsInsJalrs
  succ MipsInsJalrs = MipsInsJals
  succ MipsInsJals = MipsInsJalx
  succ MipsInsJalx = MipsInsJialc
  succ MipsInsJialc = MipsInsJic
  succ MipsInsJic = MipsInsJr
  succ MipsInsJr = MipsInsJr16
  succ MipsInsJr16 = MipsInsJraddiusp
  succ MipsInsJraddiusp = MipsInsJrc
  succ MipsInsJrc = MipsInsJalrc
  succ MipsInsJalrc = MipsInsLb
  succ MipsInsLb = MipsInsLbu16
  succ MipsInsLbu16 = MipsInsLbux
  succ MipsInsLbux = MipsInsLbu
  succ MipsInsLbu = MipsInsLd
  succ MipsInsLd = MipsInsLdc1
  succ MipsInsLdc1 = MipsInsLdc2
  succ MipsInsLdc2 = MipsInsLdc3
  succ MipsInsLdc3 = MipsInsLdi
  succ MipsInsLdi = MipsInsLdl
  succ MipsInsLdl = MipsInsLdpc
  succ MipsInsLdpc = MipsInsLdr
  succ MipsInsLdr = MipsInsLdxc1
  succ MipsInsLdxc1 = MipsInsLh
  succ MipsInsLh = MipsInsLhu16
  succ MipsInsLhu16 = MipsInsLhx
  succ MipsInsLhx = MipsInsLhu
  succ MipsInsLhu = MipsInsLi16
  succ MipsInsLi16 = MipsInsLl
  succ MipsInsLl = MipsInsLld
  succ MipsInsLld = MipsInsLsa
  succ MipsInsLsa = MipsInsLuxc1
  succ MipsInsLuxc1 = MipsInsLui
  succ MipsInsLui = MipsInsLw
  succ MipsInsLw = MipsInsLw16
  succ MipsInsLw16 = MipsInsLwc1
  succ MipsInsLwc1 = MipsInsLwc2
  succ MipsInsLwc2 = MipsInsLwc3
  succ MipsInsLwc3 = MipsInsLwl
  succ MipsInsLwl = MipsInsLwm16
  succ MipsInsLwm16 = MipsInsLwm32
  succ MipsInsLwm32 = MipsInsLwpc
  succ MipsInsLwpc = MipsInsLwp
  succ MipsInsLwp = MipsInsLwr
  succ MipsInsLwr = MipsInsLwupc
  succ MipsInsLwupc = MipsInsLwu
  succ MipsInsLwu = MipsInsLwx
  succ MipsInsLwx = MipsInsLwxc1
  succ MipsInsLwxc1 = MipsInsLwxs
  succ MipsInsLwxs = MipsInsLi
  succ MipsInsLi = MipsInsMadd
  succ MipsInsMadd = MipsInsMaddf
  succ MipsInsMaddf = MipsInsMaddrQ
  succ MipsInsMaddrQ = MipsInsMaddu
  succ MipsInsMaddu = MipsInsMaddv
  succ MipsInsMaddv = MipsInsMaddQ
  succ MipsInsMaddQ = MipsInsMaqSa
  succ MipsInsMaqSa = MipsInsMaqS
  succ MipsInsMaqS = MipsInsMaxa
  succ MipsInsMaxa = MipsInsMaxiS
  succ MipsInsMaxiS = MipsInsMaxiU
  succ MipsInsMaxiU = MipsInsMaxA
  succ MipsInsMaxA = MipsInsMax
  succ MipsInsMax = MipsInsMaxS
  succ MipsInsMaxS = MipsInsMaxU
  succ MipsInsMaxU = MipsInsMfc0
  succ MipsInsMfc0 = MipsInsMfc1
  succ MipsInsMfc1 = MipsInsMfc2
  succ MipsInsMfc2 = MipsInsMfhc1
  succ MipsInsMfhc1 = MipsInsMfhi
  succ MipsInsMfhi = MipsInsMflo
  succ MipsInsMflo = MipsInsMina
  succ MipsInsMina = MipsInsMiniS
  succ MipsInsMiniS = MipsInsMiniU
  succ MipsInsMiniU = MipsInsMinA
  succ MipsInsMinA = MipsInsMin
  succ MipsInsMin = MipsInsMinS
  succ MipsInsMinS = MipsInsMinU
  succ MipsInsMinU = MipsInsMod
  succ MipsInsMod = MipsInsModsub
  succ MipsInsModsub = MipsInsModu
  succ MipsInsModu = MipsInsModS
  succ MipsInsModS = MipsInsModU
  succ MipsInsModU = MipsInsMove
  succ MipsInsMove = MipsInsMovep
  succ MipsInsMovep = MipsInsMovf
  succ MipsInsMovf = MipsInsMovn
  succ MipsInsMovn = MipsInsMovt
  succ MipsInsMovt = MipsInsMovz
  succ MipsInsMovz = MipsInsMsub
  succ MipsInsMsub = MipsInsMsubf
  succ MipsInsMsubf = MipsInsMsubrQ
  succ MipsInsMsubrQ = MipsInsMsubu
  succ MipsInsMsubu = MipsInsMsubv
  succ MipsInsMsubv = MipsInsMsubQ
  succ MipsInsMsubQ = MipsInsMtc0
  succ MipsInsMtc0 = MipsInsMtc1
  succ MipsInsMtc1 = MipsInsMtc2
  succ MipsInsMtc2 = MipsInsMthc1
  succ MipsInsMthc1 = MipsInsMthi
  succ MipsInsMthi = MipsInsMthlip
  succ MipsInsMthlip = MipsInsMtlo
  succ MipsInsMtlo = MipsInsMtm0
  succ MipsInsMtm0 = MipsInsMtm1
  succ MipsInsMtm1 = MipsInsMtm2
  succ MipsInsMtm2 = MipsInsMtp0
  succ MipsInsMtp0 = MipsInsMtp1
  succ MipsInsMtp1 = MipsInsMtp2
  succ MipsInsMtp2 = MipsInsMuh
  succ MipsInsMuh = MipsInsMuhu
  succ MipsInsMuhu = MipsInsMuleqS
  succ MipsInsMuleqS = MipsInsMuleuS
  succ MipsInsMuleuS = MipsInsMulqRs
  succ MipsInsMulqRs = MipsInsMulqS
  succ MipsInsMulqS = MipsInsMulrQ
  succ MipsInsMulrQ = MipsInsMulsaqS
  succ MipsInsMulsaqS = MipsInsMulsa
  succ MipsInsMulsa = MipsInsMult
  succ MipsInsMult = MipsInsMultu
  succ MipsInsMultu = MipsInsMulu
  succ MipsInsMulu = MipsInsMulv
  succ MipsInsMulv = MipsInsMulQ
  succ MipsInsMulQ = MipsInsMulS
  succ MipsInsMulS = MipsInsNloc
  succ MipsInsNloc = MipsInsNlzc
  succ MipsInsNlzc = MipsInsNmadd
  succ MipsInsNmadd = MipsInsNmsub
  succ MipsInsNmsub = MipsInsNor
  succ MipsInsNor = MipsInsNori
  succ MipsInsNori = MipsInsNot16
  succ MipsInsNot16 = MipsInsNot
  succ MipsInsNot = MipsInsOr
  succ MipsInsOr = MipsInsOr16
  succ MipsInsOr16 = MipsInsOri
  succ MipsInsOri = MipsInsPackrl
  succ MipsInsPackrl = MipsInsPause
  succ MipsInsPause = MipsInsPckev
  succ MipsInsPckev = MipsInsPckod
  succ MipsInsPckod = MipsInsPcnt
  succ MipsInsPcnt = MipsInsPick
  succ MipsInsPick = MipsInsPop
  succ MipsInsPop = MipsInsPrecequ
  succ MipsInsPrecequ = MipsInsPreceq
  succ MipsInsPreceq = MipsInsPreceu
  succ MipsInsPreceu = MipsInsPrecrquS
  succ MipsInsPrecrquS = MipsInsPrecrq
  succ MipsInsPrecrq = MipsInsPrecrqRs
  succ MipsInsPrecrqRs = MipsInsPrecr
  succ MipsInsPrecr = MipsInsPrecrSra
  succ MipsInsPrecrSra = MipsInsPrecrSraR
  succ MipsInsPrecrSraR = MipsInsPref
  succ MipsInsPref = MipsInsPrepend
  succ MipsInsPrepend = MipsInsRaddu
  succ MipsInsRaddu = MipsInsRddsp
  succ MipsInsRddsp = MipsInsRdhwr
  succ MipsInsRdhwr = MipsInsReplv
  succ MipsInsReplv = MipsInsRepl
  succ MipsInsRepl = MipsInsRint
  succ MipsInsRint = MipsInsRotr
  succ MipsInsRotr = MipsInsRotrv
  succ MipsInsRotrv = MipsInsRound
  succ MipsInsRound = MipsInsSatS
  succ MipsInsSatS = MipsInsSatU
  succ MipsInsSatU = MipsInsSb
  succ MipsInsSb = MipsInsSb16
  succ MipsInsSb16 = MipsInsSc
  succ MipsInsSc = MipsInsScd
  succ MipsInsScd = MipsInsSd
  succ MipsInsSd = MipsInsSdbbp
  succ MipsInsSdbbp = MipsInsSdbbp16
  succ MipsInsSdbbp16 = MipsInsSdc1
  succ MipsInsSdc1 = MipsInsSdc2
  succ MipsInsSdc2 = MipsInsSdc3
  succ MipsInsSdc3 = MipsInsSdl
  succ MipsInsSdl = MipsInsSdr
  succ MipsInsSdr = MipsInsSdxc1
  succ MipsInsSdxc1 = MipsInsSeb
  succ MipsInsSeb = MipsInsSeh
  succ MipsInsSeh = MipsInsSeleqz
  succ MipsInsSeleqz = MipsInsSelnez
  succ MipsInsSelnez = MipsInsSel
  succ MipsInsSel = MipsInsSeq
  succ MipsInsSeq = MipsInsSeqi
  succ MipsInsSeqi = MipsInsSh
  succ MipsInsSh = MipsInsSh16
  succ MipsInsSh16 = MipsInsShf
  succ MipsInsShf = MipsInsShilo
  succ MipsInsShilo = MipsInsShilov
  succ MipsInsShilov = MipsInsShllv
  succ MipsInsShllv = MipsInsShllvS
  succ MipsInsShllvS = MipsInsShll
  succ MipsInsShll = MipsInsShllS
  succ MipsInsShllS = MipsInsShrav
  succ MipsInsShrav = MipsInsShravR
  succ MipsInsShravR = MipsInsShra
  succ MipsInsShra = MipsInsShraR
  succ MipsInsShraR = MipsInsShrlv
  succ MipsInsShrlv = MipsInsShrl
  succ MipsInsShrl = MipsInsSldi
  succ MipsInsSldi = MipsInsSld
  succ MipsInsSld = MipsInsSll
  succ MipsInsSll = MipsInsSll16
  succ MipsInsSll16 = MipsInsSlli
  succ MipsInsSlli = MipsInsSllv
  succ MipsInsSllv = MipsInsSlt
  succ MipsInsSlt = MipsInsSlti
  succ MipsInsSlti = MipsInsSltiu
  succ MipsInsSltiu = MipsInsSltu
  succ MipsInsSltu = MipsInsSne
  succ MipsInsSne = MipsInsSnei
  succ MipsInsSnei = MipsInsSplati
  succ MipsInsSplati = MipsInsSplat
  succ MipsInsSplat = MipsInsSra
  succ MipsInsSra = MipsInsSrai
  succ MipsInsSrai = MipsInsSrari
  succ MipsInsSrari = MipsInsSrar
  succ MipsInsSrar = MipsInsSrav
  succ MipsInsSrav = MipsInsSrl
  succ MipsInsSrl = MipsInsSrl16
  succ MipsInsSrl16 = MipsInsSrli
  succ MipsInsSrli = MipsInsSrlri
  succ MipsInsSrlri = MipsInsSrlr
  succ MipsInsSrlr = MipsInsSrlv
  succ MipsInsSrlv = MipsInsSsnop
  succ MipsInsSsnop = MipsInsSt
  succ MipsInsSt = MipsInsSubqh
  succ MipsInsSubqh = MipsInsSubqhR
  succ MipsInsSubqhR = MipsInsSubq
  succ MipsInsSubq = MipsInsSubqS
  succ MipsInsSubqS = MipsInsSubsusU
  succ MipsInsSubsusU = MipsInsSubsuuS
  succ MipsInsSubsuuS = MipsInsSubsS
  succ MipsInsSubsS = MipsInsSubsU
  succ MipsInsSubsU = MipsInsSubu16
  succ MipsInsSubu16 = MipsInsSubuh
  succ MipsInsSubuh = MipsInsSubuhR
  succ MipsInsSubuhR = MipsInsSubu
  succ MipsInsSubu = MipsInsSubuS
  succ MipsInsSubuS = MipsInsSubvi
  succ MipsInsSubvi = MipsInsSubv
  succ MipsInsSubv = MipsInsSuxc1
  succ MipsInsSuxc1 = MipsInsSw
  succ MipsInsSw = MipsInsSw16
  succ MipsInsSw16 = MipsInsSwc1
  succ MipsInsSwc1 = MipsInsSwc2
  succ MipsInsSwc2 = MipsInsSwc3
  succ MipsInsSwc3 = MipsInsSwl
  succ MipsInsSwl = MipsInsSwm16
  succ MipsInsSwm16 = MipsInsSwm32
  succ MipsInsSwm32 = MipsInsSwp
  succ MipsInsSwp = MipsInsSwr
  succ MipsInsSwr = MipsInsSwxc1
  succ MipsInsSwxc1 = MipsInsSync
  succ MipsInsSync = MipsInsSynci
  succ MipsInsSynci = MipsInsSyscall
  succ MipsInsSyscall = MipsInsTeq
  succ MipsInsTeq = MipsInsTeqi
  succ MipsInsTeqi = MipsInsTge
  succ MipsInsTge = MipsInsTgei
  succ MipsInsTgei = MipsInsTgeiu
  succ MipsInsTgeiu = MipsInsTgeu
  succ MipsInsTgeu = MipsInsTlbp
  succ MipsInsTlbp = MipsInsTlbr
  succ MipsInsTlbr = MipsInsTlbwi
  succ MipsInsTlbwi = MipsInsTlbwr
  succ MipsInsTlbwr = MipsInsTlt
  succ MipsInsTlt = MipsInsTlti
  succ MipsInsTlti = MipsInsTltiu
  succ MipsInsTltiu = MipsInsTltu
  succ MipsInsTltu = MipsInsTne
  succ MipsInsTne = MipsInsTnei
  succ MipsInsTnei = MipsInsTrunc
  succ MipsInsTrunc = MipsInsV3mulu
  succ MipsInsV3mulu = MipsInsVmm0
  succ MipsInsVmm0 = MipsInsVmulu
  succ MipsInsVmulu = MipsInsVshf
  succ MipsInsVshf = MipsInsWait
  succ MipsInsWait = MipsInsWrdsp
  succ MipsInsWrdsp = MipsInsWsbh
  succ MipsInsWsbh = MipsInsXor
  succ MipsInsXor = MipsInsXor16
  succ MipsInsXor16 = MipsInsXori
  succ MipsInsXori = MipsInsNop
  succ MipsInsNop = MipsInsNegu
  succ MipsInsNegu = MipsInsJalrHb
  succ MipsInsJalrHb = MipsInsJrHb
  succ MipsInsJrHb = MipsInsEnding
  succ MipsInsEnding = error "MipsInsn.succ: MipsInsEnding has no successor"

  pred MipsInsAbsqS = MipsInsInvalid
  pred MipsInsAdd = MipsInsAbsqS
  pred MipsInsAddiupc = MipsInsAdd
  pred MipsInsAddiur1sp = MipsInsAddiupc
  pred MipsInsAddiur2 = MipsInsAddiur1sp
  pred MipsInsAddius5 = MipsInsAddiur2
  pred MipsInsAddiusp = MipsInsAddius5
  pred MipsInsAddqh = MipsInsAddiusp
  pred MipsInsAddqhR = MipsInsAddqh
  pred MipsInsAddq = MipsInsAddqhR
  pred MipsInsAddqS = MipsInsAddq
  pred MipsInsAddsc = MipsInsAddqS
  pred MipsInsAddsA = MipsInsAddsc
  pred MipsInsAddsS = MipsInsAddsA
  pred MipsInsAddsU = MipsInsAddsS
  pred MipsInsAddu16 = MipsInsAddsU
  pred MipsInsAdduh = MipsInsAddu16
  pred MipsInsAdduhR = MipsInsAdduh
  pred MipsInsAddu = MipsInsAdduhR
  pred MipsInsAdduS = MipsInsAddu
  pred MipsInsAddvi = MipsInsAdduS
  pred MipsInsAddv = MipsInsAddvi
  pred MipsInsAddwc = MipsInsAddv
  pred MipsInsAddA = MipsInsAddwc
  pred MipsInsAddi = MipsInsAddA
  pred MipsInsAddiu = MipsInsAddi
  pred MipsInsAlign = MipsInsAddiu
  pred MipsInsAluipc = MipsInsAlign
  pred MipsInsAnd = MipsInsAluipc
  pred MipsInsAnd16 = MipsInsAnd
  pred MipsInsAndi16 = MipsInsAnd16
  pred MipsInsAndi = MipsInsAndi16
  pred MipsInsAppend = MipsInsAndi
  pred MipsInsAsubS = MipsInsAppend
  pred MipsInsAsubU = MipsInsAsubS
  pred MipsInsAui = MipsInsAsubU
  pred MipsInsAuipc = MipsInsAui
  pred MipsInsAverS = MipsInsAuipc
  pred MipsInsAverU = MipsInsAverS
  pred MipsInsAveS = MipsInsAverU
  pred MipsInsAveU = MipsInsAveS
  pred MipsInsB16 = MipsInsAveU
  pred MipsInsBaddu = MipsInsB16
  pred MipsInsBal = MipsInsBaddu
  pred MipsInsBalc = MipsInsBal
  pred MipsInsBalign = MipsInsBalc
  pred MipsInsBbit0 = MipsInsBalign
  pred MipsInsBbit032 = MipsInsBbit0
  pred MipsInsBbit1 = MipsInsBbit032
  pred MipsInsBbit132 = MipsInsBbit1
  pred MipsInsBc = MipsInsBbit132
  pred MipsInsBc0f = MipsInsBc
  pred MipsInsBc0fl = MipsInsBc0f
  pred MipsInsBc0t = MipsInsBc0fl
  pred MipsInsBc0tl = MipsInsBc0t
  pred MipsInsBc1eqz = MipsInsBc0tl
  pred MipsInsBc1f = MipsInsBc1eqz
  pred MipsInsBc1fl = MipsInsBc1f
  pred MipsInsBc1nez = MipsInsBc1fl
  pred MipsInsBc1t = MipsInsBc1nez
  pred MipsInsBc1tl = MipsInsBc1t
  pred MipsInsBc2eqz = MipsInsBc1tl
  pred MipsInsBc2f = MipsInsBc2eqz
  pred MipsInsBc2fl = MipsInsBc2f
  pred MipsInsBc2nez = MipsInsBc2fl
  pred MipsInsBc2t = MipsInsBc2nez
  pred MipsInsBc2tl = MipsInsBc2t
  pred MipsInsBc3f = MipsInsBc2tl
  pred MipsInsBc3fl = MipsInsBc3f
  pred MipsInsBc3t = MipsInsBc3fl
  pred MipsInsBc3tl = MipsInsBc3t
  pred MipsInsBclri = MipsInsBc3tl
  pred MipsInsBclr = MipsInsBclri
  pred MipsInsBeq = MipsInsBclr
  pred MipsInsBeqc = MipsInsBeq
  pred MipsInsBeql = MipsInsBeqc
  pred MipsInsBeqz16 = MipsInsBeql
  pred MipsInsBeqzalc = MipsInsBeqz16
  pred MipsInsBeqzc = MipsInsBeqzalc
  pred MipsInsBgec = MipsInsBeqzc
  pred MipsInsBgeuc = MipsInsBgec
  pred MipsInsBgez = MipsInsBgeuc
  pred MipsInsBgezal = MipsInsBgez
  pred MipsInsBgezalc = MipsInsBgezal
  pred MipsInsBgezall = MipsInsBgezalc
  pred MipsInsBgezals = MipsInsBgezall
  pred MipsInsBgezc = MipsInsBgezals
  pred MipsInsBgezl = MipsInsBgezc
  pred MipsInsBgtz = MipsInsBgezl
  pred MipsInsBgtzalc = MipsInsBgtz
  pred MipsInsBgtzc = MipsInsBgtzalc
  pred MipsInsBgtzl = MipsInsBgtzc
  pred MipsInsBinsli = MipsInsBgtzl
  pred MipsInsBinsl = MipsInsBinsli
  pred MipsInsBinsri = MipsInsBinsl
  pred MipsInsBinsr = MipsInsBinsri
  pred MipsInsBitrev = MipsInsBinsr
  pred MipsInsBitswap = MipsInsBitrev
  pred MipsInsBlez = MipsInsBitswap
  pred MipsInsBlezalc = MipsInsBlez
  pred MipsInsBlezc = MipsInsBlezalc
  pred MipsInsBlezl = MipsInsBlezc
  pred MipsInsBltc = MipsInsBlezl
  pred MipsInsBltuc = MipsInsBltc
  pred MipsInsBltz = MipsInsBltuc
  pred MipsInsBltzal = MipsInsBltz
  pred MipsInsBltzalc = MipsInsBltzal
  pred MipsInsBltzall = MipsInsBltzalc
  pred MipsInsBltzals = MipsInsBltzall
  pred MipsInsBltzc = MipsInsBltzals
  pred MipsInsBltzl = MipsInsBltzc
  pred MipsInsBmnzi = MipsInsBltzl
  pred MipsInsBmnz = MipsInsBmnzi
  pred MipsInsBmzi = MipsInsBmnz
  pred MipsInsBmz = MipsInsBmzi
  pred MipsInsBne = MipsInsBmz
  pred MipsInsBnec = MipsInsBne
  pred MipsInsBnegi = MipsInsBnec
  pred MipsInsBneg = MipsInsBnegi
  pred MipsInsBnel = MipsInsBneg
  pred MipsInsBnez16 = MipsInsBnel
  pred MipsInsBnezalc = MipsInsBnez16
  pred MipsInsBnezc = MipsInsBnezalc
  pred MipsInsBnvc = MipsInsBnezc
  pred MipsInsBnz = MipsInsBnvc
  pred MipsInsBovc = MipsInsBnz
  pred MipsInsBposge32 = MipsInsBovc
  pred MipsInsBreak = MipsInsBposge32
  pred MipsInsBreak16 = MipsInsBreak
  pred MipsInsBseli = MipsInsBreak16
  pred MipsInsBsel = MipsInsBseli
  pred MipsInsBseti = MipsInsBsel
  pred MipsInsBset = MipsInsBseti
  pred MipsInsBz = MipsInsBset
  pred MipsInsBeqz = MipsInsBz
  pred MipsInsB = MipsInsBeqz
  pred MipsInsBnez = MipsInsB
  pred MipsInsBteqz = MipsInsBnez
  pred MipsInsBtnez = MipsInsBteqz
  pred MipsInsCache = MipsInsBtnez
  pred MipsInsCeil = MipsInsCache
  pred MipsInsCeqi = MipsInsCeil
  pred MipsInsCeq = MipsInsCeqi
  pred MipsInsCfc1 = MipsInsCeq
  pred MipsInsCfcmsa = MipsInsCfc1
  pred MipsInsCins = MipsInsCfcmsa
  pred MipsInsCins32 = MipsInsCins
  pred MipsInsClass = MipsInsCins32
  pred MipsInsCleiS = MipsInsClass
  pred MipsInsCleiU = MipsInsCleiS
  pred MipsInsCleS = MipsInsCleiU
  pred MipsInsCleU = MipsInsCleS
  pred MipsInsClo = MipsInsCleU
  pred MipsInsCltiS = MipsInsClo
  pred MipsInsCltiU = MipsInsCltiS
  pred MipsInsCltS = MipsInsCltiU
  pred MipsInsCltU = MipsInsCltS
  pred MipsInsClz = MipsInsCltU
  pred MipsInsCmpgdu = MipsInsClz
  pred MipsInsCmpgu = MipsInsCmpgdu
  pred MipsInsCmpu = MipsInsCmpgu
  pred MipsInsCmp = MipsInsCmpu
  pred MipsInsCopyS = MipsInsCmp
  pred MipsInsCopyU = MipsInsCopyS
  pred MipsInsCtc1 = MipsInsCopyU
  pred MipsInsCtcmsa = MipsInsCtc1
  pred MipsInsCvt = MipsInsCtcmsa
  pred MipsInsC = MipsInsCvt
  pred MipsInsCmpi = MipsInsC
  pred MipsInsDadd = MipsInsCmpi
  pred MipsInsDaddi = MipsInsDadd
  pred MipsInsDaddiu = MipsInsDaddi
  pred MipsInsDaddu = MipsInsDaddiu
  pred MipsInsDahi = MipsInsDaddu
  pred MipsInsDalign = MipsInsDahi
  pred MipsInsDati = MipsInsDalign
  pred MipsInsDaui = MipsInsDati
  pred MipsInsDbitswap = MipsInsDaui
  pred MipsInsDclo = MipsInsDbitswap
  pred MipsInsDclz = MipsInsDclo
  pred MipsInsDdiv = MipsInsDclz
  pred MipsInsDdivu = MipsInsDdiv
  pred MipsInsDeret = MipsInsDdivu
  pred MipsInsDext = MipsInsDeret
  pred MipsInsDextm = MipsInsDext
  pred MipsInsDextu = MipsInsDextm
  pred MipsInsDi = MipsInsDextu
  pred MipsInsDins = MipsInsDi
  pred MipsInsDinsm = MipsInsDins
  pred MipsInsDinsu = MipsInsDinsm
  pred MipsInsDiv = MipsInsDinsu
  pred MipsInsDivu = MipsInsDiv
  pred MipsInsDivS = MipsInsDivu
  pred MipsInsDivU = MipsInsDivS
  pred MipsInsDlsa = MipsInsDivU
  pred MipsInsDmfc0 = MipsInsDlsa
  pred MipsInsDmfc1 = MipsInsDmfc0
  pred MipsInsDmfc2 = MipsInsDmfc1
  pred MipsInsDmod = MipsInsDmfc2
  pred MipsInsDmodu = MipsInsDmod
  pred MipsInsDmtc0 = MipsInsDmodu
  pred MipsInsDmtc1 = MipsInsDmtc0
  pred MipsInsDmtc2 = MipsInsDmtc1
  pred MipsInsDmuh = MipsInsDmtc2
  pred MipsInsDmuhu = MipsInsDmuh
  pred MipsInsDmul = MipsInsDmuhu
  pred MipsInsDmult = MipsInsDmul
  pred MipsInsDmultu = MipsInsDmult
  pred MipsInsDmulu = MipsInsDmultu
  pred MipsInsDotpS = MipsInsDmulu
  pred MipsInsDotpU = MipsInsDotpS
  pred MipsInsDpaddS = MipsInsDotpU
  pred MipsInsDpaddU = MipsInsDpaddS
  pred MipsInsDpaqxSa = MipsInsDpaddU
  pred MipsInsDpaqxS = MipsInsDpaqxSa
  pred MipsInsDpaqSa = MipsInsDpaqxS
  pred MipsInsDpaqS = MipsInsDpaqSa
  pred MipsInsDpau = MipsInsDpaqS
  pred MipsInsDpax = MipsInsDpau
  pred MipsInsDpa = MipsInsDpax
  pred MipsInsDpop = MipsInsDpa
  pred MipsInsDpsqxSa = MipsInsDpop
  pred MipsInsDpsqxS = MipsInsDpsqxSa
  pred MipsInsDpsqSa = MipsInsDpsqxS
  pred MipsInsDpsqS = MipsInsDpsqSa
  pred MipsInsDpsubS = MipsInsDpsqS
  pred MipsInsDpsubU = MipsInsDpsubS
  pred MipsInsDpsu = MipsInsDpsubU
  pred MipsInsDpsx = MipsInsDpsu
  pred MipsInsDps = MipsInsDpsx
  pred MipsInsDrotr = MipsInsDps
  pred MipsInsDrotr32 = MipsInsDrotr
  pred MipsInsDrotrv = MipsInsDrotr32
  pred MipsInsDsbh = MipsInsDrotrv
  pred MipsInsDshd = MipsInsDsbh
  pred MipsInsDsll = MipsInsDshd
  pred MipsInsDsll32 = MipsInsDsll
  pred MipsInsDsllv = MipsInsDsll32
  pred MipsInsDsra = MipsInsDsllv
  pred MipsInsDsra32 = MipsInsDsra
  pred MipsInsDsrav = MipsInsDsra32
  pred MipsInsDsrl = MipsInsDsrav
  pred MipsInsDsrl32 = MipsInsDsrl
  pred MipsInsDsrlv = MipsInsDsrl32
  pred MipsInsDsub = MipsInsDsrlv
  pred MipsInsDsubu = MipsInsDsub
  pred MipsInsEhb = MipsInsDsubu
  pred MipsInsEi = MipsInsEhb
  pred MipsInsEret = MipsInsEi
  pred MipsInsExt = MipsInsEret
  pred MipsInsExtp = MipsInsExt
  pred MipsInsExtpdp = MipsInsExtp
  pred MipsInsExtpdpv = MipsInsExtpdp
  pred MipsInsExtpv = MipsInsExtpdpv
  pred MipsInsExtrvRs = MipsInsExtpv
  pred MipsInsExtrvR = MipsInsExtrvRs
  pred MipsInsExtrvS = MipsInsExtrvR
  pred MipsInsExtrv = MipsInsExtrvS
  pred MipsInsExtrRs = MipsInsExtrv
  pred MipsInsExtrR = MipsInsExtrRs
  pred MipsInsExtrS = MipsInsExtrR
  pred MipsInsExtr = MipsInsExtrS
  pred MipsInsExts = MipsInsExtr
  pred MipsInsExts32 = MipsInsExts
  pred MipsInsAbs = MipsInsExts32
  pred MipsInsFadd = MipsInsAbs
  pred MipsInsFcaf = MipsInsFadd
  pred MipsInsFceq = MipsInsFcaf
  pred MipsInsFclass = MipsInsFceq
  pred MipsInsFcle = MipsInsFclass
  pred MipsInsFclt = MipsInsFcle
  pred MipsInsFcne = MipsInsFclt
  pred MipsInsFcor = MipsInsFcne
  pred MipsInsFcueq = MipsInsFcor
  pred MipsInsFcule = MipsInsFcueq
  pred MipsInsFcult = MipsInsFcule
  pred MipsInsFcune = MipsInsFcult
  pred MipsInsFcun = MipsInsFcune
  pred MipsInsFdiv = MipsInsFcun
  pred MipsInsFexdo = MipsInsFdiv
  pred MipsInsFexp2 = MipsInsFexdo
  pred MipsInsFexupl = MipsInsFexp2
  pred MipsInsFexupr = MipsInsFexupl
  pred MipsInsFfintS = MipsInsFexupr
  pred MipsInsFfintU = MipsInsFfintS
  pred MipsInsFfql = MipsInsFfintU
  pred MipsInsFfqr = MipsInsFfql
  pred MipsInsFill = MipsInsFfqr
  pred MipsInsFlog2 = MipsInsFill
  pred MipsInsFloor = MipsInsFlog2
  pred MipsInsFmadd = MipsInsFloor
  pred MipsInsFmaxA = MipsInsFmadd
  pred MipsInsFmax = MipsInsFmaxA
  pred MipsInsFminA = MipsInsFmax
  pred MipsInsFmin = MipsInsFminA
  pred MipsInsMov = MipsInsFmin
  pred MipsInsFmsub = MipsInsMov
  pred MipsInsFmul = MipsInsFmsub
  pred MipsInsMul = MipsInsFmul
  pred MipsInsNeg = MipsInsMul
  pred MipsInsFrcp = MipsInsNeg
  pred MipsInsFrint = MipsInsFrcp
  pred MipsInsFrsqrt = MipsInsFrint
  pred MipsInsFsaf = MipsInsFrsqrt
  pred MipsInsFseq = MipsInsFsaf
  pred MipsInsFsle = MipsInsFseq
  pred MipsInsFslt = MipsInsFsle
  pred MipsInsFsne = MipsInsFslt
  pred MipsInsFsor = MipsInsFsne
  pred MipsInsFsqrt = MipsInsFsor
  pred MipsInsSqrt = MipsInsFsqrt
  pred MipsInsFsub = MipsInsSqrt
  pred MipsInsSub = MipsInsFsub
  pred MipsInsFsueq = MipsInsSub
  pred MipsInsFsule = MipsInsFsueq
  pred MipsInsFsult = MipsInsFsule
  pred MipsInsFsune = MipsInsFsult
  pred MipsInsFsun = MipsInsFsune
  pred MipsInsFtintS = MipsInsFsun
  pred MipsInsFtintU = MipsInsFtintS
  pred MipsInsFtq = MipsInsFtintU
  pred MipsInsFtruncS = MipsInsFtq
  pred MipsInsFtruncU = MipsInsFtruncS
  pred MipsInsHaddS = MipsInsFtruncU
  pred MipsInsHaddU = MipsInsHaddS
  pred MipsInsHsubS = MipsInsHaddU
  pred MipsInsHsubU = MipsInsHsubS
  pred MipsInsIlvev = MipsInsHsubU
  pred MipsInsIlvl = MipsInsIlvev
  pred MipsInsIlvod = MipsInsIlvl
  pred MipsInsIlvr = MipsInsIlvod
  pred MipsInsIns = MipsInsIlvr
  pred MipsInsInsert = MipsInsIns
  pred MipsInsInsv = MipsInsInsert
  pred MipsInsInsve = MipsInsInsv
  pred MipsInsJ = MipsInsInsve
  pred MipsInsJal = MipsInsJ
  pred MipsInsJalr = MipsInsJal
  pred MipsInsJalrs16 = MipsInsJalr
  pred MipsInsJalrs = MipsInsJalrs16
  pred MipsInsJals = MipsInsJalrs
  pred MipsInsJalx = MipsInsJals
  pred MipsInsJialc = MipsInsJalx
  pred MipsInsJic = MipsInsJialc
  pred MipsInsJr = MipsInsJic
  pred MipsInsJr16 = MipsInsJr
  pred MipsInsJraddiusp = MipsInsJr16
  pred MipsInsJrc = MipsInsJraddiusp
  pred MipsInsJalrc = MipsInsJrc
  pred MipsInsLb = MipsInsJalrc
  pred MipsInsLbu16 = MipsInsLb
  pred MipsInsLbux = MipsInsLbu16
  pred MipsInsLbu = MipsInsLbux
  pred MipsInsLd = MipsInsLbu
  pred MipsInsLdc1 = MipsInsLd
  pred MipsInsLdc2 = MipsInsLdc1
  pred MipsInsLdc3 = MipsInsLdc2
  pred MipsInsLdi = MipsInsLdc3
  pred MipsInsLdl = MipsInsLdi
  pred MipsInsLdpc = MipsInsLdl
  pred MipsInsLdr = MipsInsLdpc
  pred MipsInsLdxc1 = MipsInsLdr
  pred MipsInsLh = MipsInsLdxc1
  pred MipsInsLhu16 = MipsInsLh
  pred MipsInsLhx = MipsInsLhu16
  pred MipsInsLhu = MipsInsLhx
  pred MipsInsLi16 = MipsInsLhu
  pred MipsInsLl = MipsInsLi16
  pred MipsInsLld = MipsInsLl
  pred MipsInsLsa = MipsInsLld
  pred MipsInsLuxc1 = MipsInsLsa
  pred MipsInsLui = MipsInsLuxc1
  pred MipsInsLw = MipsInsLui
  pred MipsInsLw16 = MipsInsLw
  pred MipsInsLwc1 = MipsInsLw16
  pred MipsInsLwc2 = MipsInsLwc1
  pred MipsInsLwc3 = MipsInsLwc2
  pred MipsInsLwl = MipsInsLwc3
  pred MipsInsLwm16 = MipsInsLwl
  pred MipsInsLwm32 = MipsInsLwm16
  pred MipsInsLwpc = MipsInsLwm32
  pred MipsInsLwp = MipsInsLwpc
  pred MipsInsLwr = MipsInsLwp
  pred MipsInsLwupc = MipsInsLwr
  pred MipsInsLwu = MipsInsLwupc
  pred MipsInsLwx = MipsInsLwu
  pred MipsInsLwxc1 = MipsInsLwx
  pred MipsInsLwxs = MipsInsLwxc1
  pred MipsInsLi = MipsInsLwxs
  pred MipsInsMadd = MipsInsLi
  pred MipsInsMaddf = MipsInsMadd
  pred MipsInsMaddrQ = MipsInsMaddf
  pred MipsInsMaddu = MipsInsMaddrQ
  pred MipsInsMaddv = MipsInsMaddu
  pred MipsInsMaddQ = MipsInsMaddv
  pred MipsInsMaqSa = MipsInsMaddQ
  pred MipsInsMaqS = MipsInsMaqSa
  pred MipsInsMaxa = MipsInsMaqS
  pred MipsInsMaxiS = MipsInsMaxa
  pred MipsInsMaxiU = MipsInsMaxiS
  pred MipsInsMaxA = MipsInsMaxiU
  pred MipsInsMax = MipsInsMaxA
  pred MipsInsMaxS = MipsInsMax
  pred MipsInsMaxU = MipsInsMaxS
  pred MipsInsMfc0 = MipsInsMaxU
  pred MipsInsMfc1 = MipsInsMfc0
  pred MipsInsMfc2 = MipsInsMfc1
  pred MipsInsMfhc1 = MipsInsMfc2
  pred MipsInsMfhi = MipsInsMfhc1
  pred MipsInsMflo = MipsInsMfhi
  pred MipsInsMina = MipsInsMflo
  pred MipsInsMiniS = MipsInsMina
  pred MipsInsMiniU = MipsInsMiniS
  pred MipsInsMinA = MipsInsMiniU
  pred MipsInsMin = MipsInsMinA
  pred MipsInsMinS = MipsInsMin
  pred MipsInsMinU = MipsInsMinS
  pred MipsInsMod = MipsInsMinU
  pred MipsInsModsub = MipsInsMod
  pred MipsInsModu = MipsInsModsub
  pred MipsInsModS = MipsInsModu
  pred MipsInsModU = MipsInsModS
  pred MipsInsMove = MipsInsModU
  pred MipsInsMovep = MipsInsMove
  pred MipsInsMovf = MipsInsMovep
  pred MipsInsMovn = MipsInsMovf
  pred MipsInsMovt = MipsInsMovn
  pred MipsInsMovz = MipsInsMovt
  pred MipsInsMsub = MipsInsMovz
  pred MipsInsMsubf = MipsInsMsub
  pred MipsInsMsubrQ = MipsInsMsubf
  pred MipsInsMsubu = MipsInsMsubrQ
  pred MipsInsMsubv = MipsInsMsubu
  pred MipsInsMsubQ = MipsInsMsubv
  pred MipsInsMtc0 = MipsInsMsubQ
  pred MipsInsMtc1 = MipsInsMtc0
  pred MipsInsMtc2 = MipsInsMtc1
  pred MipsInsMthc1 = MipsInsMtc2
  pred MipsInsMthi = MipsInsMthc1
  pred MipsInsMthlip = MipsInsMthi
  pred MipsInsMtlo = MipsInsMthlip
  pred MipsInsMtm0 = MipsInsMtlo
  pred MipsInsMtm1 = MipsInsMtm0
  pred MipsInsMtm2 = MipsInsMtm1
  pred MipsInsMtp0 = MipsInsMtm2
  pred MipsInsMtp1 = MipsInsMtp0
  pred MipsInsMtp2 = MipsInsMtp1
  pred MipsInsMuh = MipsInsMtp2
  pred MipsInsMuhu = MipsInsMuh
  pred MipsInsMuleqS = MipsInsMuhu
  pred MipsInsMuleuS = MipsInsMuleqS
  pred MipsInsMulqRs = MipsInsMuleuS
  pred MipsInsMulqS = MipsInsMulqRs
  pred MipsInsMulrQ = MipsInsMulqS
  pred MipsInsMulsaqS = MipsInsMulrQ
  pred MipsInsMulsa = MipsInsMulsaqS
  pred MipsInsMult = MipsInsMulsa
  pred MipsInsMultu = MipsInsMult
  pred MipsInsMulu = MipsInsMultu
  pred MipsInsMulv = MipsInsMulu
  pred MipsInsMulQ = MipsInsMulv
  pred MipsInsMulS = MipsInsMulQ
  pred MipsInsNloc = MipsInsMulS
  pred MipsInsNlzc = MipsInsNloc
  pred MipsInsNmadd = MipsInsNlzc
  pred MipsInsNmsub = MipsInsNmadd
  pred MipsInsNor = MipsInsNmsub
  pred MipsInsNori = MipsInsNor
  pred MipsInsNot16 = MipsInsNori
  pred MipsInsNot = MipsInsNot16
  pred MipsInsOr = MipsInsNot
  pred MipsInsOr16 = MipsInsOr
  pred MipsInsOri = MipsInsOr16
  pred MipsInsPackrl = MipsInsOri
  pred MipsInsPause = MipsInsPackrl
  pred MipsInsPckev = MipsInsPause
  pred MipsInsPckod = MipsInsPckev
  pred MipsInsPcnt = MipsInsPckod
  pred MipsInsPick = MipsInsPcnt
  pred MipsInsPop = MipsInsPick
  pred MipsInsPrecequ = MipsInsPop
  pred MipsInsPreceq = MipsInsPrecequ
  pred MipsInsPreceu = MipsInsPreceq
  pred MipsInsPrecrquS = MipsInsPreceu
  pred MipsInsPrecrq = MipsInsPrecrquS
  pred MipsInsPrecrqRs = MipsInsPrecrq
  pred MipsInsPrecr = MipsInsPrecrqRs
  pred MipsInsPrecrSra = MipsInsPrecr
  pred MipsInsPrecrSraR = MipsInsPrecrSra
  pred MipsInsPref = MipsInsPrecrSraR
  pred MipsInsPrepend = MipsInsPref
  pred MipsInsRaddu = MipsInsPrepend
  pred MipsInsRddsp = MipsInsRaddu
  pred MipsInsRdhwr = MipsInsRddsp
  pred MipsInsReplv = MipsInsRdhwr
  pred MipsInsRepl = MipsInsReplv
  pred MipsInsRint = MipsInsRepl
  pred MipsInsRotr = MipsInsRint
  pred MipsInsRotrv = MipsInsRotr
  pred MipsInsRound = MipsInsRotrv
  pred MipsInsSatS = MipsInsRound
  pred MipsInsSatU = MipsInsSatS
  pred MipsInsSb = MipsInsSatU
  pred MipsInsSb16 = MipsInsSb
  pred MipsInsSc = MipsInsSb16
  pred MipsInsScd = MipsInsSc
  pred MipsInsSd = MipsInsScd
  pred MipsInsSdbbp = MipsInsSd
  pred MipsInsSdbbp16 = MipsInsSdbbp
  pred MipsInsSdc1 = MipsInsSdbbp16
  pred MipsInsSdc2 = MipsInsSdc1
  pred MipsInsSdc3 = MipsInsSdc2
  pred MipsInsSdl = MipsInsSdc3
  pred MipsInsSdr = MipsInsSdl
  pred MipsInsSdxc1 = MipsInsSdr
  pred MipsInsSeb = MipsInsSdxc1
  pred MipsInsSeh = MipsInsSeb
  pred MipsInsSeleqz = MipsInsSeh
  pred MipsInsSelnez = MipsInsSeleqz
  pred MipsInsSel = MipsInsSelnez
  pred MipsInsSeq = MipsInsSel
  pred MipsInsSeqi = MipsInsSeq
  pred MipsInsSh = MipsInsSeqi
  pred MipsInsSh16 = MipsInsSh
  pred MipsInsShf = MipsInsSh16
  pred MipsInsShilo = MipsInsShf
  pred MipsInsShilov = MipsInsShilo
  pred MipsInsShllv = MipsInsShilov
  pred MipsInsShllvS = MipsInsShllv
  pred MipsInsShll = MipsInsShllvS
  pred MipsInsShllS = MipsInsShll
  pred MipsInsShrav = MipsInsShllS
  pred MipsInsShravR = MipsInsShrav
  pred MipsInsShra = MipsInsShravR
  pred MipsInsShraR = MipsInsShra
  pred MipsInsShrlv = MipsInsShraR
  pred MipsInsShrl = MipsInsShrlv
  pred MipsInsSldi = MipsInsShrl
  pred MipsInsSld = MipsInsSldi
  pred MipsInsSll = MipsInsSld
  pred MipsInsSll16 = MipsInsSll
  pred MipsInsSlli = MipsInsSll16
  pred MipsInsSllv = MipsInsSlli
  pred MipsInsSlt = MipsInsSllv
  pred MipsInsSlti = MipsInsSlt
  pred MipsInsSltiu = MipsInsSlti
  pred MipsInsSltu = MipsInsSltiu
  pred MipsInsSne = MipsInsSltu
  pred MipsInsSnei = MipsInsSne
  pred MipsInsSplati = MipsInsSnei
  pred MipsInsSplat = MipsInsSplati
  pred MipsInsSra = MipsInsSplat
  pred MipsInsSrai = MipsInsSra
  pred MipsInsSrari = MipsInsSrai
  pred MipsInsSrar = MipsInsSrari
  pred MipsInsSrav = MipsInsSrar
  pred MipsInsSrl = MipsInsSrav
  pred MipsInsSrl16 = MipsInsSrl
  pred MipsInsSrli = MipsInsSrl16
  pred MipsInsSrlri = MipsInsSrli
  pred MipsInsSrlr = MipsInsSrlri
  pred MipsInsSrlv = MipsInsSrlr
  pred MipsInsSsnop = MipsInsSrlv
  pred MipsInsSt = MipsInsSsnop
  pred MipsInsSubqh = MipsInsSt
  pred MipsInsSubqhR = MipsInsSubqh
  pred MipsInsSubq = MipsInsSubqhR
  pred MipsInsSubqS = MipsInsSubq
  pred MipsInsSubsusU = MipsInsSubqS
  pred MipsInsSubsuuS = MipsInsSubsusU
  pred MipsInsSubsS = MipsInsSubsuuS
  pred MipsInsSubsU = MipsInsSubsS
  pred MipsInsSubu16 = MipsInsSubsU
  pred MipsInsSubuh = MipsInsSubu16
  pred MipsInsSubuhR = MipsInsSubuh
  pred MipsInsSubu = MipsInsSubuhR
  pred MipsInsSubuS = MipsInsSubu
  pred MipsInsSubvi = MipsInsSubuS
  pred MipsInsSubv = MipsInsSubvi
  pred MipsInsSuxc1 = MipsInsSubv
  pred MipsInsSw = MipsInsSuxc1
  pred MipsInsSw16 = MipsInsSw
  pred MipsInsSwc1 = MipsInsSw16
  pred MipsInsSwc2 = MipsInsSwc1
  pred MipsInsSwc3 = MipsInsSwc2
  pred MipsInsSwl = MipsInsSwc3
  pred MipsInsSwm16 = MipsInsSwl
  pred MipsInsSwm32 = MipsInsSwm16
  pred MipsInsSwp = MipsInsSwm32
  pred MipsInsSwr = MipsInsSwp
  pred MipsInsSwxc1 = MipsInsSwr
  pred MipsInsSync = MipsInsSwxc1
  pred MipsInsSynci = MipsInsSync
  pred MipsInsSyscall = MipsInsSynci
  pred MipsInsTeq = MipsInsSyscall
  pred MipsInsTeqi = MipsInsTeq
  pred MipsInsTge = MipsInsTeqi
  pred MipsInsTgei = MipsInsTge
  pred MipsInsTgeiu = MipsInsTgei
  pred MipsInsTgeu = MipsInsTgeiu
  pred MipsInsTlbp = MipsInsTgeu
  pred MipsInsTlbr = MipsInsTlbp
  pred MipsInsTlbwi = MipsInsTlbr
  pred MipsInsTlbwr = MipsInsTlbwi
  pred MipsInsTlt = MipsInsTlbwr
  pred MipsInsTlti = MipsInsTlt
  pred MipsInsTltiu = MipsInsTlti
  pred MipsInsTltu = MipsInsTltiu
  pred MipsInsTne = MipsInsTltu
  pred MipsInsTnei = MipsInsTne
  pred MipsInsTrunc = MipsInsTnei
  pred MipsInsV3mulu = MipsInsTrunc
  pred MipsInsVmm0 = MipsInsV3mulu
  pred MipsInsVmulu = MipsInsVmm0
  pred MipsInsVshf = MipsInsVmulu
  pred MipsInsWait = MipsInsVshf
  pred MipsInsWrdsp = MipsInsWait
  pred MipsInsWsbh = MipsInsWrdsp
  pred MipsInsXor = MipsInsWsbh
  pred MipsInsXor16 = MipsInsXor
  pred MipsInsXori = MipsInsXor16
  pred MipsInsNop = MipsInsXori
  pred MipsInsNegu = MipsInsNop
  pred MipsInsJalrHb = MipsInsNegu
  pred MipsInsJrHb = MipsInsJalrHb
  pred MipsInsEnding = MipsInsJrHb
  pred MipsInsInvalid = error "MipsInsn.pred: MipsInsInvalid 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 MipsInsEnding

  fromEnum MipsInsInvalid = 0
  fromEnum MipsInsAbsqS = 1
  fromEnum MipsInsAdd = 2
  fromEnum MipsInsAddiupc = 3
  fromEnum MipsInsAddiur1sp = 4
  fromEnum MipsInsAddiur2 = 5
  fromEnum MipsInsAddius5 = 6
  fromEnum MipsInsAddiusp = 7
  fromEnum MipsInsAddqh = 8
  fromEnum MipsInsAddqhR = 9
  fromEnum MipsInsAddq = 10
  fromEnum MipsInsAddqS = 11
  fromEnum MipsInsAddsc = 12
  fromEnum MipsInsAddsA = 13
  fromEnum MipsInsAddsS = 14
  fromEnum MipsInsAddsU = 15
  fromEnum MipsInsAddu16 = 16
  fromEnum MipsInsAdduh = 17
  fromEnum MipsInsAdduhR = 18
  fromEnum MipsInsAddu = 19
  fromEnum MipsInsAdduS = 20
  fromEnum MipsInsAddvi = 21
  fromEnum MipsInsAddv = 22
  fromEnum MipsInsAddwc = 23
  fromEnum MipsInsAddA = 24
  fromEnum MipsInsAddi = 25
  fromEnum MipsInsAddiu = 26
  fromEnum MipsInsAlign = 27
  fromEnum MipsInsAluipc = 28
  fromEnum MipsInsAnd = 29
  fromEnum MipsInsAnd16 = 30
  fromEnum MipsInsAndi16 = 31
  fromEnum MipsInsAndi = 32
  fromEnum MipsInsAppend = 33
  fromEnum MipsInsAsubS = 34
  fromEnum MipsInsAsubU = 35
  fromEnum MipsInsAui = 36
  fromEnum MipsInsAuipc = 37
  fromEnum MipsInsAverS = 38
  fromEnum MipsInsAverU = 39
  fromEnum MipsInsAveS = 40
  fromEnum MipsInsAveU = 41
  fromEnum MipsInsB16 = 42
  fromEnum MipsInsBaddu = 43
  fromEnum MipsInsBal = 44
  fromEnum MipsInsBalc = 45
  fromEnum MipsInsBalign = 46
  fromEnum MipsInsBbit0 = 47
  fromEnum MipsInsBbit032 = 48
  fromEnum MipsInsBbit1 = 49
  fromEnum MipsInsBbit132 = 50
  fromEnum MipsInsBc = 51
  fromEnum MipsInsBc0f = 52
  fromEnum MipsInsBc0fl = 53
  fromEnum MipsInsBc0t = 54
  fromEnum MipsInsBc0tl = 55
  fromEnum MipsInsBc1eqz = 56
  fromEnum MipsInsBc1f = 57
  fromEnum MipsInsBc1fl = 58
  fromEnum MipsInsBc1nez = 59
  fromEnum MipsInsBc1t = 60
  fromEnum MipsInsBc1tl = 61
  fromEnum MipsInsBc2eqz = 62
  fromEnum MipsInsBc2f = 63
  fromEnum MipsInsBc2fl = 64
  fromEnum MipsInsBc2nez = 65
  fromEnum MipsInsBc2t = 66
  fromEnum MipsInsBc2tl = 67
  fromEnum MipsInsBc3f = 68
  fromEnum MipsInsBc3fl = 69
  fromEnum MipsInsBc3t = 70
  fromEnum MipsInsBc3tl = 71
  fromEnum MipsInsBclri = 72
  fromEnum MipsInsBclr = 73
  fromEnum MipsInsBeq = 74
  fromEnum MipsInsBeqc = 75
  fromEnum MipsInsBeql = 76
  fromEnum MipsInsBeqz16 = 77
  fromEnum MipsInsBeqzalc = 78
  fromEnum MipsInsBeqzc = 79
  fromEnum MipsInsBgec = 80
  fromEnum MipsInsBgeuc = 81
  fromEnum MipsInsBgez = 82
  fromEnum MipsInsBgezal = 83
  fromEnum MipsInsBgezalc = 84
  fromEnum MipsInsBgezall = 85
  fromEnum MipsInsBgezals = 86
  fromEnum MipsInsBgezc = 87
  fromEnum MipsInsBgezl = 88
  fromEnum MipsInsBgtz = 89
  fromEnum MipsInsBgtzalc = 90
  fromEnum MipsInsBgtzc = 91
  fromEnum MipsInsBgtzl = 92
  fromEnum MipsInsBinsli = 93
  fromEnum MipsInsBinsl = 94
  fromEnum MipsInsBinsri = 95
  fromEnum MipsInsBinsr = 96
  fromEnum MipsInsBitrev = 97
  fromEnum MipsInsBitswap = 98
  fromEnum MipsInsBlez = 99
  fromEnum MipsInsBlezalc = 100
  fromEnum MipsInsBlezc = 101
  fromEnum MipsInsBlezl = 102
  fromEnum MipsInsBltc = 103
  fromEnum MipsInsBltuc = 104
  fromEnum MipsInsBltz = 105
  fromEnum MipsInsBltzal = 106
  fromEnum MipsInsBltzalc = 107
  fromEnum MipsInsBltzall = 108
  fromEnum MipsInsBltzals = 109
  fromEnum MipsInsBltzc = 110
  fromEnum MipsInsBltzl = 111
  fromEnum MipsInsBmnzi = 112
  fromEnum MipsInsBmnz = 113
  fromEnum MipsInsBmzi = 114
  fromEnum MipsInsBmz = 115
  fromEnum MipsInsBne = 116
  fromEnum MipsInsBnec = 117
  fromEnum MipsInsBnegi = 118
  fromEnum MipsInsBneg = 119
  fromEnum MipsInsBnel = 120
  fromEnum MipsInsBnez16 = 121
  fromEnum MipsInsBnezalc = 122
  fromEnum MipsInsBnezc = 123
  fromEnum MipsInsBnvc = 124
  fromEnum MipsInsBnz = 125
  fromEnum MipsInsBovc = 126
  fromEnum MipsInsBposge32 = 127
  fromEnum MipsInsBreak = 128
  fromEnum MipsInsBreak16 = 129
  fromEnum MipsInsBseli = 130
  fromEnum MipsInsBsel = 131
  fromEnum MipsInsBseti = 132
  fromEnum MipsInsBset = 133
  fromEnum MipsInsBz = 134
  fromEnum MipsInsBeqz = 135
  fromEnum MipsInsB = 136
  fromEnum MipsInsBnez = 137
  fromEnum MipsInsBteqz = 138
  fromEnum MipsInsBtnez = 139
  fromEnum MipsInsCache = 140
  fromEnum MipsInsCeil = 141
  fromEnum MipsInsCeqi = 142
  fromEnum MipsInsCeq = 143
  fromEnum MipsInsCfc1 = 144
  fromEnum MipsInsCfcmsa = 145
  fromEnum MipsInsCins = 146
  fromEnum MipsInsCins32 = 147
  fromEnum MipsInsClass = 148
  fromEnum MipsInsCleiS = 149
  fromEnum MipsInsCleiU = 150
  fromEnum MipsInsCleS = 151
  fromEnum MipsInsCleU = 152
  fromEnum MipsInsClo = 153
  fromEnum MipsInsCltiS = 154
  fromEnum MipsInsCltiU = 155
  fromEnum MipsInsCltS = 156
  fromEnum MipsInsCltU = 157
  fromEnum MipsInsClz = 158
  fromEnum MipsInsCmpgdu = 159
  fromEnum MipsInsCmpgu = 160
  fromEnum MipsInsCmpu = 161
  fromEnum MipsInsCmp = 162
  fromEnum MipsInsCopyS = 163
  fromEnum MipsInsCopyU = 164
  fromEnum MipsInsCtc1 = 165
  fromEnum MipsInsCtcmsa = 166
  fromEnum MipsInsCvt = 167
  fromEnum MipsInsC = 168
  fromEnum MipsInsCmpi = 169
  fromEnum MipsInsDadd = 170
  fromEnum MipsInsDaddi = 171
  fromEnum MipsInsDaddiu = 172
  fromEnum MipsInsDaddu = 173
  fromEnum MipsInsDahi = 174
  fromEnum MipsInsDalign = 175
  fromEnum MipsInsDati = 176
  fromEnum MipsInsDaui = 177
  fromEnum MipsInsDbitswap = 178
  fromEnum MipsInsDclo = 179
  fromEnum MipsInsDclz = 180
  fromEnum MipsInsDdiv = 181
  fromEnum MipsInsDdivu = 182
  fromEnum MipsInsDeret = 183
  fromEnum MipsInsDext = 184
  fromEnum MipsInsDextm = 185
  fromEnum MipsInsDextu = 186
  fromEnum MipsInsDi = 187
  fromEnum MipsInsDins = 188
  fromEnum MipsInsDinsm = 189
  fromEnum MipsInsDinsu = 190
  fromEnum MipsInsDiv = 191
  fromEnum MipsInsDivu = 192
  fromEnum MipsInsDivS = 193
  fromEnum MipsInsDivU = 194
  fromEnum MipsInsDlsa = 195
  fromEnum MipsInsDmfc0 = 196
  fromEnum MipsInsDmfc1 = 197
  fromEnum MipsInsDmfc2 = 198
  fromEnum MipsInsDmod = 199
  fromEnum MipsInsDmodu = 200
  fromEnum MipsInsDmtc0 = 201
  fromEnum MipsInsDmtc1 = 202
  fromEnum MipsInsDmtc2 = 203
  fromEnum MipsInsDmuh = 204
  fromEnum MipsInsDmuhu = 205
  fromEnum MipsInsDmul = 206
  fromEnum MipsInsDmult = 207
  fromEnum MipsInsDmultu = 208
  fromEnum MipsInsDmulu = 209
  fromEnum MipsInsDotpS = 210
  fromEnum MipsInsDotpU = 211
  fromEnum MipsInsDpaddS = 212
  fromEnum MipsInsDpaddU = 213
  fromEnum MipsInsDpaqxSa = 214
  fromEnum MipsInsDpaqxS = 215
  fromEnum MipsInsDpaqSa = 216
  fromEnum MipsInsDpaqS = 217
  fromEnum MipsInsDpau = 218
  fromEnum MipsInsDpax = 219
  fromEnum MipsInsDpa = 220
  fromEnum MipsInsDpop = 221
  fromEnum MipsInsDpsqxSa = 222
  fromEnum MipsInsDpsqxS = 223
  fromEnum MipsInsDpsqSa = 224
  fromEnum MipsInsDpsqS = 225
  fromEnum MipsInsDpsubS = 226
  fromEnum MipsInsDpsubU = 227
  fromEnum MipsInsDpsu = 228
  fromEnum MipsInsDpsx = 229
  fromEnum MipsInsDps = 230
  fromEnum MipsInsDrotr = 231
  fromEnum MipsInsDrotr32 = 232
  fromEnum MipsInsDrotrv = 233
  fromEnum MipsInsDsbh = 234
  fromEnum MipsInsDshd = 235
  fromEnum MipsInsDsll = 236
  fromEnum MipsInsDsll32 = 237
  fromEnum MipsInsDsllv = 238
  fromEnum MipsInsDsra = 239
  fromEnum MipsInsDsra32 = 240
  fromEnum MipsInsDsrav = 241
  fromEnum MipsInsDsrl = 242
  fromEnum MipsInsDsrl32 = 243
  fromEnum MipsInsDsrlv = 244
  fromEnum MipsInsDsub = 245
  fromEnum MipsInsDsubu = 246
  fromEnum MipsInsEhb = 247
  fromEnum MipsInsEi = 248
  fromEnum MipsInsEret = 249
  fromEnum MipsInsExt = 250
  fromEnum MipsInsExtp = 251
  fromEnum MipsInsExtpdp = 252
  fromEnum MipsInsExtpdpv = 253
  fromEnum MipsInsExtpv = 254
  fromEnum MipsInsExtrvRs = 255
  fromEnum MipsInsExtrvR = 256
  fromEnum MipsInsExtrvS = 257
  fromEnum MipsInsExtrv = 258
  fromEnum MipsInsExtrRs = 259
  fromEnum MipsInsExtrR = 260
  fromEnum MipsInsExtrS = 261
  fromEnum MipsInsExtr = 262
  fromEnum MipsInsExts = 263
  fromEnum MipsInsExts32 = 264
  fromEnum MipsInsAbs = 265
  fromEnum MipsInsFadd = 266
  fromEnum MipsInsFcaf = 267
  fromEnum MipsInsFceq = 268
  fromEnum MipsInsFclass = 269
  fromEnum MipsInsFcle = 270
  fromEnum MipsInsFclt = 271
  fromEnum MipsInsFcne = 272
  fromEnum MipsInsFcor = 273
  fromEnum MipsInsFcueq = 274
  fromEnum MipsInsFcule = 275
  fromEnum MipsInsFcult = 276
  fromEnum MipsInsFcune = 277
  fromEnum MipsInsFcun = 278
  fromEnum MipsInsFdiv = 279
  fromEnum MipsInsFexdo = 280
  fromEnum MipsInsFexp2 = 281
  fromEnum MipsInsFexupl = 282
  fromEnum MipsInsFexupr = 283
  fromEnum MipsInsFfintS = 284
  fromEnum MipsInsFfintU = 285
  fromEnum MipsInsFfql = 286
  fromEnum MipsInsFfqr = 287
  fromEnum MipsInsFill = 288
  fromEnum MipsInsFlog2 = 289
  fromEnum MipsInsFloor = 290
  fromEnum MipsInsFmadd = 291
  fromEnum MipsInsFmaxA = 292
  fromEnum MipsInsFmax = 293
  fromEnum MipsInsFminA = 294
  fromEnum MipsInsFmin = 295
  fromEnum MipsInsMov = 296
  fromEnum MipsInsFmsub = 297
  fromEnum MipsInsFmul = 298
  fromEnum MipsInsMul = 299
  fromEnum MipsInsNeg = 300
  fromEnum MipsInsFrcp = 301
  fromEnum MipsInsFrint = 302
  fromEnum MipsInsFrsqrt = 303
  fromEnum MipsInsFsaf = 304
  fromEnum MipsInsFseq = 305
  fromEnum MipsInsFsle = 306
  fromEnum MipsInsFslt = 307
  fromEnum MipsInsFsne = 308
  fromEnum MipsInsFsor = 309
  fromEnum MipsInsFsqrt = 310
  fromEnum MipsInsSqrt = 311
  fromEnum MipsInsFsub = 312
  fromEnum MipsInsSub = 313
  fromEnum MipsInsFsueq = 314
  fromEnum MipsInsFsule = 315
  fromEnum MipsInsFsult = 316
  fromEnum MipsInsFsune = 317
  fromEnum MipsInsFsun = 318
  fromEnum MipsInsFtintS = 319
  fromEnum MipsInsFtintU = 320
  fromEnum MipsInsFtq = 321
  fromEnum MipsInsFtruncS = 322
  fromEnum MipsInsFtruncU = 323
  fromEnum MipsInsHaddS = 324
  fromEnum MipsInsHaddU = 325
  fromEnum MipsInsHsubS = 326
  fromEnum MipsInsHsubU = 327
  fromEnum MipsInsIlvev = 328
  fromEnum MipsInsIlvl = 329
  fromEnum MipsInsIlvod = 330
  fromEnum MipsInsIlvr = 331
  fromEnum MipsInsIns = 332
  fromEnum MipsInsInsert = 333
  fromEnum MipsInsInsv = 334
  fromEnum MipsInsInsve = 335
  fromEnum MipsInsJ = 336
  fromEnum MipsInsJal = 337
  fromEnum MipsInsJalr = 338
  fromEnum MipsInsJalrs16 = 339
  fromEnum MipsInsJalrs = 340
  fromEnum MipsInsJals = 341
  fromEnum MipsInsJalx = 342
  fromEnum MipsInsJialc = 343
  fromEnum MipsInsJic = 344
  fromEnum MipsInsJr = 345
  fromEnum MipsInsJr16 = 346
  fromEnum MipsInsJraddiusp = 347
  fromEnum MipsInsJrc = 348
  fromEnum MipsInsJalrc = 349
  fromEnum MipsInsLb = 350
  fromEnum MipsInsLbu16 = 351
  fromEnum MipsInsLbux = 352
  fromEnum MipsInsLbu = 353
  fromEnum MipsInsLd = 354
  fromEnum MipsInsLdc1 = 355
  fromEnum MipsInsLdc2 = 356
  fromEnum MipsInsLdc3 = 357
  fromEnum MipsInsLdi = 358
  fromEnum MipsInsLdl = 359
  fromEnum MipsInsLdpc = 360
  fromEnum MipsInsLdr = 361
  fromEnum MipsInsLdxc1 = 362
  fromEnum MipsInsLh = 363
  fromEnum MipsInsLhu16 = 364
  fromEnum MipsInsLhx = 365
  fromEnum MipsInsLhu = 366
  fromEnum MipsInsLi16 = 367
  fromEnum MipsInsLl = 368
  fromEnum MipsInsLld = 369
  fromEnum MipsInsLsa = 370
  fromEnum MipsInsLuxc1 = 371
  fromEnum MipsInsLui = 372
  fromEnum MipsInsLw = 373
  fromEnum MipsInsLw16 = 374
  fromEnum MipsInsLwc1 = 375
  fromEnum MipsInsLwc2 = 376
  fromEnum MipsInsLwc3 = 377
  fromEnum MipsInsLwl = 378
  fromEnum MipsInsLwm16 = 379
  fromEnum MipsInsLwm32 = 380
  fromEnum MipsInsLwpc = 381
  fromEnum MipsInsLwp = 382
  fromEnum MipsInsLwr = 383
  fromEnum MipsInsLwupc = 384
  fromEnum MipsInsLwu = 385
  fromEnum MipsInsLwx = 386
  fromEnum MipsInsLwxc1 = 387
  fromEnum MipsInsLwxs = 388
  fromEnum MipsInsLi = 389
  fromEnum MipsInsMadd = 390
  fromEnum MipsInsMaddf = 391
  fromEnum MipsInsMaddrQ = 392
  fromEnum MipsInsMaddu = 393
  fromEnum MipsInsMaddv = 394
  fromEnum MipsInsMaddQ = 395
  fromEnum MipsInsMaqSa = 396
  fromEnum MipsInsMaqS = 397
  fromEnum MipsInsMaxa = 398
  fromEnum MipsInsMaxiS = 399
  fromEnum MipsInsMaxiU = 400
  fromEnum MipsInsMaxA = 401
  fromEnum MipsInsMax = 402
  fromEnum MipsInsMaxS = 403
  fromEnum MipsInsMaxU = 404
  fromEnum MipsInsMfc0 = 405
  fromEnum MipsInsMfc1 = 406
  fromEnum MipsInsMfc2 = 407
  fromEnum MipsInsMfhc1 = 408
  fromEnum MipsInsMfhi = 409
  fromEnum MipsInsMflo = 410
  fromEnum MipsInsMina = 411
  fromEnum MipsInsMiniS = 412
  fromEnum MipsInsMiniU = 413
  fromEnum MipsInsMinA = 414
  fromEnum MipsInsMin = 415
  fromEnum MipsInsMinS = 416
  fromEnum MipsInsMinU = 417
  fromEnum MipsInsMod = 418
  fromEnum MipsInsModsub = 419
  fromEnum MipsInsModu = 420
  fromEnum MipsInsModS = 421
  fromEnum MipsInsModU = 422
  fromEnum MipsInsMove = 423
  fromEnum MipsInsMovep = 424
  fromEnum MipsInsMovf = 425
  fromEnum MipsInsMovn = 426
  fromEnum MipsInsMovt = 427
  fromEnum MipsInsMovz = 428
  fromEnum MipsInsMsub = 429
  fromEnum MipsInsMsubf = 430
  fromEnum MipsInsMsubrQ = 431
  fromEnum MipsInsMsubu = 432
  fromEnum MipsInsMsubv = 433
  fromEnum MipsInsMsubQ = 434
  fromEnum MipsInsMtc0 = 435
  fromEnum MipsInsMtc1 = 436
  fromEnum MipsInsMtc2 = 437
  fromEnum MipsInsMthc1 = 438
  fromEnum MipsInsMthi = 439
  fromEnum MipsInsMthlip = 440
  fromEnum MipsInsMtlo = 441
  fromEnum MipsInsMtm0 = 442
  fromEnum MipsInsMtm1 = 443
  fromEnum MipsInsMtm2 = 444
  fromEnum MipsInsMtp0 = 445
  fromEnum MipsInsMtp1 = 446
  fromEnum MipsInsMtp2 = 447
  fromEnum MipsInsMuh = 448
  fromEnum MipsInsMuhu = 449
  fromEnum MipsInsMuleqS = 450
  fromEnum MipsInsMuleuS = 451
  fromEnum MipsInsMulqRs = 452
  fromEnum MipsInsMulqS = 453
  fromEnum MipsInsMulrQ = 454
  fromEnum MipsInsMulsaqS = 455
  fromEnum MipsInsMulsa = 456
  fromEnum MipsInsMult = 457
  fromEnum MipsInsMultu = 458
  fromEnum MipsInsMulu = 459
  fromEnum MipsInsMulv = 460
  fromEnum MipsInsMulQ = 461
  fromEnum MipsInsMulS = 462
  fromEnum MipsInsNloc = 463
  fromEnum MipsInsNlzc = 464
  fromEnum MipsInsNmadd = 465
  fromEnum MipsInsNmsub = 466
  fromEnum MipsInsNor = 467
  fromEnum MipsInsNori = 468
  fromEnum MipsInsNot16 = 469
  fromEnum MipsInsNot = 470
  fromEnum MipsInsOr = 471
  fromEnum MipsInsOr16 = 472
  fromEnum MipsInsOri = 473
  fromEnum MipsInsPackrl = 474
  fromEnum MipsInsPause = 475
  fromEnum MipsInsPckev = 476
  fromEnum MipsInsPckod = 477
  fromEnum MipsInsPcnt = 478
  fromEnum MipsInsPick = 479
  fromEnum MipsInsPop = 480
  fromEnum MipsInsPrecequ = 481
  fromEnum MipsInsPreceq = 482
  fromEnum MipsInsPreceu = 483
  fromEnum MipsInsPrecrquS = 484
  fromEnum MipsInsPrecrq = 485
  fromEnum MipsInsPrecrqRs = 486
  fromEnum MipsInsPrecr = 487
  fromEnum MipsInsPrecrSra = 488
  fromEnum MipsInsPrecrSraR = 489
  fromEnum MipsInsPref = 490
  fromEnum MipsInsPrepend = 491
  fromEnum MipsInsRaddu = 492
  fromEnum MipsInsRddsp = 493
  fromEnum MipsInsRdhwr = 494
  fromEnum MipsInsReplv = 495
  fromEnum MipsInsRepl = 496
  fromEnum MipsInsRint = 497
  fromEnum MipsInsRotr = 498
  fromEnum MipsInsRotrv = 499
  fromEnum MipsInsRound = 500
  fromEnum MipsInsSatS = 501
  fromEnum MipsInsSatU = 502
  fromEnum MipsInsSb = 503
  fromEnum MipsInsSb16 = 504
  fromEnum MipsInsSc = 505
  fromEnum MipsInsScd = 506
  fromEnum MipsInsSd = 507
  fromEnum MipsInsSdbbp = 508
  fromEnum MipsInsSdbbp16 = 509
  fromEnum MipsInsSdc1 = 510
  fromEnum MipsInsSdc2 = 511
  fromEnum MipsInsSdc3 = 512
  fromEnum MipsInsSdl = 513
  fromEnum MipsInsSdr = 514
  fromEnum MipsInsSdxc1 = 515
  fromEnum MipsInsSeb = 516
  fromEnum MipsInsSeh = 517
  fromEnum MipsInsSeleqz = 518
  fromEnum MipsInsSelnez = 519
  fromEnum MipsInsSel = 520
  fromEnum MipsInsSeq = 521
  fromEnum MipsInsSeqi = 522
  fromEnum MipsInsSh = 523
  fromEnum MipsInsSh16 = 524
  fromEnum MipsInsShf = 525
  fromEnum MipsInsShilo = 526
  fromEnum MipsInsShilov = 527
  fromEnum MipsInsShllv = 528
  fromEnum MipsInsShllvS = 529
  fromEnum MipsInsShll = 530
  fromEnum MipsInsShllS = 531
  fromEnum MipsInsShrav = 532
  fromEnum MipsInsShravR = 533
  fromEnum MipsInsShra = 534
  fromEnum MipsInsShraR = 535
  fromEnum MipsInsShrlv = 536
  fromEnum MipsInsShrl = 537
  fromEnum MipsInsSldi = 538
  fromEnum MipsInsSld = 539
  fromEnum MipsInsSll = 540
  fromEnum MipsInsSll16 = 541
  fromEnum MipsInsSlli = 542
  fromEnum MipsInsSllv = 543
  fromEnum MipsInsSlt = 544
  fromEnum MipsInsSlti = 545
  fromEnum MipsInsSltiu = 546
  fromEnum MipsInsSltu = 547
  fromEnum MipsInsSne = 548
  fromEnum MipsInsSnei = 549
  fromEnum MipsInsSplati = 550
  fromEnum MipsInsSplat = 551
  fromEnum MipsInsSra = 552
  fromEnum MipsInsSrai = 553
  fromEnum MipsInsSrari = 554
  fromEnum MipsInsSrar = 555
  fromEnum MipsInsSrav = 556
  fromEnum MipsInsSrl = 557
  fromEnum MipsInsSrl16 = 558
  fromEnum MipsInsSrli = 559
  fromEnum MipsInsSrlri = 560
  fromEnum MipsInsSrlr = 561
  fromEnum MipsInsSrlv = 562
  fromEnum MipsInsSsnop = 563
  fromEnum MipsInsSt = 564
  fromEnum MipsInsSubqh = 565
  fromEnum MipsInsSubqhR = 566
  fromEnum MipsInsSubq = 567
  fromEnum MipsInsSubqS = 568
  fromEnum MipsInsSubsusU = 569
  fromEnum MipsInsSubsuuS = 570
  fromEnum MipsInsSubsS = 571
  fromEnum MipsInsSubsU = 572
  fromEnum MipsInsSubu16 = 573
  fromEnum MipsInsSubuh = 574
  fromEnum MipsInsSubuhR = 575
  fromEnum MipsInsSubu = 576
  fromEnum MipsInsSubuS = 577
  fromEnum MipsInsSubvi = 578
  fromEnum MipsInsSubv = 579
  fromEnum MipsInsSuxc1 = 580
  fromEnum MipsInsSw = 581
  fromEnum MipsInsSw16 = 582
  fromEnum MipsInsSwc1 = 583
  fromEnum MipsInsSwc2 = 584
  fromEnum MipsInsSwc3 = 585
  fromEnum MipsInsSwl = 586
  fromEnum MipsInsSwm16 = 587
  fromEnum MipsInsSwm32 = 588
  fromEnum MipsInsSwp = 589
  fromEnum MipsInsSwr = 590
  fromEnum MipsInsSwxc1 = 591
  fromEnum MipsInsSync = 592
  fromEnum MipsInsSynci = 593
  fromEnum MipsInsSyscall = 594
  fromEnum MipsInsTeq = 595
  fromEnum MipsInsTeqi = 596
  fromEnum MipsInsTge = 597
  fromEnum MipsInsTgei = 598
  fromEnum MipsInsTgeiu = 599
  fromEnum MipsInsTgeu = 600
  fromEnum MipsInsTlbp = 601
  fromEnum MipsInsTlbr = 602
  fromEnum MipsInsTlbwi = 603
  fromEnum MipsInsTlbwr = 604
  fromEnum MipsInsTlt = 605
  fromEnum MipsInsTlti = 606
  fromEnum MipsInsTltiu = 607
  fromEnum MipsInsTltu = 608
  fromEnum MipsInsTne = 609
  fromEnum MipsInsTnei = 610
  fromEnum MipsInsTrunc = 611
  fromEnum MipsInsV3mulu = 612
  fromEnum MipsInsVmm0 = 613
  fromEnum MipsInsVmulu = 614
  fromEnum MipsInsVshf = 615
  fromEnum MipsInsWait = 616
  fromEnum MipsInsWrdsp = 617
  fromEnum MipsInsWsbh = 618
  fromEnum MipsInsXor = 619
  fromEnum MipsInsXor16 = 620
  fromEnum MipsInsXori = 621
  fromEnum MipsInsNop = 622
  fromEnum MipsInsNegu = 623
  fromEnum MipsInsJalrHb = 624
  fromEnum MipsInsJrHb = 625
  fromEnum MipsInsEnding = 626

  toEnum 0 = MipsInsInvalid
  toEnum 1 = MipsInsAbsqS
  toEnum 2 = MipsInsAdd
  toEnum 3 = MipsInsAddiupc
  toEnum 4 = MipsInsAddiur1sp
  toEnum 5 = MipsInsAddiur2
  toEnum 6 = MipsInsAddius5
  toEnum 7 = MipsInsAddiusp
  toEnum 8 = MipsInsAddqh
  toEnum 9 = MipsInsAddqhR
  toEnum 10 = MipsInsAddq
  toEnum 11 = MipsInsAddqS
  toEnum 12 = MipsInsAddsc
  toEnum 13 = MipsInsAddsA
  toEnum 14 = MipsInsAddsS
  toEnum 15 = MipsInsAddsU
  toEnum 16 = MipsInsAddu16
  toEnum 17 = MipsInsAdduh
  toEnum 18 = MipsInsAdduhR
  toEnum 19 = MipsInsAddu
  toEnum 20 = MipsInsAdduS
  toEnum 21 = MipsInsAddvi
  toEnum 22 = MipsInsAddv
  toEnum 23 = MipsInsAddwc
  toEnum 24 = MipsInsAddA
  toEnum 25 = MipsInsAddi
  toEnum 26 = MipsInsAddiu
  toEnum 27 = MipsInsAlign
  toEnum 28 = MipsInsAluipc
  toEnum 29 = MipsInsAnd
  toEnum 30 = MipsInsAnd16
  toEnum 31 = MipsInsAndi16
  toEnum 32 = MipsInsAndi
  toEnum 33 = MipsInsAppend
  toEnum 34 = MipsInsAsubS
  toEnum 35 = MipsInsAsubU
  toEnum 36 = MipsInsAui
  toEnum 37 = MipsInsAuipc
  toEnum 38 = MipsInsAverS
  toEnum 39 = MipsInsAverU
  toEnum 40 = MipsInsAveS
  toEnum 41 = MipsInsAveU
  toEnum 42 = MipsInsB16
  toEnum 43 = MipsInsBaddu
  toEnum 44 = MipsInsBal
  toEnum 45 = MipsInsBalc
  toEnum 46 = MipsInsBalign
  toEnum 47 = MipsInsBbit0
  toEnum 48 = MipsInsBbit032
  toEnum 49 = MipsInsBbit1
  toEnum 50 = MipsInsBbit132
  toEnum 51 = MipsInsBc
  toEnum 52 = MipsInsBc0f
  toEnum 53 = MipsInsBc0fl
  toEnum 54 = MipsInsBc0t
  toEnum 55 = MipsInsBc0tl
  toEnum 56 = MipsInsBc1eqz
  toEnum 57 = MipsInsBc1f
  toEnum 58 = MipsInsBc1fl
  toEnum 59 = MipsInsBc1nez
  toEnum 60 = MipsInsBc1t
  toEnum 61 = MipsInsBc1tl
  toEnum 62 = MipsInsBc2eqz
  toEnum 63 = MipsInsBc2f
  toEnum 64 = MipsInsBc2fl
  toEnum 65 = MipsInsBc2nez
  toEnum 66 = MipsInsBc2t
  toEnum 67 = MipsInsBc2tl
  toEnum 68 = MipsInsBc3f
  toEnum 69 = MipsInsBc3fl
  toEnum 70 = MipsInsBc3t
  toEnum 71 = MipsInsBc3tl
  toEnum 72 = MipsInsBclri
  toEnum 73 = MipsInsBclr
  toEnum 74 = MipsInsBeq
  toEnum 75 = MipsInsBeqc
  toEnum 76 = MipsInsBeql
  toEnum 77 = MipsInsBeqz16
  toEnum 78 = MipsInsBeqzalc
  toEnum 79 = MipsInsBeqzc
  toEnum 80 = MipsInsBgec
  toEnum 81 = MipsInsBgeuc
  toEnum 82 = MipsInsBgez
  toEnum 83 = MipsInsBgezal
  toEnum 84 = MipsInsBgezalc
  toEnum 85 = MipsInsBgezall
  toEnum 86 = MipsInsBgezals
  toEnum 87 = MipsInsBgezc
  toEnum 88 = MipsInsBgezl
  toEnum 89 = MipsInsBgtz
  toEnum 90 = MipsInsBgtzalc
  toEnum 91 = MipsInsBgtzc
  toEnum 92 = MipsInsBgtzl
  toEnum 93 = MipsInsBinsli
  toEnum 94 = MipsInsBinsl
  toEnum 95 = MipsInsBinsri
  toEnum 96 = MipsInsBinsr
  toEnum 97 = MipsInsBitrev
  toEnum 98 = MipsInsBitswap
  toEnum 99 = MipsInsBlez
  toEnum 100 = MipsInsBlezalc
  toEnum 101 = MipsInsBlezc
  toEnum 102 = MipsInsBlezl
  toEnum 103 = MipsInsBltc
  toEnum 104 = MipsInsBltuc
  toEnum 105 = MipsInsBltz
  toEnum 106 = MipsInsBltzal
  toEnum 107 = MipsInsBltzalc
  toEnum 108 = MipsInsBltzall
  toEnum 109 = MipsInsBltzals
  toEnum 110 = MipsInsBltzc
  toEnum 111 = MipsInsBltzl
  toEnum 112 = MipsInsBmnzi
  toEnum 113 = MipsInsBmnz
  toEnum 114 = MipsInsBmzi
  toEnum 115 = MipsInsBmz
  toEnum 116 = MipsInsBne
  toEnum 117 = MipsInsBnec
  toEnum 118 = MipsInsBnegi
  toEnum 119 = MipsInsBneg
  toEnum 120 = MipsInsBnel
  toEnum 121 = MipsInsBnez16
  toEnum 122 = MipsInsBnezalc
  toEnum 123 = MipsInsBnezc
  toEnum 124 = MipsInsBnvc
  toEnum 125 = MipsInsBnz
  toEnum 126 = MipsInsBovc
  toEnum 127 = MipsInsBposge32
  toEnum 128 = MipsInsBreak
  toEnum 129 = MipsInsBreak16
  toEnum 130 = MipsInsBseli
  toEnum 131 = MipsInsBsel
  toEnum 132 = MipsInsBseti
  toEnum 133 = MipsInsBset
  toEnum 134 = MipsInsBz
  toEnum 135 = MipsInsBeqz
  toEnum 136 = MipsInsB
  toEnum 137 = MipsInsBnez
  toEnum 138 = MipsInsBteqz
  toEnum 139 = MipsInsBtnez
  toEnum 140 = MipsInsCache
  toEnum 141 = MipsInsCeil
  toEnum 142 = MipsInsCeqi
  toEnum 143 = MipsInsCeq
  toEnum 144 = MipsInsCfc1
  toEnum 145 = MipsInsCfcmsa
  toEnum 146 = MipsInsCins
  toEnum 147 = MipsInsCins32
  toEnum 148 = MipsInsClass
  toEnum 149 = MipsInsCleiS
  toEnum 150 = MipsInsCleiU
  toEnum 151 = MipsInsCleS
  toEnum 152 = MipsInsCleU
  toEnum 153 = MipsInsClo
  toEnum 154 = MipsInsCltiS
  toEnum 155 = MipsInsCltiU
  toEnum 156 = MipsInsCltS
  toEnum 157 = MipsInsCltU
  toEnum 158 = MipsInsClz
  toEnum 159 = MipsInsCmpgdu
  toEnum 160 = MipsInsCmpgu
  toEnum 161 = MipsInsCmpu
  toEnum 162 = MipsInsCmp
  toEnum 163 = MipsInsCopyS
  toEnum 164 = MipsInsCopyU
  toEnum 165 = MipsInsCtc1
  toEnum 166 = MipsInsCtcmsa
  toEnum 167 = MipsInsCvt
  toEnum 168 = MipsInsC
  toEnum 169 = MipsInsCmpi
  toEnum 170 = MipsInsDadd
  toEnum 171 = MipsInsDaddi
  toEnum 172 = MipsInsDaddiu
  toEnum 173 = MipsInsDaddu
  toEnum 174 = MipsInsDahi
  toEnum 175 = MipsInsDalign
  toEnum 176 = MipsInsDati
  toEnum 177 = MipsInsDaui
  toEnum 178 = MipsInsDbitswap
  toEnum 179 = MipsInsDclo
  toEnum 180 = MipsInsDclz
  toEnum 181 = MipsInsDdiv
  toEnum 182 = MipsInsDdivu
  toEnum 183 = MipsInsDeret
  toEnum 184 = MipsInsDext
  toEnum 185 = MipsInsDextm
  toEnum 186 = MipsInsDextu
  toEnum 187 = MipsInsDi
  toEnum 188 = MipsInsDins
  toEnum 189 = MipsInsDinsm
  toEnum 190 = MipsInsDinsu
  toEnum 191 = MipsInsDiv
  toEnum 192 = MipsInsDivu
  toEnum 193 = MipsInsDivS
  toEnum 194 = MipsInsDivU
  toEnum 195 = MipsInsDlsa
  toEnum 196 = MipsInsDmfc0
  toEnum 197 = MipsInsDmfc1
  toEnum 198 = MipsInsDmfc2
  toEnum 199 = MipsInsDmod
  toEnum 200 = MipsInsDmodu
  toEnum 201 = MipsInsDmtc0
  toEnum 202 = MipsInsDmtc1
  toEnum 203 = MipsInsDmtc2
  toEnum 204 = MipsInsDmuh
  toEnum 205 = MipsInsDmuhu
  toEnum 206 = MipsInsDmul
  toEnum 207 = MipsInsDmult
  toEnum 208 = MipsInsDmultu
  toEnum 209 = MipsInsDmulu
  toEnum 210 = MipsInsDotpS
  toEnum 211 = MipsInsDotpU
  toEnum 212 = MipsInsDpaddS
  toEnum 213 = MipsInsDpaddU
  toEnum 214 = MipsInsDpaqxSa
  toEnum 215 = MipsInsDpaqxS
  toEnum 216 = MipsInsDpaqSa
  toEnum 217 = MipsInsDpaqS
  toEnum 218 = MipsInsDpau
  toEnum 219 = MipsInsDpax
  toEnum 220 = MipsInsDpa
  toEnum 221 = MipsInsDpop
  toEnum 222 = MipsInsDpsqxSa
  toEnum 223 = MipsInsDpsqxS
  toEnum 224 = MipsInsDpsqSa
  toEnum 225 = MipsInsDpsqS
  toEnum 226 = MipsInsDpsubS
  toEnum 227 = MipsInsDpsubU
  toEnum 228 = MipsInsDpsu
  toEnum 229 = MipsInsDpsx
  toEnum 230 = MipsInsDps
  toEnum 231 = MipsInsDrotr
  toEnum 232 = MipsInsDrotr32
  toEnum 233 = MipsInsDrotrv
  toEnum 234 = MipsInsDsbh
  toEnum 235 = MipsInsDshd
  toEnum 236 = MipsInsDsll
  toEnum 237 = MipsInsDsll32
  toEnum 238 = MipsInsDsllv
  toEnum 239 = MipsInsDsra
  toEnum 240 = MipsInsDsra32
  toEnum 241 = MipsInsDsrav
  toEnum 242 = MipsInsDsrl
  toEnum 243 = MipsInsDsrl32
  toEnum 244 = MipsInsDsrlv
  toEnum 245 = MipsInsDsub
  toEnum 246 = MipsInsDsubu
  toEnum 247 = MipsInsEhb
  toEnum 248 = MipsInsEi
  toEnum 249 = MipsInsEret
  toEnum 250 = MipsInsExt
  toEnum 251 = MipsInsExtp
  toEnum 252 = MipsInsExtpdp
  toEnum 253 = MipsInsExtpdpv
  toEnum 254 = MipsInsExtpv
  toEnum 255 = MipsInsExtrvRs
  toEnum 256 = MipsInsExtrvR
  toEnum 257 = MipsInsExtrvS
  toEnum 258 = MipsInsExtrv
  toEnum 259 = MipsInsExtrRs
  toEnum 260 = MipsInsExtrR
  toEnum 261 = MipsInsExtrS
  toEnum 262 = MipsInsExtr
  toEnum 263 = MipsInsExts
  toEnum 264 = MipsInsExts32
  toEnum 265 = MipsInsAbs
  toEnum 266 = MipsInsFadd
  toEnum 267 = MipsInsFcaf
  toEnum 268 = MipsInsFceq
  toEnum 269 = MipsInsFclass
  toEnum 270 = MipsInsFcle
  toEnum 271 = MipsInsFclt
  toEnum 272 = MipsInsFcne
  toEnum 273 = MipsInsFcor
  toEnum 274 = MipsInsFcueq
  toEnum 275 = MipsInsFcule
  toEnum 276 = MipsInsFcult
  toEnum 277 = MipsInsFcune
  toEnum 278 = MipsInsFcun
  toEnum 279 = MipsInsFdiv
  toEnum 280 = MipsInsFexdo
  toEnum 281 = MipsInsFexp2
  toEnum 282 = MipsInsFexupl
  toEnum 283 = MipsInsFexupr
  toEnum 284 = MipsInsFfintS
  toEnum 285 = MipsInsFfintU
  toEnum 286 = MipsInsFfql
  toEnum 287 = MipsInsFfqr
  toEnum 288 = MipsInsFill
  toEnum 289 = MipsInsFlog2
  toEnum 290 = MipsInsFloor
  toEnum 291 = MipsInsFmadd
  toEnum 292 = MipsInsFmaxA
  toEnum 293 = MipsInsFmax
  toEnum 294 = MipsInsFminA
  toEnum 295 = MipsInsFmin
  toEnum 296 = MipsInsMov
  toEnum 297 = MipsInsFmsub
  toEnum 298 = MipsInsFmul
  toEnum 299 = MipsInsMul
  toEnum 300 = MipsInsNeg
  toEnum 301 = MipsInsFrcp
  toEnum 302 = MipsInsFrint
  toEnum 303 = MipsInsFrsqrt
  toEnum 304 = MipsInsFsaf
  toEnum 305 = MipsInsFseq
  toEnum 306 = MipsInsFsle
  toEnum 307 = MipsInsFslt
  toEnum 308 = MipsInsFsne
  toEnum 309 = MipsInsFsor
  toEnum 310 = MipsInsFsqrt
  toEnum 311 = MipsInsSqrt
  toEnum 312 = MipsInsFsub
  toEnum 313 = MipsInsSub
  toEnum 314 = MipsInsFsueq
  toEnum 315 = MipsInsFsule
  toEnum 316 = MipsInsFsult
  toEnum 317 = MipsInsFsune
  toEnum 318 = MipsInsFsun
  toEnum 319 = MipsInsFtintS
  toEnum 320 = MipsInsFtintU
  toEnum 321 = MipsInsFtq
  toEnum 322 = MipsInsFtruncS
  toEnum 323 = MipsInsFtruncU
  toEnum 324 = MipsInsHaddS
  toEnum 325 = MipsInsHaddU
  toEnum 326 = MipsInsHsubS
  toEnum 327 = MipsInsHsubU
  toEnum 328 = MipsInsIlvev
  toEnum 329 = MipsInsIlvl
  toEnum 330 = MipsInsIlvod
  toEnum 331 = MipsInsIlvr
  toEnum 332 = MipsInsIns
  toEnum 333 = MipsInsInsert
  toEnum 334 = MipsInsInsv
  toEnum 335 = MipsInsInsve
  toEnum 336 = MipsInsJ
  toEnum 337 = MipsInsJal
  toEnum 338 = MipsInsJalr
  toEnum 339 = MipsInsJalrs16
  toEnum 340 = MipsInsJalrs
  toEnum 341 = MipsInsJals
  toEnum 342 = MipsInsJalx
  toEnum 343 = MipsInsJialc
  toEnum 344 = MipsInsJic
  toEnum 345 = MipsInsJr
  toEnum 346 = MipsInsJr16
  toEnum 347 = MipsInsJraddiusp
  toEnum 348 = MipsInsJrc
  toEnum 349 = MipsInsJalrc
  toEnum 350 = MipsInsLb
  toEnum 351 = MipsInsLbu16
  toEnum 352 = MipsInsLbux
  toEnum 353 = MipsInsLbu
  toEnum 354 = MipsInsLd
  toEnum 355 = MipsInsLdc1
  toEnum 356 = MipsInsLdc2
  toEnum 357 = MipsInsLdc3
  toEnum 358 = MipsInsLdi
  toEnum 359 = MipsInsLdl
  toEnum 360 = MipsInsLdpc
  toEnum 361 = MipsInsLdr
  toEnum 362 = MipsInsLdxc1
  toEnum 363 = MipsInsLh
  toEnum 364 = MipsInsLhu16
  toEnum 365 = MipsInsLhx
  toEnum 366 = MipsInsLhu
  toEnum 367 = MipsInsLi16
  toEnum 368 = MipsInsLl
  toEnum 369 = MipsInsLld
  toEnum 370 = MipsInsLsa
  toEnum 371 = MipsInsLuxc1
  toEnum 372 = MipsInsLui
  toEnum 373 = MipsInsLw
  toEnum 374 = MipsInsLw16
  toEnum 375 = MipsInsLwc1
  toEnum 376 = MipsInsLwc2
  toEnum 377 = MipsInsLwc3
  toEnum 378 = MipsInsLwl
  toEnum 379 = MipsInsLwm16
  toEnum 380 = MipsInsLwm32
  toEnum 381 = MipsInsLwpc
  toEnum 382 = MipsInsLwp
  toEnum 383 = MipsInsLwr
  toEnum 384 = MipsInsLwupc
  toEnum 385 = MipsInsLwu
  toEnum 386 = MipsInsLwx
  toEnum 387 = MipsInsLwxc1
  toEnum 388 = MipsInsLwxs
  toEnum 389 = MipsInsLi
  toEnum 390 = MipsInsMadd
  toEnum 391 = MipsInsMaddf
  toEnum 392 = MipsInsMaddrQ
  toEnum 393 = MipsInsMaddu
  toEnum 394 = MipsInsMaddv
  toEnum 395 = MipsInsMaddQ
  toEnum 396 = MipsInsMaqSa
  toEnum 397 = MipsInsMaqS
  toEnum 398 = MipsInsMaxa
  toEnum 399 = MipsInsMaxiS
  toEnum 400 = MipsInsMaxiU
  toEnum 401 = MipsInsMaxA
  toEnum 402 = MipsInsMax
  toEnum 403 = MipsInsMaxS
  toEnum 404 = MipsInsMaxU
  toEnum 405 = MipsInsMfc0
  toEnum 406 = MipsInsMfc1
  toEnum 407 = MipsInsMfc2
  toEnum 408 = MipsInsMfhc1
  toEnum 409 = MipsInsMfhi
  toEnum 410 = MipsInsMflo
  toEnum 411 = MipsInsMina
  toEnum 412 = MipsInsMiniS
  toEnum 413 = MipsInsMiniU
  toEnum 414 = MipsInsMinA
  toEnum 415 = MipsInsMin
  toEnum 416 = MipsInsMinS
  toEnum 417 = MipsInsMinU
  toEnum 418 = MipsInsMod
  toEnum 419 = MipsInsModsub
  toEnum 420 = MipsInsModu
  toEnum 421 = MipsInsModS
  toEnum 422 = MipsInsModU
  toEnum 423 = MipsInsMove
  toEnum 424 = MipsInsMovep
  toEnum 425 = MipsInsMovf
  toEnum 426 = MipsInsMovn
  toEnum 427 = MipsInsMovt
  toEnum 428 = MipsInsMovz
  toEnum 429 = MipsInsMsub
  toEnum 430 = MipsInsMsubf
  toEnum 431 = MipsInsMsubrQ
  toEnum 432 = MipsInsMsubu
  toEnum 433 = MipsInsMsubv
  toEnum 434 = MipsInsMsubQ
  toEnum 435 = MipsInsMtc0
  toEnum 436 = MipsInsMtc1
  toEnum 437 = MipsInsMtc2
  toEnum 438 = MipsInsMthc1
  toEnum 439 = MipsInsMthi
  toEnum 440 = MipsInsMthlip
  toEnum 441 = MipsInsMtlo
  toEnum 442 = MipsInsMtm0
  toEnum 443 = MipsInsMtm1
  toEnum 444 = MipsInsMtm2
  toEnum 445 = MipsInsMtp0
  toEnum 446 = MipsInsMtp1
  toEnum 447 = MipsInsMtp2
  toEnum 448 = MipsInsMuh
  toEnum 449 = MipsInsMuhu
  toEnum 450 = MipsInsMuleqS
  toEnum 451 = MipsInsMuleuS
  toEnum 452 = MipsInsMulqRs
  toEnum 453 = MipsInsMulqS
  toEnum 454 = MipsInsMulrQ
  toEnum 455 = MipsInsMulsaqS
  toEnum 456 = MipsInsMulsa
  toEnum 457 = MipsInsMult
  toEnum 458 = MipsInsMultu
  toEnum 459 = MipsInsMulu
  toEnum 460 = MipsInsMulv
  toEnum 461 = MipsInsMulQ
  toEnum 462 = MipsInsMulS
  toEnum 463 = MipsInsNloc
  toEnum 464 = MipsInsNlzc
  toEnum 465 = MipsInsNmadd
  toEnum 466 = MipsInsNmsub
  toEnum 467 = MipsInsNor
  toEnum 468 = MipsInsNori
  toEnum 469 = MipsInsNot16
  toEnum 470 = MipsInsNot
  toEnum 471 = MipsInsOr
  toEnum 472 = MipsInsOr16
  toEnum 473 = MipsInsOri
  toEnum 474 = MipsInsPackrl
  toEnum 475 = MipsInsPause
  toEnum 476 = MipsInsPckev
  toEnum 477 = MipsInsPckod
  toEnum 478 = MipsInsPcnt
  toEnum 479 = MipsInsPick
  toEnum 480 = MipsInsPop
  toEnum 481 = MipsInsPrecequ
  toEnum 482 = MipsInsPreceq
  toEnum 483 = MipsInsPreceu
  toEnum 484 = MipsInsPrecrquS
  toEnum 485 = MipsInsPrecrq
  toEnum 486 = MipsInsPrecrqRs
  toEnum 487 = MipsInsPrecr
  toEnum 488 = MipsInsPrecrSra
  toEnum 489 = MipsInsPrecrSraR
  toEnum 490 = MipsInsPref
  toEnum 491 = MipsInsPrepend
  toEnum 492 = MipsInsRaddu
  toEnum 493 = MipsInsRddsp
  toEnum 494 = MipsInsRdhwr
  toEnum 495 = MipsInsReplv
  toEnum 496 = MipsInsRepl
  toEnum 497 = MipsInsRint
  toEnum 498 = MipsInsRotr
  toEnum 499 = MipsInsRotrv
  toEnum 500 = MipsInsRound
  toEnum 501 = MipsInsSatS
  toEnum 502 = MipsInsSatU
  toEnum 503 = MipsInsSb
  toEnum 504 = MipsInsSb16
  toEnum 505 = MipsInsSc
  toEnum 506 = MipsInsScd
  toEnum 507 = MipsInsSd
  toEnum 508 = MipsInsSdbbp
  toEnum 509 = MipsInsSdbbp16
  toEnum 510 = MipsInsSdc1
  toEnum 511 = MipsInsSdc2
  toEnum 512 = MipsInsSdc3
  toEnum 513 = MipsInsSdl
  toEnum 514 = MipsInsSdr
  toEnum 515 = MipsInsSdxc1
  toEnum 516 = MipsInsSeb
  toEnum 517 = MipsInsSeh
  toEnum 518 = MipsInsSeleqz
  toEnum 519 = MipsInsSelnez
  toEnum 520 = MipsInsSel
  toEnum 521 = MipsInsSeq
  toEnum 522 = MipsInsSeqi
  toEnum 523 = MipsInsSh
  toEnum 524 = MipsInsSh16
  toEnum 525 = MipsInsShf
  toEnum 526 = MipsInsShilo
  toEnum 527 = MipsInsShilov
  toEnum 528 = MipsInsShllv
  toEnum 529 = MipsInsShllvS
  toEnum 530 = MipsInsShll
  toEnum 531 = MipsInsShllS
  toEnum 532 = MipsInsShrav
  toEnum 533 = MipsInsShravR
  toEnum 534 = MipsInsShra
  toEnum 535 = MipsInsShraR
  toEnum 536 = MipsInsShrlv
  toEnum 537 = MipsInsShrl
  toEnum 538 = MipsInsSldi
  toEnum 539 = MipsInsSld
  toEnum 540 = MipsInsSll
  toEnum 541 = MipsInsSll16
  toEnum 542 = MipsInsSlli
  toEnum 543 = MipsInsSllv
  toEnum 544 = MipsInsSlt
  toEnum 545 = MipsInsSlti
  toEnum 546 = MipsInsSltiu
  toEnum 547 = MipsInsSltu
  toEnum 548 = MipsInsSne
  toEnum 549 = MipsInsSnei
  toEnum 550 = MipsInsSplati
  toEnum 551 = MipsInsSplat
  toEnum 552 = MipsInsSra
  toEnum 553 = MipsInsSrai
  toEnum 554 = MipsInsSrari
  toEnum 555 = MipsInsSrar
  toEnum 556 = MipsInsSrav
  toEnum 557 = MipsInsSrl
  toEnum 558 = MipsInsSrl16
  toEnum 559 = MipsInsSrli
  toEnum 560 = MipsInsSrlri
  toEnum 561 = MipsInsSrlr
  toEnum 562 = MipsInsSrlv
  toEnum 563 = MipsInsSsnop
  toEnum 564 = MipsInsSt
  toEnum 565 = MipsInsSubqh
  toEnum 566 = MipsInsSubqhR
  toEnum 567 = MipsInsSubq
  toEnum 568 = MipsInsSubqS
  toEnum 569 = MipsInsSubsusU
  toEnum 570 = MipsInsSubsuuS
  toEnum 571 = MipsInsSubsS
  toEnum 572 = MipsInsSubsU
  toEnum 573 = MipsInsSubu16
  toEnum 574 = MipsInsSubuh
  toEnum 575 = MipsInsSubuhR
  toEnum 576 = MipsInsSubu
  toEnum 577 = MipsInsSubuS
  toEnum 578 = MipsInsSubvi
  toEnum 579 = MipsInsSubv
  toEnum 580 = MipsInsSuxc1
  toEnum 581 = MipsInsSw
  toEnum 582 = MipsInsSw16
  toEnum 583 = MipsInsSwc1
  toEnum 584 = MipsInsSwc2
  toEnum 585 = MipsInsSwc3
  toEnum 586 = MipsInsSwl
  toEnum 587 = MipsInsSwm16
  toEnum 588 = MipsInsSwm32
  toEnum 589 = MipsInsSwp
  toEnum 590 = MipsInsSwr
  toEnum 591 = MipsInsSwxc1
  toEnum 592 = MipsInsSync
  toEnum 593 = MipsInsSynci
  toEnum 594 = MipsInsSyscall
  toEnum 595 = MipsInsTeq
  toEnum 596 = MipsInsTeqi
  toEnum 597 = MipsInsTge
  toEnum 598 = MipsInsTgei
  toEnum 599 = MipsInsTgeiu
  toEnum 600 = MipsInsTgeu
  toEnum 601 = MipsInsTlbp
  toEnum 602 = MipsInsTlbr
  toEnum 603 = MipsInsTlbwi
  toEnum 604 = MipsInsTlbwr
  toEnum 605 = MipsInsTlt
  toEnum 606 = MipsInsTlti
  toEnum 607 = MipsInsTltiu
  toEnum 608 = MipsInsTltu
  toEnum 609 = MipsInsTne
  toEnum 610 = MipsInsTnei
  toEnum 611 = MipsInsTrunc
  toEnum 612 = MipsInsV3mulu
  toEnum 613 = MipsInsVmm0
  toEnum 614 = MipsInsVmulu
  toEnum 615 = MipsInsVshf
  toEnum 616 = MipsInsWait
  toEnum 617 = MipsInsWrdsp
  toEnum 618 = MipsInsWsbh
  toEnum 619 = MipsInsXor
  toEnum 620 = MipsInsXor16
  toEnum 621 = MipsInsXori
  toEnum 622 = MipsInsNop
  toEnum 623 = MipsInsNegu
  toEnum 624 = MipsInsJalrHb
  toEnum 625 = MipsInsJrHb
  toEnum 626 = MipsInsEnding
  toEnum unmatched = error ("MipsInsn.toEnum: Cannot match " ++ show unmatched)

{-# LINE 112 "src/Hapstone/Internal/Mips.chs" #-}

-- | MIPS instruction groups
data MipsInsnGroup = MipsGrpInvalid
                   | MipsGrpJump
                   | MipsGrpBitcount
                   | MipsGrpDsp
                   | MipsGrpDspr2
                   | MipsGrpFpidx
                   | MipsGrpMsa
                   | MipsGrpMips32r2
                   | MipsGrpMips64
                   | MipsGrpMips64r2
                   | MipsGrpSeinreg
                   | MipsGrpStdenc
                   | MipsGrpSwap
                   | MipsGrpMicromips
                   | MipsGrpMips16mode
                   | MipsGrpFp64bit
                   | MipsGrpNonansfpmath
                   | MipsGrpNotfp64bit
                   | MipsGrpNotinmicromips
                   | MipsGrpNotnacl
                   | MipsGrpNotmips32r6
                   | MipsGrpNotmips64r6
                   | MipsGrpCnmips
                   | MipsGrpMips32
                   | MipsGrpMips32r6
                   | MipsGrpMips64r6
                   | MipsGrpMips2
                   | MipsGrpMips3
                   | MipsGrpMips332
                   | MipsGrpMips332r2
                   | MipsGrpMips432
                   | MipsGrpMips432r2
                   | MipsGrpMips532r2
                   | MipsGrpGp32bit
                   | MipsGrpGp64bit
                   | MipsGrpEnding
  deriving (Show,Eq,Bounded)
instance Enum MipsInsnGroup where
  succ MipsGrpInvalid = MipsGrpJump
  succ MipsGrpJump = MipsGrpBitcount
  succ MipsGrpBitcount = MipsGrpDsp
  succ MipsGrpDsp = MipsGrpDspr2
  succ MipsGrpDspr2 = MipsGrpFpidx
  succ MipsGrpFpidx = MipsGrpMsa
  succ MipsGrpMsa = MipsGrpMips32r2
  succ MipsGrpMips32r2 = MipsGrpMips64
  succ MipsGrpMips64 = MipsGrpMips64r2
  succ MipsGrpMips64r2 = MipsGrpSeinreg
  succ MipsGrpSeinreg = MipsGrpStdenc
  succ MipsGrpStdenc = MipsGrpSwap
  succ MipsGrpSwap = MipsGrpMicromips
  succ MipsGrpMicromips = MipsGrpMips16mode
  succ MipsGrpMips16mode = MipsGrpFp64bit
  succ MipsGrpFp64bit = MipsGrpNonansfpmath
  succ MipsGrpNonansfpmath = MipsGrpNotfp64bit
  succ MipsGrpNotfp64bit = MipsGrpNotinmicromips
  succ MipsGrpNotinmicromips = MipsGrpNotnacl
  succ MipsGrpNotnacl = MipsGrpNotmips32r6
  succ MipsGrpNotmips32r6 = MipsGrpNotmips64r6
  succ MipsGrpNotmips64r6 = MipsGrpCnmips
  succ MipsGrpCnmips = MipsGrpMips32
  succ MipsGrpMips32 = MipsGrpMips32r6
  succ MipsGrpMips32r6 = MipsGrpMips64r6
  succ MipsGrpMips64r6 = MipsGrpMips2
  succ MipsGrpMips2 = MipsGrpMips3
  succ MipsGrpMips3 = MipsGrpMips332
  succ MipsGrpMips332 = MipsGrpMips332r2
  succ MipsGrpMips332r2 = MipsGrpMips432
  succ MipsGrpMips432 = MipsGrpMips432r2
  succ MipsGrpMips432r2 = MipsGrpMips532r2
  succ MipsGrpMips532r2 = MipsGrpGp32bit
  succ MipsGrpGp32bit = MipsGrpGp64bit
  succ MipsGrpGp64bit = MipsGrpEnding
  succ MipsGrpEnding = error "MipsInsnGroup.succ: MipsGrpEnding has no successor"

  pred MipsGrpJump = MipsGrpInvalid
  pred MipsGrpBitcount = MipsGrpJump
  pred MipsGrpDsp = MipsGrpBitcount
  pred MipsGrpDspr2 = MipsGrpDsp
  pred MipsGrpFpidx = MipsGrpDspr2
  pred MipsGrpMsa = MipsGrpFpidx
  pred MipsGrpMips32r2 = MipsGrpMsa
  pred MipsGrpMips64 = MipsGrpMips32r2
  pred MipsGrpMips64r2 = MipsGrpMips64
  pred MipsGrpSeinreg = MipsGrpMips64r2
  pred MipsGrpStdenc = MipsGrpSeinreg
  pred MipsGrpSwap = MipsGrpStdenc
  pred MipsGrpMicromips = MipsGrpSwap
  pred MipsGrpMips16mode = MipsGrpMicromips
  pred MipsGrpFp64bit = MipsGrpMips16mode
  pred MipsGrpNonansfpmath = MipsGrpFp64bit
  pred MipsGrpNotfp64bit = MipsGrpNonansfpmath
  pred MipsGrpNotinmicromips = MipsGrpNotfp64bit
  pred MipsGrpNotnacl = MipsGrpNotinmicromips
  pred MipsGrpNotmips32r6 = MipsGrpNotnacl
  pred MipsGrpNotmips64r6 = MipsGrpNotmips32r6
  pred MipsGrpCnmips = MipsGrpNotmips64r6
  pred MipsGrpMips32 = MipsGrpCnmips
  pred MipsGrpMips32r6 = MipsGrpMips32
  pred MipsGrpMips64r6 = MipsGrpMips32r6
  pred MipsGrpMips2 = MipsGrpMips64r6
  pred MipsGrpMips3 = MipsGrpMips2
  pred MipsGrpMips332 = MipsGrpMips3
  pred MipsGrpMips332r2 = MipsGrpMips332
  pred MipsGrpMips432 = MipsGrpMips332r2
  pred MipsGrpMips432r2 = MipsGrpMips432
  pred MipsGrpMips532r2 = MipsGrpMips432r2
  pred MipsGrpGp32bit = MipsGrpMips532r2
  pred MipsGrpGp64bit = MipsGrpGp32bit
  pred MipsGrpEnding = MipsGrpGp64bit
  pred MipsGrpInvalid = error "MipsInsnGroup.pred: MipsGrpInvalid 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 MipsGrpEnding

  fromEnum MipsGrpInvalid = 0
  fromEnum MipsGrpJump = 1
  fromEnum MipsGrpBitcount = 128
  fromEnum MipsGrpDsp = 129
  fromEnum MipsGrpDspr2 = 130
  fromEnum MipsGrpFpidx = 131
  fromEnum MipsGrpMsa = 132
  fromEnum MipsGrpMips32r2 = 133
  fromEnum MipsGrpMips64 = 134
  fromEnum MipsGrpMips64r2 = 135
  fromEnum MipsGrpSeinreg = 136
  fromEnum MipsGrpStdenc = 137
  fromEnum MipsGrpSwap = 138
  fromEnum MipsGrpMicromips = 139
  fromEnum MipsGrpMips16mode = 140
  fromEnum MipsGrpFp64bit = 141
  fromEnum MipsGrpNonansfpmath = 142
  fromEnum MipsGrpNotfp64bit = 143
  fromEnum MipsGrpNotinmicromips = 144
  fromEnum MipsGrpNotnacl = 145
  fromEnum MipsGrpNotmips32r6 = 146
  fromEnum MipsGrpNotmips64r6 = 147
  fromEnum MipsGrpCnmips = 148
  fromEnum MipsGrpMips32 = 149
  fromEnum MipsGrpMips32r6 = 150
  fromEnum MipsGrpMips64r6 = 151
  fromEnum MipsGrpMips2 = 152
  fromEnum MipsGrpMips3 = 153
  fromEnum MipsGrpMips332 = 154
  fromEnum MipsGrpMips332r2 = 155
  fromEnum MipsGrpMips432 = 156
  fromEnum MipsGrpMips432r2 = 157
  fromEnum MipsGrpMips532r2 = 158
  fromEnum MipsGrpGp32bit = 159
  fromEnum MipsGrpGp64bit = 160
  fromEnum MipsGrpEnding = 161

  toEnum 0 = MipsGrpInvalid
  toEnum 1 = MipsGrpJump
  toEnum 128 = MipsGrpBitcount
  toEnum 129 = MipsGrpDsp
  toEnum 130 = MipsGrpDspr2
  toEnum 131 = MipsGrpFpidx
  toEnum 132 = MipsGrpMsa
  toEnum 133 = MipsGrpMips32r2
  toEnum 134 = MipsGrpMips64
  toEnum 135 = MipsGrpMips64r2
  toEnum 136 = MipsGrpSeinreg
  toEnum 137 = MipsGrpStdenc
  toEnum 138 = MipsGrpSwap
  toEnum 139 = MipsGrpMicromips
  toEnum 140 = MipsGrpMips16mode
  toEnum 141 = MipsGrpFp64bit
  toEnum 142 = MipsGrpNonansfpmath
  toEnum 143 = MipsGrpNotfp64bit
  toEnum 144 = MipsGrpNotinmicromips
  toEnum 145 = MipsGrpNotnacl
  toEnum 146 = MipsGrpNotmips32r6
  toEnum 147 = MipsGrpNotmips64r6
  toEnum 148 = MipsGrpCnmips
  toEnum 149 = MipsGrpMips32
  toEnum 150 = MipsGrpMips32r6
  toEnum 151 = MipsGrpMips64r6
  toEnum 152 = MipsGrpMips2
  toEnum 153 = MipsGrpMips3
  toEnum 154 = MipsGrpMips332
  toEnum 155 = MipsGrpMips332r2
  toEnum 156 = MipsGrpMips432
  toEnum 157 = MipsGrpMips432r2
  toEnum 158 = MipsGrpMips532r2
  toEnum 159 = MipsGrpGp32bit
  toEnum 160 = MipsGrpGp64bit
  toEnum 161 = MipsGrpEnding
  toEnum unmatched = error ("MipsInsnGroup.toEnum: Cannot match " ++ show unmatched)

{-# LINE 115 "src/Hapstone/Internal/Mips.chs" #-}