-- 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" #-}


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

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

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

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

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

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

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

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

{-# LINE 111 "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 114 "src/Hapstone/Internal/Mips.chs" #-}