LCOV - code coverage report
Current view: directory - src/trusted/validator_arm/gen - arm32_decode.cc (source / functions) Found Hit Coverage
Test: coverage.lcov Lines: 863 0 0.0 %
Date: 2014-09-25 Functions: 0 0 -

       1                 : /*
       2                 :  * Copyright 2013 The Native Client Authors.  All rights reserved.
       3                 :  * Use of this source code is governed by a BSD-style license that can
       4                 :  * be found in the LICENSE file.
       5                 :  */
       6                 : 
       7                 : // DO NOT EDIT: GENERATED CODE
       8                 : 
       9                 : 
      10                 : #include "native_client/src/trusted/validator_arm/gen/arm32_decode.h"
      11                 : 
      12                 : namespace nacl_arm_dec {
      13                 : 
      14                 : 
      15                 : Arm32DecoderState::Arm32DecoderState() : DecoderState()
      16                 :   , Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_()
      17                 :   , Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_()
      18                 :   , Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1_instance_()
      19                 :   , Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_()
      20                 :   , Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_()
      21                 :   , Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_()
      22                 :   , Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1_instance_()
      23                 :   , Actual_BFC_cccc0111110mmmmmddddlllll0011111_case_1_instance_()
      24                 :   , Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1_instance_()
      25                 :   , Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_()
      26                 :   , Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_()
      27                 :   , Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
      28                 :   , Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_()
      29                 :   , Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
      30                 :   , Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
      31                 :   , Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_()
      32                 :   , Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_()
      33                 :   , Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_()
      34                 :   , Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_()
      35                 :   , Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1_instance_()
      36                 :   , Actual_CVT_between_half_precision_and_single_precision_111100111d11ss10dddd011p00m0mmmm_case_1_instance_()
      37                 :   , Actual_DMB_1111010101111111111100000101xxxx_case_1_instance_()
      38                 :   , Actual_ISB_1111010101111111111100000110xxxx_case_1_instance_()
      39                 :   , Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
      40                 :   , Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1_instance_()
      41                 :   , Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1_instance_()
      42                 :   , Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1_instance_()
      43                 :   , Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_()
      44                 :   , Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_()
      45                 :   , Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_()
      46                 :   , Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_()
      47                 :   , Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_()
      48                 :   , Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_()
      49                 :   , Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_()
      50                 :   , Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_()
      51                 :   , Actual_LDR_immediate_cccc010pu0w1nnnnttttiiiiiiiiiiii_case_1_instance_()
      52                 :   , Actual_LDR_literal_cccc0101u0011111ttttiiiiiiiiiiii_case_1_instance_()
      53                 :   , Actual_LDR_register_cccc011pu0w1nnnnttttiiiiitt0mmmm_case_1_instance_()
      54                 :   , Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_()
      55                 :   , Actual_MCR_cccc1110ooo0nnnnttttccccooo1mmmm_case_1_instance_()
      56                 :   , Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1_instance_()
      57                 :   , Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_()
      58                 :   , Actual_MOVE_scalar_to_ARM_core_register_cccc1110iii1nnnntttt1011nii10000_case_1_instance_()
      59                 :   , Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1_instance_()
      60                 :   , Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1_instance_()
      61                 :   , Actual_MRS_cccc00010r001111dddd000000000000_case_1_instance_()
      62                 :   , Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_()
      63                 :   , Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1_instance_()
      64                 :   , Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1_instance_()
      65                 :   , Actual_NOP_cccc0011001000001111000000000000_case_1_instance_()
      66                 :   , Actual_NOT_IMPLEMENTED_case_1_instance_()
      67                 :   , Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_()
      68                 :   , Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_()
      69                 :   , Actual_PLD_PLDW_immediate_11110101ur01nnnn1111iiiiiiiiiiii_case_1_instance_()
      70                 :   , Actual_PLD_PLDW_register_11110111u001nnnn1111iiiiitt0mmmm_case_1_instance_()
      71                 :   , Actual_PLD_literal_11110101u10111111111iiiiiiiiiiii_case_1_instance_()
      72                 :   , Actual_PLI_immediate_literal_11110100u101nnnn1111iiiiiiiiiiii_case_1_instance_()
      73                 :   , Actual_PLI_register_11110110u101nnnn1111iiiiitt0mmmm_case_1_instance_()
      74                 :   , Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1_instance_()
      75                 :   , Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_()
      76                 :   , Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_()
      77                 :   , Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case_1_instance_()
      78                 :   , Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1_instance_()
      79                 :   , Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_()
      80                 :   , Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_instance_()
      81                 :   , Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_()
      82                 :   , Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
      83                 :   , Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1_instance_()
      84                 :   , Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1_instance_()
      85                 :   , Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_()
      86                 :   , Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_()
      87                 :   , Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_()
      88                 :   , Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_()
      89                 :   , Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_()
      90                 :   , Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_()
      91                 :   , Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1_instance_()
      92                 :   , Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1_instance_()
      93                 :   , Actual_SWP_SWPB_cccc00010b00nnnntttt00001001tttt_case_1_instance_()
      94                 :   , Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_()
      95                 :   , Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_()
      96                 :   , Actual_UDF_cccc01111111iiiiiiiiiiii1111iiii_case_1_instance_()
      97                 :   , Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_()
      98                 :   , Actual_Unnamed_case_1_instance_()
      99                 :   , Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1_instance_()
     100                 :   , Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_()
     101                 :   , Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_()
     102                 :   , Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_()
     103                 :   , Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_()
     104                 :   , Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_()
     105                 :   , Actual_VADDHN_111100101dssnnnndddd0100n0m0mmmm_case_1_instance_()
     106                 :   , Actual_VADDL_VADDW_1111001u1dssnnnndddd000pn0m0mmmm_case_1_instance_()
     107                 :   , Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_()
     108                 :   , Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_()
     109                 :   , Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_()
     110                 :   , Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1_instance_()
     111                 :   , Actual_VCVT_VCVTR_between_floating_point_and_integer_Floating_point_cccc11101d111ooodddd101sp1m0mmmm_case_1_instance_()
     112                 :   , Actual_VCVT_between_floating_point_and_fixed_point_1111001u1diiiiiidddd111p0qm1mmmm_case_1_instance_()
     113                 :   , Actual_VCVT_between_floating_point_and_fixed_point_Floating_point_cccc11101d111o1udddd101fx1i0iiii_case_1_instance_()
     114                 :   , Actual_VDUP_ARM_core_register_cccc11101bq0ddddtttt1011d0e10000_case_1_instance_()
     115                 :   , Actual_VDUP_scalar_111100111d11iiiidddd11000qm0mmmm_case_1_instance_()
     116                 :   , Actual_VEXT_111100101d11nnnnddddiiiinqm0mmmm_case_1_instance_()
     117                 :   , Actual_VLD1_multiple_single_elements_111101000d10nnnnddddttttssaammmm_case_1_instance_()
     118                 :   , Actual_VLD1_single_element_to_all_lanes_111101001d10nnnndddd1100sstammmm_case_1_instance_()
     119                 :   , Actual_VLD1_single_element_to_one_lane_111101001d10nnnnddddss00aaaammmm_case_1_instance_()
     120                 :   , Actual_VLD2_multiple_2_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_()
     121                 :   , Actual_VLD2_single_2_element_structure_to_all_lanes_111101001d10nnnndddd1101sstammmm_case_1_instance_()
     122                 :   , Actual_VLD2_single_2_element_structure_to_one_lane_111101001d10nnnnddddss01aaaammmm_case_1_instance_()
     123                 :   , Actual_VLD3_multiple_3_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_()
     124                 :   , Actual_VLD3_single_3_element_structure_to_all_lanes_111101001d10nnnndddd1110sstammmm_case_1_instance_()
     125                 :   , Actual_VLD3_single_3_element_structure_to_one_lane_111101001d10nnnnddddss10aaaammmm_case_1_instance_()
     126                 :   , Actual_VLD4_multiple_4_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_()
     127                 :   , Actual_VLD4_single_4_element_structure_to_all_lanes_111101001d10nnnndddd1111sstammmm_case_1_instance_()
     128                 :   , Actual_VLD4_single_4_element_structure_to_one_lane_111101001d10nnnnddddss11aaaammmm_case_1_instance_()
     129                 :   , Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1_instance_()
     130                 :   , Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1_instance_()
     131                 :   , Actual_VLDR_cccc1101ud01nnnndddd1010iiiiiiii_case_1_instance_()
     132                 :   , Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_()
     133                 :   , Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_1_instance_()
     134                 :   , Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_2_instance_()
     135                 :   , Actual_VMOVN_111100111d11ss10dddd001000m0mmmm_case_1_instance_()
     136                 :   , Actual_VMOV_ARM_core_register_to_scalar_cccc11100ii0ddddtttt1011dii10000_case_1_instance_()
     137                 :   , Actual_VMOV_between_ARM_core_register_and_single_precision_register_cccc1110000onnnntttt1010n0010000_case_1_instance_()
     138                 :   , Actual_VMOV_between_two_ARM_core_registers_and_a_doubleword_extension_register_cccc1100010otttttttt101100m1mmmm_case_1_instance_()
     139                 :   , Actual_VMOV_between_two_ARM_core_registers_and_two_single_precision_registers_cccc1100010otttttttt101000m1mmmm_case_1_instance_()
     140                 :   , Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_()
     141                 :   , Actual_VMRS_cccc111011110001tttt101000010000_case_1_instance_()
     142                 :   , Actual_VMSR_cccc111011100001tttt101000010000_case_1_instance_()
     143                 :   , Actual_VMULL_polynomial_A2_1111001u1dssnnnndddd11p0n0m0mmmm_case_1_instance_()
     144                 :   , Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1_instance_()
     145                 :   , Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_()
     146                 :   , Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1_instance_()
     147                 :   , Actual_VPADD_integer_111100100dssnnnndddd1011n0m1mmmm_case_1_instance_()
     148                 :   , Actual_VPOP_cccc11001d111101dddd1010iiiiiiii_case_1_instance_()
     149                 :   , Actual_VPOP_cccc11001d111101dddd1011iiiiiiii_case_1_instance_()
     150                 :   , Actual_VQDMLAL_VQDMLSL_A1_111100101dssnnnndddd10p1n0m0mmmm_case_1_instance_()
     151                 :   , Actual_VQDMULH_A1_111100100dssnnnndddd1011nqm0mmmm_case_1_instance_()
     152                 :   , Actual_VQMOVN_111100111d11ss10dddd0010ppm0mmmm_case_1_instance_()
     153                 :   , Actual_VQRSHRN_1111001u1diiiiiidddd100p01m1mmmm_case_1_instance_()
     154                 :   , Actual_VQSHL_VQSHLU_immediate_1111001u1diiiiiidddd011plqm1mmmm_case_1_instance_()
     155                 :   , Actual_VREV16_111100111d11ss00dddd000ppqm0mmmm_case_1_instance_()
     156                 :   , Actual_VRSHRN_111100101diiiiiidddd100001m1mmmm_case_1_instance_()
     157                 :   , Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1_instance_()
     158                 :   , Actual_VSHLL_A1_or_VMOVL_1111001u1diiiiiidddd101000m1mmmm_case_1_instance_()
     159                 :   , Actual_VSHLL_A2_111100111d11ss10dddd001100m0mmmm_case_1_instance_()
     160                 :   , Actual_VSTM_cccc110pudw0nnnndddd1010iiiiiiii_case_1_instance_()
     161                 :   , Actual_VSTM_cccc110pudw0nnnndddd1011iiiiiiii_case_1_instance_()
     162                 :   , Actual_VSTR_cccc1101ud00nnnndddd1010iiiiiiii_case_1_instance_()
     163                 :   , Actual_VSWP_111100111d11ss10dddd00000qm0mmmm_case_1_instance_()
     164                 :   , Actual_VTBL_VTBX_111100111d11nnnndddd10ccnpm0mmmm_case_1_instance_()
     165                 :   , Actual_VTRN_111100111d11ss10dddd00001qm0mmmm_case_1_instance_()
     166                 :   , Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1_instance_()
     167               0 : {}
     168                 : 
     169                 : // Implementation of table: ARMv7.
     170                 : // Specified by: See Section A5.1
     171                 : const ClassDecoder& Arm32DecoderState::decode_ARMv7(
     172                 :      const Instruction inst) const
     173               0 : {
     174                 :   if ((inst.Bits() & 0xF0000000)  !=
     175                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     176                 :       (inst.Bits() & 0x0E000000)  ==
     177               0 :           0x04000000 /* op1(27:25)=010 */) {
     178               0 :     return decode_load_store_word_and_unsigned_byte(inst);
     179                 :   }
     180                 : 
     181                 :   if ((inst.Bits() & 0xF0000000)  !=
     182                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     183                 :       (inst.Bits() & 0x0E000000)  ==
     184                 :           0x06000000 /* op1(27:25)=011 */ &&
     185                 :       (inst.Bits() & 0x00000010)  ==
     186               0 :           0x00000000 /* op(4)=0 */) {
     187               0 :     return decode_load_store_word_and_unsigned_byte(inst);
     188                 :   }
     189                 : 
     190                 :   if ((inst.Bits() & 0xF0000000)  !=
     191                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     192                 :       (inst.Bits() & 0x0E000000)  ==
     193                 :           0x06000000 /* op1(27:25)=011 */ &&
     194                 :       (inst.Bits() & 0x00000010)  ==
     195               0 :           0x00000010 /* op(4)=1 */) {
     196               0 :     return decode_media_instructions(inst);
     197                 :   }
     198                 : 
     199                 :   if ((inst.Bits() & 0xF0000000)  !=
     200                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     201                 :       (inst.Bits() & 0x0C000000)  ==
     202               0 :           0x00000000 /* op1(27:25)=00x */) {
     203               0 :     return decode_data_processing_and_miscellaneous_instructions(inst);
     204                 :   }
     205                 : 
     206                 :   if ((inst.Bits() & 0xF0000000)  !=
     207                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     208                 :       (inst.Bits() & 0x0C000000)  ==
     209               0 :           0x08000000 /* op1(27:25)=10x */) {
     210               0 :     return decode_branch_branch_with_link_and_block_data_transfer(inst);
     211                 :   }
     212                 : 
     213                 :   if ((inst.Bits() & 0xF0000000)  !=
     214                 :           0xF0000000 /* cond(31:28)=~1111 */ &&
     215                 :       (inst.Bits() & 0x0C000000)  ==
     216               0 :           0x0C000000 /* op1(27:25)=11x */) {
     217               0 :     return decode_coprocessor_instructions_and_supervisor_call(inst);
     218                 :   }
     219                 : 
     220                 :   if ((inst.Bits() & 0xF0000000)  ==
     221               0 :           0xF0000000 /* cond(31:28)=1111 */) {
     222               0 :     return decode_unconditional_instructions(inst);
     223                 :   }
     224                 : 
     225                 :   // Catch any attempt to fall though ...
     226               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     227               0 : }
     228                 : 
     229                 : // Implementation of table: advanced_simd_data_processing_instructions.
     230                 : // Specified by: See Section A7.4
     231                 : const ClassDecoder& Arm32DecoderState::decode_advanced_simd_data_processing_instructions(
     232                 :      const Instruction inst) const
     233               0 : {
     234                 :   if ((inst.Bits() & 0x00B80000)  ==
     235                 :           0x00800000 /* A(23:19)=1x000 */ &&
     236                 :       (inst.Bits() & 0x00000090)  ==
     237               0 :           0x00000010 /* C(7:4)=0xx1 */) {
     238               0 :     return decode_simd_dp_1imm(inst);
     239                 :   }
     240                 : 
     241                 :   if ((inst.Bits() & 0x00B80000)  ==
     242                 :           0x00880000 /* A(23:19)=1x001 */ &&
     243                 :       (inst.Bits() & 0x00000090)  ==
     244               0 :           0x00000010 /* C(7:4)=0xx1 */) {
     245               0 :     return decode_simd_dp_2shift(inst);
     246                 :   }
     247                 : 
     248                 :   if ((inst.Bits() & 0x00B00000)  ==
     249                 :           0x00900000 /* A(23:19)=1x01x */ &&
     250                 :       (inst.Bits() & 0x00000090)  ==
     251               0 :           0x00000010 /* C(7:4)=0xx1 */) {
     252               0 :     return decode_simd_dp_2shift(inst);
     253                 :   }
     254                 : 
     255                 :   if ((inst.Bits() & 0x00B00000)  ==
     256                 :           0x00A00000 /* A(23:19)=1x10x */ &&
     257                 :       (inst.Bits() & 0x00000050)  ==
     258               0 :           0x00000000 /* C(7:4)=x0x0 */) {
     259               0 :     return decode_simd_dp_3diff(inst);
     260                 :   }
     261                 : 
     262                 :   if ((inst.Bits() & 0x00B00000)  ==
     263                 :           0x00A00000 /* A(23:19)=1x10x */ &&
     264                 :       (inst.Bits() & 0x00000050)  ==
     265               0 :           0x00000040 /* C(7:4)=x1x0 */) {
     266               0 :     return decode_simd_dp_2scalar(inst);
     267                 :   }
     268                 : 
     269                 :   if ((inst.Bits() & 0x00A00000)  ==
     270                 :           0x00800000 /* A(23:19)=1x0xx */ &&
     271                 :       (inst.Bits() & 0x00000050)  ==
     272               0 :           0x00000000 /* C(7:4)=x0x0 */) {
     273               0 :     return decode_simd_dp_3diff(inst);
     274                 :   }
     275                 : 
     276                 :   if ((inst.Bits() & 0x00A00000)  ==
     277                 :           0x00800000 /* A(23:19)=1x0xx */ &&
     278                 :       (inst.Bits() & 0x00000050)  ==
     279               0 :           0x00000040 /* C(7:4)=x1x0 */) {
     280               0 :     return decode_simd_dp_2scalar(inst);
     281                 :   }
     282                 : 
     283                 :   if ((inst.Bits() & 0x00A00000)  ==
     284                 :           0x00A00000 /* A(23:19)=1x1xx */ &&
     285                 :       (inst.Bits() & 0x00000090)  ==
     286               0 :           0x00000010 /* C(7:4)=0xx1 */) {
     287               0 :     return decode_simd_dp_2shift(inst);
     288                 :   }
     289                 : 
     290                 :   if ((inst.Bits() & 0x00800000)  ==
     291               0 :           0x00000000 /* A(23:19)=0xxxx */) {
     292               0 :     return decode_simd_dp_3same(inst);
     293                 :   }
     294                 : 
     295                 :   if ((inst.Bits() & 0x00800000)  ==
     296                 :           0x00800000 /* A(23:19)=1xxxx */ &&
     297                 :       (inst.Bits() & 0x00000090)  ==
     298               0 :           0x00000090 /* C(7:4)=1xx1 */) {
     299               0 :     return decode_simd_dp_2shift(inst);
     300                 :   }
     301                 : 
     302                 :   if ((inst.Bits() & 0x01000000)  ==
     303                 :           0x00000000 /* U(24)=0 */ &&
     304                 :       (inst.Bits() & 0x00B00000)  ==
     305                 :           0x00B00000 /* A(23:19)=1x11x */ &&
     306                 :       (inst.Bits() & 0x00000010)  ==
     307               0 :           0x00000000 /* C(7:4)=xxx0 */) {
     308               0 :     return Actual_VEXT_111100101d11nnnnddddiiiinqm0mmmm_case_1_instance_;
     309                 :   }
     310                 : 
     311                 :   if ((inst.Bits() & 0x01000000)  ==
     312                 :           0x01000000 /* U(24)=1 */ &&
     313                 :       (inst.Bits() & 0x00B00000)  ==
     314                 :           0x00B00000 /* A(23:19)=1x11x */ &&
     315                 :       (inst.Bits() & 0x00000F00)  ==
     316                 :           0x00000C00 /* B(11:8)=1100 */ &&
     317                 :       (inst.Bits() & 0x00000090)  ==
     318               0 :           0x00000000 /* C(7:4)=0xx0 */) {
     319               0 :     return Actual_VDUP_scalar_111100111d11iiiidddd11000qm0mmmm_case_1_instance_;
     320                 :   }
     321                 : 
     322                 :   if ((inst.Bits() & 0x01000000)  ==
     323                 :           0x01000000 /* U(24)=1 */ &&
     324                 :       (inst.Bits() & 0x00B00000)  ==
     325                 :           0x00B00000 /* A(23:19)=1x11x */ &&
     326                 :       (inst.Bits() & 0x00000C00)  ==
     327                 :           0x00000800 /* B(11:8)=10xx */ &&
     328                 :       (inst.Bits() & 0x00000010)  ==
     329               0 :           0x00000000 /* C(7:4)=xxx0 */) {
     330               0 :     return Actual_VTBL_VTBX_111100111d11nnnndddd10ccnpm0mmmm_case_1_instance_;
     331                 :   }
     332                 : 
     333                 :   if ((inst.Bits() & 0x01000000)  ==
     334                 :           0x01000000 /* U(24)=1 */ &&
     335                 :       (inst.Bits() & 0x00B00000)  ==
     336                 :           0x00B00000 /* A(23:19)=1x11x */ &&
     337                 :       (inst.Bits() & 0x00000800)  ==
     338                 :           0x00000000 /* B(11:8)=0xxx */ &&
     339                 :       (inst.Bits() & 0x00000010)  ==
     340               0 :           0x00000000 /* C(7:4)=xxx0 */) {
     341               0 :     return decode_simd_dp_2misc(inst);
     342                 :   }
     343                 : 
     344               0 :   if (true) {
     345               0 :     return Actual_Unnamed_case_1_instance_;
     346                 :   }
     347                 : 
     348                 :   // Catch any attempt to fall though ...
     349               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     350               0 : }
     351                 : 
     352                 : // Implementation of table: advanced_simd_element_or_structure_load_store_instructions.
     353                 : // Specified by: See Section A7.7
     354                 : const ClassDecoder& Arm32DecoderState::decode_advanced_simd_element_or_structure_load_store_instructions(
     355                 :      const Instruction inst) const
     356               0 : {
     357                 :   UNREFERENCED_PARAMETER(inst);
     358                 :   if ((inst.Bits() & 0x00200000)  ==
     359                 :           0x00200000 /* L(21)=1 */ &&
     360                 :       (inst.Bits() & 0x00800000)  ==
     361                 :           0x00800000 /* A(23)=1 */ &&
     362                 :       (inst.Bits() & 0x00000F00)  ==
     363               0 :           0x00000C00 /* B(11:8)=1100 */) {
     364               0 :     return Actual_VLD1_single_element_to_all_lanes_111101001d10nnnndddd1100sstammmm_case_1_instance_;
     365                 :   }
     366                 : 
     367                 :   if ((inst.Bits() & 0x00200000)  ==
     368                 :           0x00200000 /* L(21)=1 */ &&
     369                 :       (inst.Bits() & 0x00800000)  ==
     370                 :           0x00800000 /* A(23)=1 */ &&
     371                 :       (inst.Bits() & 0x00000F00)  ==
     372               0 :           0x00000D00 /* B(11:8)=1101 */) {
     373               0 :     return Actual_VLD2_single_2_element_structure_to_all_lanes_111101001d10nnnndddd1101sstammmm_case_1_instance_;
     374                 :   }
     375                 : 
     376                 :   if ((inst.Bits() & 0x00200000)  ==
     377                 :           0x00200000 /* L(21)=1 */ &&
     378                 :       (inst.Bits() & 0x00800000)  ==
     379                 :           0x00800000 /* A(23)=1 */ &&
     380                 :       (inst.Bits() & 0x00000F00)  ==
     381               0 :           0x00000E00 /* B(11:8)=1110 */) {
     382               0 :     return Actual_VLD3_single_3_element_structure_to_all_lanes_111101001d10nnnndddd1110sstammmm_case_1_instance_;
     383                 :   }
     384                 : 
     385                 :   if ((inst.Bits() & 0x00200000)  ==
     386                 :           0x00200000 /* L(21)=1 */ &&
     387                 :       (inst.Bits() & 0x00800000)  ==
     388                 :           0x00800000 /* A(23)=1 */ &&
     389                 :       (inst.Bits() & 0x00000F00)  ==
     390               0 :           0x00000F00 /* B(11:8)=1111 */) {
     391               0 :     return Actual_VLD4_single_4_element_structure_to_all_lanes_111101001d10nnnndddd1111sstammmm_case_1_instance_;
     392                 :   }
     393                 : 
     394                 :   if ((inst.Bits() & 0x00800000)  ==
     395                 :           0x00000000 /* A(23)=0 */ &&
     396                 :       (inst.Bits() & 0x00000F00)  ==
     397               0 :           0x00000300 /* B(11:8)=0011 */) {
     398               0 :     return Actual_VLD2_multiple_2_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     399                 :   }
     400                 : 
     401                 :   if ((inst.Bits() & 0x00800000)  ==
     402                 :           0x00000000 /* A(23)=0 */ &&
     403                 :       (inst.Bits() & 0x00000700)  ==
     404               0 :           0x00000200 /* B(11:8)=x010 */) {
     405               0 :     return Actual_VLD1_multiple_single_elements_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     406                 :   }
     407                 : 
     408                 :   if ((inst.Bits() & 0x00800000)  ==
     409                 :           0x00000000 /* A(23)=0 */ &&
     410                 :       (inst.Bits() & 0x00000E00)  ==
     411               0 :           0x00000000 /* B(11:8)=000x */) {
     412               0 :     return Actual_VLD4_multiple_4_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     413                 :   }
     414                 : 
     415                 :   if ((inst.Bits() & 0x00800000)  ==
     416                 :           0x00000000 /* A(23)=0 */ &&
     417                 :       (inst.Bits() & 0x00000E00)  ==
     418               0 :           0x00000400 /* B(11:8)=010x */) {
     419               0 :     return Actual_VLD3_multiple_3_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     420                 :   }
     421                 : 
     422                 :   if ((inst.Bits() & 0x00800000)  ==
     423                 :           0x00000000 /* A(23)=0 */ &&
     424                 :       (inst.Bits() & 0x00000E00)  ==
     425               0 :           0x00000600 /* B(11:8)=011x */) {
     426               0 :     return Actual_VLD1_multiple_single_elements_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     427                 :   }
     428                 : 
     429                 :   if ((inst.Bits() & 0x00800000)  ==
     430                 :           0x00000000 /* A(23)=0 */ &&
     431                 :       (inst.Bits() & 0x00000E00)  ==
     432               0 :           0x00000800 /* B(11:8)=100x */) {
     433               0 :     return Actual_VLD2_multiple_2_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
     434                 :   }
     435                 : 
     436                 :   if ((inst.Bits() & 0x00800000)  ==
     437                 :           0x00800000 /* A(23)=1 */ &&
     438                 :       (inst.Bits() & 0x00000F00)  ==
     439               0 :           0x00000800 /* B(11:8)=1000 */) {
     440               0 :     return Actual_VLD1_single_element_to_one_lane_111101001d10nnnnddddss00aaaammmm_case_1_instance_;
     441                 :   }
     442                 : 
     443                 :   if ((inst.Bits() & 0x00800000)  ==
     444                 :           0x00800000 /* A(23)=1 */ &&
     445                 :       (inst.Bits() & 0x00000F00)  ==
     446               0 :           0x00000900 /* B(11:8)=1001 */) {
     447               0 :     return Actual_VLD2_single_2_element_structure_to_one_lane_111101001d10nnnnddddss01aaaammmm_case_1_instance_;
     448                 :   }
     449                 : 
     450                 :   if ((inst.Bits() & 0x00800000)  ==
     451                 :           0x00800000 /* A(23)=1 */ &&
     452                 :       (inst.Bits() & 0x00000F00)  ==
     453               0 :           0x00000A00 /* B(11:8)=1010 */) {
     454               0 :     return Actual_VLD3_single_3_element_structure_to_one_lane_111101001d10nnnnddddss10aaaammmm_case_1_instance_;
     455                 :   }
     456                 : 
     457                 :   if ((inst.Bits() & 0x00800000)  ==
     458                 :           0x00800000 /* A(23)=1 */ &&
     459                 :       (inst.Bits() & 0x00000F00)  ==
     460               0 :           0x00000B00 /* B(11:8)=1011 */) {
     461               0 :     return Actual_VLD4_single_4_element_structure_to_one_lane_111101001d10nnnnddddss11aaaammmm_case_1_instance_;
     462                 :   }
     463                 : 
     464                 :   if ((inst.Bits() & 0x00800000)  ==
     465                 :           0x00800000 /* A(23)=1 */ &&
     466                 :       (inst.Bits() & 0x00000B00)  ==
     467               0 :           0x00000000 /* B(11:8)=0x00 */) {
     468               0 :     return Actual_VLD1_single_element_to_one_lane_111101001d10nnnnddddss00aaaammmm_case_1_instance_;
     469                 :   }
     470                 : 
     471                 :   if ((inst.Bits() & 0x00800000)  ==
     472                 :           0x00800000 /* A(23)=1 */ &&
     473                 :       (inst.Bits() & 0x00000B00)  ==
     474               0 :           0x00000100 /* B(11:8)=0x01 */) {
     475               0 :     return Actual_VLD2_single_2_element_structure_to_one_lane_111101001d10nnnnddddss01aaaammmm_case_1_instance_;
     476                 :   }
     477                 : 
     478                 :   if ((inst.Bits() & 0x00800000)  ==
     479                 :           0x00800000 /* A(23)=1 */ &&
     480                 :       (inst.Bits() & 0x00000B00)  ==
     481               0 :           0x00000200 /* B(11:8)=0x10 */) {
     482               0 :     return Actual_VLD3_single_3_element_structure_to_one_lane_111101001d10nnnnddddss10aaaammmm_case_1_instance_;
     483                 :   }
     484                 : 
     485                 :   if ((inst.Bits() & 0x00800000)  ==
     486                 :           0x00800000 /* A(23)=1 */ &&
     487                 :       (inst.Bits() & 0x00000B00)  ==
     488               0 :           0x00000300 /* B(11:8)=0x11 */) {
     489               0 :     return Actual_VLD4_single_4_element_structure_to_one_lane_111101001d10nnnnddddss11aaaammmm_case_1_instance_;
     490                 :   }
     491                 : 
     492               0 :   if (true) {
     493               0 :     return Actual_Unnamed_case_1_instance_;
     494                 :   }
     495                 : 
     496                 :   // Catch any attempt to fall though ...
     497               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     498               0 : }
     499                 : 
     500                 : // Implementation of table: branch_branch_with_link_and_block_data_transfer.
     501                 : // Specified by: See Section A5.5
     502                 : const ClassDecoder& Arm32DecoderState::decode_branch_branch_with_link_and_block_data_transfer(
     503                 :      const Instruction inst) const
     504               0 : {
     505                 :   UNREFERENCED_PARAMETER(inst);
     506                 :   if ((inst.Bits() & 0x02500000)  ==
     507               0 :           0x00000000 /* op(25:20)=0xx0x0 */) {
     508               0 :     return Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
     509                 :   }
     510                 : 
     511                 :   if ((inst.Bits() & 0x02500000)  ==
     512               0 :           0x00100000 /* op(25:20)=0xx0x1 */) {
     513               0 :     return Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
     514                 :   }
     515                 : 
     516                 :   if ((inst.Bits() & 0x02500000)  ==
     517                 :           0x00400000 /* op(25:20)=0xx1x0 */ &&
     518                 :       (inst.Bits() & 0x00200000)  ==
     519               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
     520               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     521                 :   }
     522                 : 
     523                 :   if ((inst.Bits() & 0x02500000)  ==
     524                 :           0x00500000 /* op(25:20)=0xx1x1 */ &&
     525                 :       (inst.Bits() & 0x00008000)  ==
     526                 :           0x00000000 /* R(15)=0 */ &&
     527                 :       (inst.Bits() & 0x00200000)  ==
     528               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
     529               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     530                 :   }
     531                 : 
     532                 :   if ((inst.Bits() & 0x02500000)  ==
     533                 :           0x00500000 /* op(25:20)=0xx1x1 */ &&
     534                 :       (inst.Bits() & 0x00008000)  ==
     535               0 :           0x00008000 /* R(15)=1 */) {
     536               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     537                 :   }
     538                 : 
     539                 :   if ((inst.Bits() & 0x03000000)  ==
     540               0 :           0x02000000 /* op(25:20)=10xxxx */) {
     541               0 :     return Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     542                 :   }
     543                 : 
     544                 :   if ((inst.Bits() & 0x03000000)  ==
     545               0 :           0x03000000 /* op(25:20)=11xxxx */) {
     546               0 :     return Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     547                 :   }
     548                 : 
     549                 :   // Catch any attempt to fall though ...
     550               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     551               0 : }
     552                 : 
     553                 : // Implementation of table: coprocessor_instructions_and_supervisor_call.
     554                 : // Specified by: See Section A5.6
     555                 : const ClassDecoder& Arm32DecoderState::decode_coprocessor_instructions_and_supervisor_call(
     556                 :      const Instruction inst) const
     557               0 : {
     558                 :   if ((inst.Bits() & 0x03E00000)  ==
     559               0 :           0x00000000 /* op1(25:20)=00000x */) {
     560               0 :     return Actual_Unnamed_case_1_instance_;
     561                 :   }
     562                 : 
     563                 :   if ((inst.Bits() & 0x00000E00)  !=
     564                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     565                 :       (inst.Bits() & 0x03E00000)  ==
     566               0 :           0x00400000 /* op1(25:20)=00010x */) {
     567               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     568                 :   }
     569                 : 
     570                 :   if ((inst.Bits() & 0x00000E00)  !=
     571                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     572                 :       (inst.Bits() & 0x03100000)  ==
     573                 :           0x02000000 /* op1(25:20)=10xxx0 */ &&
     574                 :       (inst.Bits() & 0x00000010)  ==
     575               0 :           0x00000010 /* op(4)=1 */) {
     576               0 :     return Actual_MCR_cccc1110ooo0nnnnttttccccooo1mmmm_case_1_instance_;
     577                 :   }
     578                 : 
     579                 :   if ((inst.Bits() & 0x00000E00)  !=
     580                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     581                 :       (inst.Bits() & 0x03100000)  ==
     582                 :           0x02100000 /* op1(25:20)=10xxx1 */ &&
     583                 :       (inst.Bits() & 0x00000010)  ==
     584               0 :           0x00000010 /* op(4)=1 */) {
     585               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     586                 :   }
     587                 : 
     588                 :   if ((inst.Bits() & 0x00000E00)  !=
     589                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     590                 :       (inst.Bits() & 0x02100000)  ==
     591                 :           0x00000000 /* op1(25:20)=0xxxx0 */ &&
     592                 :       (inst.Bits() & 0x03B00000)  !=
     593               0 :           0x00000000 /* op1_repeated(25:20)=~000x00 */) {
     594               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     595                 :   }
     596                 : 
     597                 :   if ((inst.Bits() & 0x00000E00)  !=
     598                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     599                 :       (inst.Bits() & 0x02100000)  ==
     600                 :           0x00100000 /* op1(25:20)=0xxxx1 */ &&
     601                 :       (inst.Bits() & 0x03B00000)  !=
     602               0 :           0x00100000 /* op1_repeated(25:20)=~000x01 */) {
     603               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     604                 :   }
     605                 : 
     606                 :   if ((inst.Bits() & 0x00000E00)  !=
     607                 :           0x00000A00 /* coproc(11:8)=~101x */ &&
     608                 :       (inst.Bits() & 0x03000000)  ==
     609                 :           0x02000000 /* op1(25:20)=10xxxx */ &&
     610                 :       (inst.Bits() & 0x00000010)  ==
     611               0 :           0x00000000 /* op(4)=0 */) {
     612               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     613                 :   }
     614                 : 
     615                 :   if ((inst.Bits() & 0x00000E00)  ==
     616                 :           0x00000A00 /* coproc(11:8)=101x */ &&
     617                 :       (inst.Bits() & 0x03E00000)  ==
     618               0 :           0x00400000 /* op1(25:20)=00010x */) {
     619               0 :     return decode_transfer_between_arm_core_and_extension_registers_64_bit(inst);
     620                 :   }
     621                 : 
     622                 :   if ((inst.Bits() & 0x00000E00)  ==
     623                 :           0x00000A00 /* coproc(11:8)=101x */ &&
     624                 :       (inst.Bits() & 0x03000000)  ==
     625                 :           0x02000000 /* op1(25:20)=10xxxx */ &&
     626                 :       (inst.Bits() & 0x00000010)  ==
     627               0 :           0x00000000 /* op(4)=0 */) {
     628               0 :     return decode_floating_point_data_processing_instructions(inst);
     629                 :   }
     630                 : 
     631                 :   if ((inst.Bits() & 0x00000E00)  ==
     632                 :           0x00000A00 /* coproc(11:8)=101x */ &&
     633                 :       (inst.Bits() & 0x03000000)  ==
     634                 :           0x02000000 /* op1(25:20)=10xxxx */ &&
     635                 :       (inst.Bits() & 0x00000010)  ==
     636               0 :           0x00000010 /* op(4)=1 */) {
     637               0 :     return decode_transfer_between_arm_core_and_extension_register_8_16_and_32_bit(inst);
     638                 :   }
     639                 : 
     640                 :   if ((inst.Bits() & 0x00000E00)  ==
     641                 :           0x00000A00 /* coproc(11:8)=101x */ &&
     642                 :       (inst.Bits() & 0x02000000)  ==
     643                 :           0x00000000 /* op1(25:20)=0xxxxx */ &&
     644                 :       (inst.Bits() & 0x03A00000)  !=
     645               0 :           0x00000000 /* op1_repeated(25:20)=~000x0x */) {
     646               0 :     return decode_extension_register_load_store_instructions(inst);
     647                 :   }
     648                 : 
     649                 :   if ((inst.Bits() & 0x03000000)  ==
     650               0 :           0x03000000 /* op1(25:20)=11xxxx */) {
     651               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     652                 :   }
     653                 : 
     654                 :   // Catch any attempt to fall though ...
     655               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     656               0 : }
     657                 : 
     658                 : // Implementation of table: data_processing_and_miscellaneous_instructions.
     659                 : // Specified by: See Section A5.2
     660                 : const ClassDecoder& Arm32DecoderState::decode_data_processing_and_miscellaneous_instructions(
     661                 :      const Instruction inst) const
     662               0 : {
     663                 :   if ((inst.Bits() & 0x02000000)  ==
     664                 :           0x00000000 /* op(25)=0 */ &&
     665                 :       (inst.Bits() & 0x01900000)  !=
     666                 :           0x01000000 /* op1(24:20)=~10xx0 */ &&
     667                 :       (inst.Bits() & 0x00000090)  ==
     668               0 :           0x00000010 /* op2(7:4)=0xx1 */) {
     669               0 :     return decode_data_processing_register_shifted_register(inst);
     670                 :   }
     671                 : 
     672                 :   if ((inst.Bits() & 0x02000000)  ==
     673                 :           0x00000000 /* op(25)=0 */ &&
     674                 :       (inst.Bits() & 0x01900000)  !=
     675                 :           0x01000000 /* op1(24:20)=~10xx0 */ &&
     676                 :       (inst.Bits() & 0x00000010)  ==
     677               0 :           0x00000000 /* op2(7:4)=xxx0 */) {
     678               0 :     return decode_data_processing_register(inst);
     679                 :   }
     680                 : 
     681                 :   if ((inst.Bits() & 0x02000000)  ==
     682                 :           0x00000000 /* op(25)=0 */ &&
     683                 :       (inst.Bits() & 0x01900000)  ==
     684                 :           0x01000000 /* op1(24:20)=10xx0 */ &&
     685                 :       (inst.Bits() & 0x00000090)  ==
     686               0 :           0x00000080 /* op2(7:4)=1xx0 */) {
     687               0 :     return decode_halfword_multiply_and_multiply_accumulate(inst);
     688                 :   }
     689                 : 
     690                 :   if ((inst.Bits() & 0x02000000)  ==
     691                 :           0x00000000 /* op(25)=0 */ &&
     692                 :       (inst.Bits() & 0x01900000)  ==
     693                 :           0x01000000 /* op1(24:20)=10xx0 */ &&
     694                 :       (inst.Bits() & 0x00000080)  ==
     695               0 :           0x00000000 /* op2(7:4)=0xxx */) {
     696               0 :     return decode_miscellaneous_instructions(inst);
     697                 :   }
     698                 : 
     699                 :   if ((inst.Bits() & 0x02000000)  ==
     700                 :           0x00000000 /* op(25)=0 */ &&
     701                 :       (inst.Bits() & 0x01200000)  !=
     702                 :           0x00200000 /* op1(24:20)=~0xx1x */ &&
     703                 :       (inst.Bits() & 0x000000F0)  ==
     704               0 :           0x000000B0 /* op2(7:4)=1011 */) {
     705               0 :     return decode_extra_load_store_instructions(inst);
     706                 :   }
     707                 : 
     708                 :   if ((inst.Bits() & 0x02000000)  ==
     709                 :           0x00000000 /* op(25)=0 */ &&
     710                 :       (inst.Bits() & 0x01200000)  !=
     711                 :           0x00200000 /* op1(24:20)=~0xx1x */ &&
     712                 :       (inst.Bits() & 0x000000D0)  ==
     713               0 :           0x000000D0 /* op2(7:4)=11x1 */) {
     714               0 :     return decode_extra_load_store_instructions(inst);
     715                 :   }
     716                 : 
     717                 :   if ((inst.Bits() & 0x02000000)  ==
     718                 :           0x00000000 /* op(25)=0 */ &&
     719                 :       (inst.Bits() & 0x01200000)  ==
     720                 :           0x00200000 /* op1(24:20)=0xx1x */ &&
     721                 :       (inst.Bits() & 0x000000F0)  ==
     722               0 :           0x000000B0 /* op2(7:4)=1011 */) {
     723               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     724                 :   }
     725                 : 
     726                 :   if ((inst.Bits() & 0x02000000)  ==
     727                 :           0x00000000 /* op(25)=0 */ &&
     728                 :       (inst.Bits() & 0x01200000)  ==
     729                 :           0x00200000 /* op1(24:20)=0xx1x */ &&
     730                 :       (inst.Bits() & 0x000000D0)  ==
     731               0 :           0x000000D0 /* op2(7:4)=11x1 */) {
     732               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
     733                 :   }
     734                 : 
     735                 :   if ((inst.Bits() & 0x02000000)  ==
     736                 :           0x00000000 /* op(25)=0 */ &&
     737                 :       (inst.Bits() & 0x01000000)  ==
     738                 :           0x00000000 /* op1(24:20)=0xxxx */ &&
     739                 :       (inst.Bits() & 0x000000F0)  ==
     740               0 :           0x00000090 /* op2(7:4)=1001 */) {
     741               0 :     return decode_multiply_and_multiply_accumulate(inst);
     742                 :   }
     743                 : 
     744                 :   if ((inst.Bits() & 0x02000000)  ==
     745                 :           0x00000000 /* op(25)=0 */ &&
     746                 :       (inst.Bits() & 0x01000000)  ==
     747                 :           0x01000000 /* op1(24:20)=1xxxx */ &&
     748                 :       (inst.Bits() & 0x000000F0)  ==
     749               0 :           0x00000090 /* op2(7:4)=1001 */) {
     750               0 :     return decode_synchronization_primitives(inst);
     751                 :   }
     752                 : 
     753                 :   if ((inst.Bits() & 0x02000000)  ==
     754                 :           0x02000000 /* op(25)=1 */ &&
     755                 :       (inst.Bits() & 0x01B00000)  ==
     756               0 :           0x01000000 /* op1(24:20)=10x00 */) {
     757               0 :     return Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1_instance_;
     758                 :   }
     759                 : 
     760                 :   if ((inst.Bits() & 0x02000000)  ==
     761                 :           0x02000000 /* op(25)=1 */ &&
     762                 :       (inst.Bits() & 0x01B00000)  ==
     763               0 :           0x01200000 /* op1(24:20)=10x10 */) {
     764               0 :     return decode_msr_immediate_and_hints(inst);
     765                 :   }
     766                 : 
     767                 :   if ((inst.Bits() & 0x02000000)  ==
     768                 :           0x02000000 /* op(25)=1 */ &&
     769                 :       (inst.Bits() & 0x01900000)  !=
     770               0 :           0x01000000 /* op1(24:20)=~10xx0 */) {
     771               0 :     return decode_data_processing_immediate(inst);
     772                 :   }
     773                 : 
     774                 :   // Catch any attempt to fall though ...
     775               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     776               0 : }
     777                 : 
     778                 : // Implementation of table: data_processing_immediate.
     779                 : // Specified by: See Section A5.2.3
     780                 : const ClassDecoder& Arm32DecoderState::decode_data_processing_immediate(
     781                 :      const Instruction inst) const
     782               0 : {
     783                 :   UNREFERENCED_PARAMETER(inst);
     784                 :   if ((inst.Bits() & 0x01F00000)  ==
     785                 :           0x01100000 /* op(24:20)=10001 */ &&
     786                 :       (inst.Bits() & 0x0000F000)  ==
     787               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
     788               0 :     return Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_;
     789                 :   }
     790                 : 
     791                 :   if ((inst.Bits() & 0x01F00000)  ==
     792                 :           0x01500000 /* op(24:20)=10101 */ &&
     793                 :       (inst.Bits() & 0x0000F000)  ==
     794               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
     795               0 :     return Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_;
     796                 :   }
     797                 : 
     798                 :   if ((inst.Bits() & 0x01B00000)  ==
     799                 :           0x01300000 /* op(24:20)=10x11 */ &&
     800                 :       (inst.Bits() & 0x0000F000)  ==
     801               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
     802               0 :     return Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_;
     803                 :   }
     804                 : 
     805                 :   if ((inst.Bits() & 0x01E00000)  ==
     806                 :           0x00400000 /* op(24:20)=0010x */ &&
     807                 :       (inst.Bits() & 0x000F0000)  !=
     808               0 :           0x000F0000 /* Rn(19:16)=~1111 */) {
     809               0 :     return Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_;
     810                 :   }
     811                 : 
     812                 :   if ((inst.Bits() & 0x01E00000)  ==
     813                 :           0x00400000 /* op(24:20)=0010x */ &&
     814                 :       (inst.Bits() & 0x000F0000)  ==
     815               0 :           0x000F0000 /* Rn(19:16)=1111 */) {
     816               0 :     return Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_;
     817                 :   }
     818                 : 
     819                 :   if ((inst.Bits() & 0x01E00000)  ==
     820                 :           0x00800000 /* op(24:20)=0100x */ &&
     821                 :       (inst.Bits() & 0x000F0000)  !=
     822               0 :           0x000F0000 /* Rn(19:16)=~1111 */) {
     823               0 :     return Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_;
     824                 :   }
     825                 : 
     826                 :   if ((inst.Bits() & 0x01E00000)  ==
     827                 :           0x00800000 /* op(24:20)=0100x */ &&
     828                 :       (inst.Bits() & 0x000F0000)  ==
     829               0 :           0x000F0000 /* Rn(19:16)=1111 */) {
     830               0 :     return Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_;
     831                 :   }
     832                 : 
     833                 :   if ((inst.Bits() & 0x01E00000)  ==
     834               0 :           0x00A00000 /* op(24:20)=0101x */) {
     835               0 :     return Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_;
     836                 :   }
     837                 : 
     838                 :   if ((inst.Bits() & 0x01E00000)  ==
     839               0 :           0x00C00000 /* op(24:20)=0110x */) {
     840               0 :     return Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_;
     841                 :   }
     842                 : 
     843                 :   if ((inst.Bits() & 0x01E00000)  ==
     844               0 :           0x01800000 /* op(24:20)=1100x */) {
     845               0 :     return Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_;
     846                 :   }
     847                 : 
     848                 :   if ((inst.Bits() & 0x01E00000)  ==
     849               0 :           0x01C00000 /* op(24:20)=1110x */) {
     850               0 :     return Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_;
     851                 :   }
     852                 : 
     853                 :   if ((inst.Bits() & 0x01600000)  ==
     854               0 :           0x00600000 /* op(24:20)=0x11x */) {
     855               0 :     return Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_;
     856                 :   }
     857                 : 
     858                 :   if ((inst.Bits() & 0x01A00000)  ==
     859                 :           0x01A00000 /* op(24:20)=11x1x */ &&
     860                 :       (inst.Bits() & 0x000F0000)  ==
     861               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     862               0 :     return Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1_instance_;
     863                 :   }
     864                 : 
     865                 :   if ((inst.Bits() & 0x01C00000)  ==
     866               0 :           0x00000000 /* op(24:20)=000xx */) {
     867               0 :     return Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_;
     868                 :   }
     869                 : 
     870                 :   // Catch any attempt to fall though ...
     871               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     872               0 : }
     873                 : 
     874                 : // Implementation of table: data_processing_register.
     875                 : // Specified by: See Section A5.2.1
     876                 : const ClassDecoder& Arm32DecoderState::decode_data_processing_register(
     877                 :      const Instruction inst) const
     878               0 : {
     879                 :   UNREFERENCED_PARAMETER(inst);
     880                 :   if ((inst.Bits() & 0x01E00000)  ==
     881                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     882                 :       (inst.Bits() & 0x00000F80)  !=
     883                 :           0x00000000 /* op2(11:7)=~00000 */ &&
     884                 :       (inst.Bits() & 0x00000060)  ==
     885                 :           0x00000000 /* op3(6:5)=00 */ &&
     886                 :       (inst.Bits() & 0x000F0000)  ==
     887               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     888               0 :     return Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_;
     889                 :   }
     890                 : 
     891                 :   if ((inst.Bits() & 0x01E00000)  ==
     892                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     893                 :       (inst.Bits() & 0x00000F80)  !=
     894                 :           0x00000000 /* op2(11:7)=~00000 */ &&
     895                 :       (inst.Bits() & 0x00000060)  ==
     896                 :           0x00000060 /* op3(6:5)=11 */ &&
     897                 :       (inst.Bits() & 0x000F0000)  ==
     898               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     899               0 :     return Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_;
     900                 :   }
     901                 : 
     902                 :   if ((inst.Bits() & 0x01E00000)  ==
     903                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     904                 :       (inst.Bits() & 0x00000F80)  ==
     905                 :           0x00000000 /* op2(11:7)=00000 */ &&
     906                 :       (inst.Bits() & 0x00000060)  ==
     907                 :           0x00000000 /* op3(6:5)=00 */ &&
     908                 :       (inst.Bits() & 0x000F0000)  ==
     909               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     910               0 :     return Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
     911                 :   }
     912                 : 
     913                 :   if ((inst.Bits() & 0x01E00000)  ==
     914                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     915                 :       (inst.Bits() & 0x00000F80)  ==
     916                 :           0x00000000 /* op2(11:7)=00000 */ &&
     917                 :       (inst.Bits() & 0x00000060)  ==
     918                 :           0x00000060 /* op3(6:5)=11 */ &&
     919                 :       (inst.Bits() & 0x000F0000)  ==
     920               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     921               0 :     return Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
     922                 :   }
     923                 : 
     924                 :   if ((inst.Bits() & 0x01E00000)  ==
     925                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     926                 :       (inst.Bits() & 0x00000060)  ==
     927                 :           0x00000020 /* op3(6:5)=01 */ &&
     928                 :       (inst.Bits() & 0x000F0000)  ==
     929               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     930               0 :     return Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
     931                 :   }
     932                 : 
     933                 :   if ((inst.Bits() & 0x01E00000)  ==
     934                 :           0x01A00000 /* op1(24:20)=1101x */ &&
     935                 :       (inst.Bits() & 0x00000060)  ==
     936                 :           0x00000040 /* op3(6:5)=10 */ &&
     937                 :       (inst.Bits() & 0x000F0000)  ==
     938               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     939               0 :     return Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
     940                 :   }
     941                 : 
     942                 :   if ((inst.Bits() & 0x01E00000)  ==
     943                 :           0x01E00000 /* op1(24:20)=1111x */ &&
     944                 :       (inst.Bits() & 0x000F0000)  ==
     945               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     946               0 :     return Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
     947                 :   }
     948                 : 
     949                 :   if ((inst.Bits() & 0x01900000)  ==
     950                 :           0x01100000 /* op1(24:20)=10xx1 */ &&
     951                 :       (inst.Bits() & 0x0000F000)  ==
     952               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
     953               0 :     return Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_;
     954                 :   }
     955                 : 
     956                 :   if ((inst.Bits() & 0x01A00000)  ==
     957               0 :           0x01800000 /* op1(24:20)=11x0x */) {
     958               0 :     return Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_;
     959                 :   }
     960                 : 
     961                 :   if ((inst.Bits() & 0x01000000)  ==
     962               0 :           0x00000000 /* op1(24:20)=0xxxx */) {
     963               0 :     return Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_;
     964                 :   }
     965                 : 
     966                 :   // Catch any attempt to fall though ...
     967               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
     968               0 : }
     969                 : 
     970                 : // Implementation of table: data_processing_register_shifted_register.
     971                 : // Specified by: See Section A5.2.2
     972                 : const ClassDecoder& Arm32DecoderState::decode_data_processing_register_shifted_register(
     973                 :      const Instruction inst) const
     974               0 : {
     975                 :   UNREFERENCED_PARAMETER(inst);
     976                 :   if ((inst.Bits() & 0x01900000)  ==
     977                 :           0x01100000 /* op1(24:20)=10xx1 */ &&
     978                 :       (inst.Bits() & 0x0000F000)  ==
     979               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
     980               0 :     return Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1_instance_;
     981                 :   }
     982                 : 
     983                 :   if ((inst.Bits() & 0x01A00000)  ==
     984               0 :           0x01800000 /* op1(24:20)=11x0x */) {
     985               0 :     return Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1_instance_;
     986                 :   }
     987                 : 
     988                 :   if ((inst.Bits() & 0x01A00000)  ==
     989                 :           0x01A00000 /* op1(24:20)=11x1x */ &&
     990                 :       (inst.Bits() & 0x000F0000)  ==
     991               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx0000xxxxxxxxxxxxxxxx */) {
     992               0 :     return Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1_instance_;
     993                 :   }
     994                 : 
     995                 :   if ((inst.Bits() & 0x01000000)  ==
     996               0 :           0x00000000 /* op1(24:20)=0xxxx */) {
     997               0 :     return Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1_instance_;
     998                 :   }
     999                 : 
    1000                 :   // Catch any attempt to fall though ...
    1001               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1002               0 : }
    1003                 : 
    1004                 : // Implementation of table: extension_register_load_store_instructions.
    1005                 : // Specified by: A7.6
    1006                 : const ClassDecoder& Arm32DecoderState::decode_extension_register_load_store_instructions(
    1007                 :      const Instruction inst) const
    1008               0 : {
    1009                 :   if ((inst.Bits() & 0x01B00000)  ==
    1010                 :           0x00900000 /* opcode(24:20)=01x01 */ &&
    1011                 :       (inst.Bits() & 0x00000100)  ==
    1012               0 :           0x00000000 /* S(8)=0 */) {
    1013               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1_instance_;
    1014                 :   }
    1015                 : 
    1016                 :   if ((inst.Bits() & 0x01B00000)  ==
    1017                 :           0x00900000 /* opcode(24:20)=01x01 */ &&
    1018                 :       (inst.Bits() & 0x00000100)  ==
    1019               0 :           0x00000100 /* S(8)=1 */) {
    1020               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1_instance_;
    1021                 :   }
    1022                 : 
    1023                 :   if ((inst.Bits() & 0x01B00000)  ==
    1024                 :           0x00B00000 /* opcode(24:20)=01x11 */ &&
    1025                 :       (inst.Bits() & 0x000F0000)  !=
    1026                 :           0x000D0000 /* Rn(19:16)=~1101 */ &&
    1027                 :       (inst.Bits() & 0x00000100)  ==
    1028               0 :           0x00000000 /* S(8)=0 */) {
    1029               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1_instance_;
    1030                 :   }
    1031                 : 
    1032                 :   if ((inst.Bits() & 0x01B00000)  ==
    1033                 :           0x00B00000 /* opcode(24:20)=01x11 */ &&
    1034                 :       (inst.Bits() & 0x000F0000)  !=
    1035                 :           0x000D0000 /* Rn(19:16)=~1101 */ &&
    1036                 :       (inst.Bits() & 0x00000100)  ==
    1037               0 :           0x00000100 /* S(8)=1 */) {
    1038               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1_instance_;
    1039                 :   }
    1040                 : 
    1041                 :   if ((inst.Bits() & 0x01B00000)  ==
    1042                 :           0x00B00000 /* opcode(24:20)=01x11 */ &&
    1043                 :       (inst.Bits() & 0x000F0000)  ==
    1044                 :           0x000D0000 /* Rn(19:16)=1101 */ &&
    1045                 :       (inst.Bits() & 0x00000100)  ==
    1046               0 :           0x00000000 /* S(8)=0 */) {
    1047               0 :     return Actual_VPOP_cccc11001d111101dddd1010iiiiiiii_case_1_instance_;
    1048                 :   }
    1049                 : 
    1050                 :   if ((inst.Bits() & 0x01B00000)  ==
    1051                 :           0x00B00000 /* opcode(24:20)=01x11 */ &&
    1052                 :       (inst.Bits() & 0x000F0000)  ==
    1053                 :           0x000D0000 /* Rn(19:16)=1101 */ &&
    1054                 :       (inst.Bits() & 0x00000100)  ==
    1055               0 :           0x00000100 /* S(8)=1 */) {
    1056               0 :     return Actual_VPOP_cccc11001d111101dddd1011iiiiiiii_case_1_instance_;
    1057                 :   }
    1058                 : 
    1059                 :   if ((inst.Bits() & 0x01B00000)  ==
    1060                 :           0x01200000 /* opcode(24:20)=10x10 */ &&
    1061                 :       (inst.Bits() & 0x000F0000)  !=
    1062                 :           0x000D0000 /* Rn(19:16)=~1101 */ &&
    1063                 :       (inst.Bits() & 0x00000100)  ==
    1064               0 :           0x00000000 /* S(8)=0 */) {
    1065               0 :     return Actual_VSTM_cccc110pudw0nnnndddd1010iiiiiiii_case_1_instance_;
    1066                 :   }
    1067                 : 
    1068                 :   if ((inst.Bits() & 0x01B00000)  ==
    1069                 :           0x01200000 /* opcode(24:20)=10x10 */ &&
    1070                 :       (inst.Bits() & 0x000F0000)  !=
    1071                 :           0x000D0000 /* Rn(19:16)=~1101 */ &&
    1072                 :       (inst.Bits() & 0x00000100)  ==
    1073               0 :           0x00000100 /* S(8)=1 */) {
    1074               0 :     return Actual_VSTM_cccc110pudw0nnnndddd1011iiiiiiii_case_1_instance_;
    1075                 :   }
    1076                 : 
    1077                 :   if ((inst.Bits() & 0x01B00000)  ==
    1078                 :           0x01200000 /* opcode(24:20)=10x10 */ &&
    1079                 :       (inst.Bits() & 0x000F0000)  ==
    1080                 :           0x000D0000 /* Rn(19:16)=1101 */ &&
    1081                 :       (inst.Bits() & 0x00000100)  ==
    1082               0 :           0x00000000 /* S(8)=0 */) {
    1083               0 :     return Actual_VPOP_cccc11001d111101dddd1010iiiiiiii_case_1_instance_;
    1084                 :   }
    1085                 : 
    1086                 :   if ((inst.Bits() & 0x01B00000)  ==
    1087                 :           0x01200000 /* opcode(24:20)=10x10 */ &&
    1088                 :       (inst.Bits() & 0x000F0000)  ==
    1089                 :           0x000D0000 /* Rn(19:16)=1101 */ &&
    1090                 :       (inst.Bits() & 0x00000100)  ==
    1091               0 :           0x00000100 /* S(8)=1 */) {
    1092               0 :     return Actual_VPOP_cccc11001d111101dddd1011iiiiiiii_case_1_instance_;
    1093                 :   }
    1094                 : 
    1095                 :   if ((inst.Bits() & 0x01B00000)  ==
    1096                 :           0x01300000 /* opcode(24:20)=10x11 */ &&
    1097                 :       (inst.Bits() & 0x00000100)  ==
    1098               0 :           0x00000000 /* S(8)=0 */) {
    1099               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1_instance_;
    1100                 :   }
    1101                 : 
    1102                 :   if ((inst.Bits() & 0x01B00000)  ==
    1103                 :           0x01300000 /* opcode(24:20)=10x11 */ &&
    1104                 :       (inst.Bits() & 0x00000100)  ==
    1105               0 :           0x00000100 /* S(8)=1 */) {
    1106               0 :     return Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1_instance_;
    1107                 :   }
    1108                 : 
    1109                 :   if ((inst.Bits() & 0x01E00000)  ==
    1110               0 :           0x00400000 /* opcode(24:20)=0010x */) {
    1111               0 :     return decode_transfer_between_arm_core_and_extension_registers_64_bit(inst);
    1112                 :   }
    1113                 : 
    1114                 :   if ((inst.Bits() & 0x01300000)  ==
    1115               0 :           0x01000000 /* opcode(24:20)=1xx00 */) {
    1116               0 :     return Actual_VSTR_cccc1101ud00nnnndddd1010iiiiiiii_case_1_instance_;
    1117                 :   }
    1118                 : 
    1119                 :   if ((inst.Bits() & 0x01300000)  ==
    1120               0 :           0x01100000 /* opcode(24:20)=1xx01 */) {
    1121               0 :     return Actual_VLDR_cccc1101ud01nnnndddd1010iiiiiiii_case_1_instance_;
    1122                 :   }
    1123                 : 
    1124                 :   if ((inst.Bits() & 0x01900000)  ==
    1125                 :           0x00800000 /* opcode(24:20)=01xx0 */ &&
    1126                 :       (inst.Bits() & 0x00000100)  ==
    1127               0 :           0x00000000 /* S(8)=0 */) {
    1128               0 :     return Actual_VSTM_cccc110pudw0nnnndddd1010iiiiiiii_case_1_instance_;
    1129                 :   }
    1130                 : 
    1131                 :   if ((inst.Bits() & 0x01900000)  ==
    1132                 :           0x00800000 /* opcode(24:20)=01xx0 */ &&
    1133                 :       (inst.Bits() & 0x00000100)  ==
    1134               0 :           0x00000100 /* S(8)=1 */) {
    1135               0 :     return Actual_VSTM_cccc110pudw0nnnndddd1011iiiiiiii_case_1_instance_;
    1136                 :   }
    1137                 : 
    1138                 :   // Catch any attempt to fall though ...
    1139               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1140               0 : }
    1141                 : 
    1142                 : // Implementation of table: extra_load_store_instructions.
    1143                 : // Specified by: See Section A5.2.8
    1144                 : const ClassDecoder& Arm32DecoderState::decode_extra_load_store_instructions(
    1145                 :      const Instruction inst) const
    1146               0 : {
    1147                 :   UNREFERENCED_PARAMETER(inst);
    1148                 :   if ((inst.Bits() & 0x00000060)  ==
    1149                 :           0x00000020 /* op2(6:5)=01 */ &&
    1150                 :       (inst.Bits() & 0x00500000)  ==
    1151                 :           0x00000000 /* op1(24:20)=xx0x0 */ &&
    1152                 :       (inst.Bits() & 0x00000F00)  ==
    1153               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    1154               0 :     return Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_;
    1155                 :   }
    1156                 : 
    1157                 :   if ((inst.Bits() & 0x00000060)  ==
    1158                 :           0x00000020 /* op2(6:5)=01 */ &&
    1159                 :       (inst.Bits() & 0x00500000)  ==
    1160               0 :           0x00400000 /* op1(24:20)=xx1x0 */) {
    1161               0 :     return Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_;
    1162                 :   }
    1163                 : 
    1164                 :   if ((inst.Bits() & 0x00000060)  ==
    1165                 :           0x00000020 /* op2(6:5)=01 */ &&
    1166                 :       (inst.Bits() & 0x00500000)  ==
    1167                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1168                 :       (inst.Bits() & 0x000F0000)  ==
    1169               0 :           0x000F0000 /* Rn(19:16)=1111 */) {
    1170               0 :     return Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_;
    1171                 :   }
    1172                 : 
    1173                 :   if ((inst.Bits() & 0x00000060)  ==
    1174                 :           0x00000040 /* op2(6:5)=10 */ &&
    1175                 :       (inst.Bits() & 0x00500000)  ==
    1176                 :           0x00000000 /* op1(24:20)=xx0x0 */ &&
    1177                 :       (inst.Bits() & 0x00000F00)  ==
    1178               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    1179               0 :     return Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_;
    1180                 :   }
    1181                 : 
    1182                 :   if ((inst.Bits() & 0x00000060)  ==
    1183                 :           0x00000040 /* op2(6:5)=10 */ &&
    1184                 :       (inst.Bits() & 0x00500000)  ==
    1185                 :           0x00100000 /* op1(24:20)=xx0x1 */ &&
    1186                 :       (inst.Bits() & 0x00000F00)  ==
    1187               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    1188               0 :     return Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_;
    1189                 :   }
    1190                 : 
    1191                 :   if ((inst.Bits() & 0x00000060)  ==
    1192                 :           0x00000040 /* op2(6:5)=10 */ &&
    1193                 :       (inst.Bits() & 0x00500000)  ==
    1194                 :           0x00400000 /* op1(24:20)=xx1x0 */ &&
    1195                 :       (inst.Bits() & 0x000F0000)  !=
    1196               0 :           0x000F0000 /* Rn(19:16)=~1111 */) {
    1197               0 :     return Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_;
    1198                 :   }
    1199                 : 
    1200                 :   if ((inst.Bits() & 0x00000060)  ==
    1201                 :           0x00000040 /* op2(6:5)=10 */ &&
    1202                 :       (inst.Bits() & 0x00500000)  ==
    1203                 :           0x00400000 /* op1(24:20)=xx1x0 */ &&
    1204                 :       (inst.Bits() & 0x000F0000)  ==
    1205                 :           0x000F0000 /* Rn(19:16)=1111 */ &&
    1206                 :       (inst.Bits() & 0x01200000)  ==
    1207               0 :           0x01000000 /* $pattern(31:0)=xxxxxxx1xx0xxxxxxxxxxxxxxxxxxxxx */) {
    1208               0 :     return Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_;
    1209                 :   }
    1210                 : 
    1211                 :   if ((inst.Bits() & 0x00000060)  ==
    1212                 :           0x00000040 /* op2(6:5)=10 */ &&
    1213                 :       (inst.Bits() & 0x00500000)  ==
    1214                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1215                 :       (inst.Bits() & 0x000F0000)  !=
    1216               0 :           0x000F0000 /* Rn(19:16)=~1111 */) {
    1217               0 :     return Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_;
    1218                 :   }
    1219                 : 
    1220                 :   if ((inst.Bits() & 0x00000060)  ==
    1221                 :           0x00000060 /* op2(6:5)=11 */ &&
    1222                 :       (inst.Bits() & 0x00500000)  ==
    1223                 :           0x00000000 /* op1(24:20)=xx0x0 */ &&
    1224                 :       (inst.Bits() & 0x00000F00)  ==
    1225               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    1226               0 :     return Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_;
    1227                 :   }
    1228                 : 
    1229                 :   if ((inst.Bits() & 0x00000060)  ==
    1230                 :           0x00000060 /* op2(6:5)=11 */ &&
    1231                 :       (inst.Bits() & 0x00500000)  ==
    1232               0 :           0x00400000 /* op1(24:20)=xx1x0 */) {
    1233               0 :     return Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_;
    1234                 :   }
    1235                 : 
    1236                 :   if ((inst.Bits() & 0x00000020)  ==
    1237                 :           0x00000020 /* op2(6:5)=x1 */ &&
    1238                 :       (inst.Bits() & 0x00500000)  ==
    1239                 :           0x00100000 /* op1(24:20)=xx0x1 */ &&
    1240                 :       (inst.Bits() & 0x00000F00)  ==
    1241               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    1242               0 :     return Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_;
    1243                 :   }
    1244                 : 
    1245                 :   if ((inst.Bits() & 0x00000020)  ==
    1246                 :           0x00000020 /* op2(6:5)=x1 */ &&
    1247                 :       (inst.Bits() & 0x00500000)  ==
    1248                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1249                 :       (inst.Bits() & 0x000F0000)  !=
    1250               0 :           0x000F0000 /* Rn(19:16)=~1111 */) {
    1251               0 :     return Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_;
    1252                 :   }
    1253                 : 
    1254                 :   if ((inst.Bits() & 0x00000040)  ==
    1255                 :           0x00000040 /* op2(6:5)=1x */ &&
    1256                 :       (inst.Bits() & 0x00500000)  ==
    1257                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1258                 :       (inst.Bits() & 0x000F0000)  ==
    1259                 :           0x000F0000 /* Rn(19:16)=1111 */ &&
    1260                 :       (inst.Bits() & 0x01200000)  ==
    1261               0 :           0x01000000 /* $pattern(31:0)=xxxxxxx1xx0xxxxxxxxxxxxxxxxxxxxx */) {
    1262               0 :     return Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_;
    1263                 :   }
    1264                 : 
    1265                 :   // Catch any attempt to fall though ...
    1266               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1267               0 : }
    1268                 : 
    1269                 : // Implementation of table: floating_point_data_processing_instructions.
    1270                 : // Specified by: A7.5 Table A7 - 16
    1271                 : const ClassDecoder& Arm32DecoderState::decode_floating_point_data_processing_instructions(
    1272                 :      const Instruction inst) const
    1273               0 : {
    1274                 :   if ((inst.Bits() & 0x00B00000)  ==
    1275               0 :           0x00300000 /* opc1(23:20)=0x11 */) {
    1276               0 :     return Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
    1277                 :   }
    1278                 : 
    1279                 :   if ((inst.Bits() & 0x00B00000)  ==
    1280                 :           0x00800000 /* opc1(23:20)=1x00 */ &&
    1281                 :       (inst.Bits() & 0x00000040)  ==
    1282               0 :           0x00000000 /* opc3(7:6)=x0 */) {
    1283               0 :     return Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
    1284                 :   }
    1285                 : 
    1286                 :   if ((inst.Bits() & 0x00B00000)  ==
    1287               0 :           0x00900000 /* opc1(23:20)=1x01 */) {
    1288               0 :     return Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
    1289                 :   }
    1290                 : 
    1291                 :   if ((inst.Bits() & 0x00B00000)  ==
    1292               0 :           0x00B00000 /* opc1(23:20)=1x11 */) {
    1293               0 :     return decode_other_floating_point_data_processing_instructions(inst);
    1294                 :   }
    1295                 : 
    1296                 :   if ((inst.Bits() & 0x00300000)  ==
    1297               0 :           0x00200000 /* opc1(23:20)=xx10 */) {
    1298               0 :     return Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
    1299                 :   }
    1300                 : 
    1301                 :   if ((inst.Bits() & 0x00A00000)  ==
    1302               0 :           0x00000000 /* opc1(23:20)=0x0x */) {
    1303               0 :     return Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
    1304                 :   }
    1305                 : 
    1306                 :   // Catch any attempt to fall though ...
    1307               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1308               0 : }
    1309                 : 
    1310                 : // Implementation of table: halfword_multiply_and_multiply_accumulate.
    1311                 : // Specified by: See Section A5.2.7
    1312                 : const ClassDecoder& Arm32DecoderState::decode_halfword_multiply_and_multiply_accumulate(
    1313                 :      const Instruction inst) const
    1314               0 : {
    1315                 :   UNREFERENCED_PARAMETER(inst);
    1316                 :   if ((inst.Bits() & 0x00600000)  ==
    1317               0 :           0x00000000 /* op1(22:21)=00 */) {
    1318               0 :     return Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_;
    1319                 :   }
    1320                 : 
    1321                 :   if ((inst.Bits() & 0x00600000)  ==
    1322                 :           0x00200000 /* op1(22:21)=01 */ &&
    1323                 :       (inst.Bits() & 0x00000020)  ==
    1324               0 :           0x00000000 /* op(5)=0 */) {
    1325               0 :     return Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_;
    1326                 :   }
    1327                 : 
    1328                 :   if ((inst.Bits() & 0x00600000)  ==
    1329                 :           0x00200000 /* op1(22:21)=01 */ &&
    1330                 :       (inst.Bits() & 0x00000020)  ==
    1331                 :           0x00000020 /* op(5)=1 */ &&
    1332                 :       (inst.Bits() & 0x0000F000)  ==
    1333               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
    1334               0 :     return Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_instance_;
    1335                 :   }
    1336                 : 
    1337                 :   if ((inst.Bits() & 0x00600000)  ==
    1338               0 :           0x00400000 /* op1(22:21)=10 */) {
    1339               0 :     return Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case_1_instance_;
    1340                 :   }
    1341                 : 
    1342                 :   if ((inst.Bits() & 0x00600000)  ==
    1343                 :           0x00600000 /* op1(22:21)=11 */ &&
    1344                 :       (inst.Bits() & 0x0000F000)  ==
    1345               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
    1346               0 :     return Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_instance_;
    1347                 :   }
    1348                 : 
    1349                 :   // Catch any attempt to fall though ...
    1350               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1351               0 : }
    1352                 : 
    1353                 : // Implementation of table: load_store_word_and_unsigned_byte.
    1354                 : // Specified by: See Section A5.3
    1355                 : const ClassDecoder& Arm32DecoderState::decode_load_store_word_and_unsigned_byte(
    1356                 :      const Instruction inst) const
    1357               0 : {
    1358                 :   UNREFERENCED_PARAMETER(inst);
    1359                 :   if ((inst.Bits() & 0x02000000)  ==
    1360                 :           0x00000000 /* A(25)=0 */ &&
    1361                 :       (inst.Bits() & 0x00500000)  ==
    1362                 :           0x00000000 /* op1(24:20)=xx0x0 */ &&
    1363                 :       (inst.Bits() & 0x01700000)  !=
    1364               0 :           0x00200000 /* op1_repeated(24:20)=~0x010 */) {
    1365               0 :     return Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1_instance_;
    1366                 :   }
    1367                 : 
    1368                 :   if ((inst.Bits() & 0x02000000)  ==
    1369                 :           0x00000000 /* A(25)=0 */ &&
    1370                 :       (inst.Bits() & 0x00500000)  ==
    1371                 :           0x00100000 /* op1(24:20)=xx0x1 */ &&
    1372                 :       (inst.Bits() & 0x000F0000)  !=
    1373                 :           0x000F0000 /* Rn(19:16)=~1111 */ &&
    1374                 :       (inst.Bits() & 0x01700000)  !=
    1375               0 :           0x00300000 /* op1_repeated(24:20)=~0x011 */) {
    1376               0 :     return Actual_LDR_immediate_cccc010pu0w1nnnnttttiiiiiiiiiiii_case_1_instance_;
    1377                 :   }
    1378                 : 
    1379                 :   if ((inst.Bits() & 0x02000000)  ==
    1380                 :           0x00000000 /* A(25)=0 */ &&
    1381                 :       (inst.Bits() & 0x00500000)  ==
    1382                 :           0x00100000 /* op1(24:20)=xx0x1 */ &&
    1383                 :       (inst.Bits() & 0x000F0000)  ==
    1384                 :           0x000F0000 /* Rn(19:16)=1111 */ &&
    1385                 :       (inst.Bits() & 0x01700000)  !=
    1386                 :           0x00300000 /* op1_repeated(24:20)=~0x011 */ &&
    1387                 :       (inst.Bits() & 0x01200000)  ==
    1388               0 :           0x01000000 /* $pattern(31:0)=xxxxxxx1xx0xxxxxxxxxxxxxxxxxxxxx */) {
    1389               0 :     return Actual_LDR_literal_cccc0101u0011111ttttiiiiiiiiiiii_case_1_instance_;
    1390                 :   }
    1391                 : 
    1392                 :   if ((inst.Bits() & 0x02000000)  ==
    1393                 :           0x00000000 /* A(25)=0 */ &&
    1394                 :       (inst.Bits() & 0x00500000)  ==
    1395                 :           0x00400000 /* op1(24:20)=xx1x0 */ &&
    1396                 :       (inst.Bits() & 0x01700000)  !=
    1397               0 :           0x00600000 /* op1_repeated(24:20)=~0x110 */) {
    1398               0 :     return Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1_instance_;
    1399                 :   }
    1400                 : 
    1401                 :   if ((inst.Bits() & 0x02000000)  ==
    1402                 :           0x00000000 /* A(25)=0 */ &&
    1403                 :       (inst.Bits() & 0x00500000)  ==
    1404                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1405                 :       (inst.Bits() & 0x000F0000)  !=
    1406                 :           0x000F0000 /* Rn(19:16)=~1111 */ &&
    1407                 :       (inst.Bits() & 0x01700000)  !=
    1408               0 :           0x00700000 /* op1_repeated(24:20)=~0x111 */) {
    1409               0 :     return Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1_instance_;
    1410                 :   }
    1411                 : 
    1412                 :   if ((inst.Bits() & 0x02000000)  ==
    1413                 :           0x00000000 /* A(25)=0 */ &&
    1414                 :       (inst.Bits() & 0x00500000)  ==
    1415                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1416                 :       (inst.Bits() & 0x000F0000)  ==
    1417                 :           0x000F0000 /* Rn(19:16)=1111 */ &&
    1418                 :       (inst.Bits() & 0x01700000)  !=
    1419                 :           0x00700000 /* op1_repeated(24:20)=~0x111 */ &&
    1420                 :       (inst.Bits() & 0x01200000)  ==
    1421               0 :           0x01000000 /* $pattern(31:0)=xxxxxxx1xx0xxxxxxxxxxxxxxxxxxxxx */) {
    1422               0 :     return Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1_instance_;
    1423                 :   }
    1424                 : 
    1425                 :   if ((inst.Bits() & 0x02000000)  ==
    1426                 :           0x00000000 /* A(25)=0 */ &&
    1427                 :       (inst.Bits() & 0x01200000)  ==
    1428               0 :           0x00200000 /* op1(24:20)=0xx1x */) {
    1429               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1430                 :   }
    1431                 : 
    1432                 :   if ((inst.Bits() & 0x02000000)  ==
    1433                 :           0x02000000 /* A(25)=1 */ &&
    1434                 :       (inst.Bits() & 0x00500000)  ==
    1435                 :           0x00000000 /* op1(24:20)=xx0x0 */ &&
    1436                 :       (inst.Bits() & 0x00000010)  ==
    1437                 :           0x00000000 /* B(4)=0 */ &&
    1438                 :       (inst.Bits() & 0x01700000)  !=
    1439               0 :           0x00200000 /* op1_repeated(24:20)=~0x010 */) {
    1440               0 :     return Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1_instance_;
    1441                 :   }
    1442                 : 
    1443                 :   if ((inst.Bits() & 0x02000000)  ==
    1444                 :           0x02000000 /* A(25)=1 */ &&
    1445                 :       (inst.Bits() & 0x00500000)  ==
    1446                 :           0x00100000 /* op1(24:20)=xx0x1 */ &&
    1447                 :       (inst.Bits() & 0x00000010)  ==
    1448                 :           0x00000000 /* B(4)=0 */ &&
    1449                 :       (inst.Bits() & 0x01700000)  !=
    1450               0 :           0x00300000 /* op1_repeated(24:20)=~0x011 */) {
    1451               0 :     return Actual_LDR_register_cccc011pu0w1nnnnttttiiiiitt0mmmm_case_1_instance_;
    1452                 :   }
    1453                 : 
    1454                 :   if ((inst.Bits() & 0x02000000)  ==
    1455                 :           0x02000000 /* A(25)=1 */ &&
    1456                 :       (inst.Bits() & 0x00500000)  ==
    1457                 :           0x00400000 /* op1(24:20)=xx1x0 */ &&
    1458                 :       (inst.Bits() & 0x00000010)  ==
    1459                 :           0x00000000 /* B(4)=0 */ &&
    1460                 :       (inst.Bits() & 0x01700000)  !=
    1461               0 :           0x00600000 /* op1_repeated(24:20)=~0x110 */) {
    1462               0 :     return Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1_instance_;
    1463                 :   }
    1464                 : 
    1465                 :   if ((inst.Bits() & 0x02000000)  ==
    1466                 :           0x02000000 /* A(25)=1 */ &&
    1467                 :       (inst.Bits() & 0x00500000)  ==
    1468                 :           0x00500000 /* op1(24:20)=xx1x1 */ &&
    1469                 :       (inst.Bits() & 0x00000010)  ==
    1470                 :           0x00000000 /* B(4)=0 */ &&
    1471                 :       (inst.Bits() & 0x01700000)  !=
    1472               0 :           0x00700000 /* op1_repeated(24:20)=~0x111 */) {
    1473               0 :     return Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1_instance_;
    1474                 :   }
    1475                 : 
    1476                 :   if ((inst.Bits() & 0x02000000)  ==
    1477                 :           0x02000000 /* A(25)=1 */ &&
    1478                 :       (inst.Bits() & 0x01200000)  ==
    1479                 :           0x00200000 /* op1(24:20)=0xx1x */ &&
    1480                 :       (inst.Bits() & 0x00000010)  ==
    1481               0 :           0x00000000 /* B(4)=0 */) {
    1482               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1483                 :   }
    1484                 : 
    1485                 :   // Catch any attempt to fall though ...
    1486               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1487               0 : }
    1488                 : 
    1489                 : // Implementation of table: media_instructions.
    1490                 : // Specified by: See Section A5.4
    1491                 : const ClassDecoder& Arm32DecoderState::decode_media_instructions(
    1492                 :      const Instruction inst) const
    1493               0 : {
    1494                 :   if ((inst.Bits() & 0x01F00000)  ==
    1495                 :           0x01800000 /* op1(24:20)=11000 */ &&
    1496                 :       (inst.Bits() & 0x000000E0)  ==
    1497                 :           0x00000000 /* op2(7:5)=000 */ &&
    1498                 :       (inst.Bits() & 0x0000F000)  !=
    1499               0 :           0x0000F000 /* Rd(15:12)=~1111 */) {
    1500               0 :     return Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_;
    1501                 :   }
    1502                 : 
    1503                 :   if ((inst.Bits() & 0x01F00000)  ==
    1504                 :           0x01800000 /* op1(24:20)=11000 */ &&
    1505                 :       (inst.Bits() & 0x000000E0)  ==
    1506                 :           0x00000000 /* op2(7:5)=000 */ &&
    1507                 :       (inst.Bits() & 0x0000F000)  ==
    1508               0 :           0x0000F000 /* Rd(15:12)=1111 */) {
    1509               0 :     return Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_instance_;
    1510                 :   }
    1511                 : 
    1512                 :   if ((inst.Bits() & 0x01F00000)  ==
    1513                 :           0x01F00000 /* op1(24:20)=11111 */ &&
    1514                 :       (inst.Bits() & 0x000000E0)  ==
    1515               0 :           0x000000E0 /* op2(7:5)=111 */) {
    1516               0 :     return Actual_UDF_cccc01111111iiiiiiiiiiii1111iiii_case_1_instance_;
    1517                 :   }
    1518                 : 
    1519                 :   if ((inst.Bits() & 0x01E00000)  ==
    1520                 :           0x01C00000 /* op1(24:20)=1110x */ &&
    1521                 :       (inst.Bits() & 0x00000060)  ==
    1522                 :           0x00000000 /* op2(7:5)=x00 */ &&
    1523                 :       (inst.Bits() & 0x0000000F)  !=
    1524               0 :           0x0000000F /* Rn(3:0)=~1111 */) {
    1525               0 :     return Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1_instance_;
    1526                 :   }
    1527                 : 
    1528                 :   if ((inst.Bits() & 0x01E00000)  ==
    1529                 :           0x01C00000 /* op1(24:20)=1110x */ &&
    1530                 :       (inst.Bits() & 0x00000060)  ==
    1531                 :           0x00000000 /* op2(7:5)=x00 */ &&
    1532                 :       (inst.Bits() & 0x0000000F)  ==
    1533               0 :           0x0000000F /* Rn(3:0)=1111 */) {
    1534               0 :     return Actual_BFC_cccc0111110mmmmmddddlllll0011111_case_1_instance_;
    1535                 :   }
    1536                 : 
    1537                 :   if ((inst.Bits() & 0x01A00000)  ==
    1538                 :           0x01A00000 /* op1(24:20)=11x1x */ &&
    1539                 :       (inst.Bits() & 0x00000060)  ==
    1540               0 :           0x00000040 /* op2(7:5)=x10 */) {
    1541               0 :     return Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1_instance_;
    1542                 :   }
    1543                 : 
    1544                 :   if ((inst.Bits() & 0x01C00000)  ==
    1545               0 :           0x00000000 /* op1(24:20)=000xx */) {
    1546               0 :     return decode_parallel_addition_and_subtraction_signed(inst);
    1547                 :   }
    1548                 : 
    1549                 :   if ((inst.Bits() & 0x01C00000)  ==
    1550               0 :           0x00400000 /* op1(24:20)=001xx */) {
    1551               0 :     return decode_parallel_addition_and_subtraction_unsigned(inst);
    1552                 :   }
    1553                 : 
    1554                 :   if ((inst.Bits() & 0x01800000)  ==
    1555               0 :           0x00800000 /* op1(24:20)=01xxx */) {
    1556               0 :     return decode_packing_unpacking_saturation_and_reversal(inst);
    1557                 :   }
    1558                 : 
    1559                 :   if ((inst.Bits() & 0x01800000)  ==
    1560               0 :           0x01000000 /* op1(24:20)=10xxx */) {
    1561               0 :     return decode_signed_multiply_signed_and_unsigned_divide(inst);
    1562                 :   }
    1563                 : 
    1564               0 :   if (true) {
    1565               0 :     return Actual_Unnamed_case_1_instance_;
    1566                 :   }
    1567                 : 
    1568                 :   // Catch any attempt to fall though ...
    1569               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1570               0 : }
    1571                 : 
    1572                 : // Implementation of table: memory_hints_advanced_simd_instructions_and_miscellaneous_instructions.
    1573                 : // Specified by: See Section A5.7.1
    1574                 : const ClassDecoder& Arm32DecoderState::decode_memory_hints_advanced_simd_instructions_and_miscellaneous_instructions(
    1575                 :      const Instruction inst) const
    1576               0 : {
    1577                 :   if ((inst.Bits() & 0x07F00000)  ==
    1578                 :           0x01000000 /* op1(26:20)=0010000 */ &&
    1579                 :       (inst.Bits() & 0x000000F0)  ==
    1580                 :           0x00000000 /* op2(7:4)=0000 */ &&
    1581                 :       (inst.Bits() & 0x00010000)  ==
    1582                 :           0x00010000 /* Rn(19:16)=xxx1 */ &&
    1583                 :       (inst.Bits() & 0x000EFD0F)  ==
    1584               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx000x000000x0xxxx0000 */) {
    1585               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1586                 :   }
    1587                 : 
    1588                 :   if ((inst.Bits() & 0x07F00000)  ==
    1589                 :           0x01000000 /* op1(26:20)=0010000 */ &&
    1590                 :       (inst.Bits() & 0x00000020)  ==
    1591                 :           0x00000000 /* op2(7:4)=xx0x */ &&
    1592                 :       (inst.Bits() & 0x00010000)  ==
    1593                 :           0x00000000 /* Rn(19:16)=xxx0 */ &&
    1594                 :       (inst.Bits() & 0x0000FE00)  ==
    1595               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000000xxxxxxxxx */) {
    1596               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1597                 :   }
    1598                 : 
    1599                 :   if ((inst.Bits() & 0x07F00000)  ==
    1600               0 :           0x05300000 /* op1(26:20)=1010011 */) {
    1601               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1602                 :   }
    1603                 : 
    1604                 :   if ((inst.Bits() & 0x07F00000)  ==
    1605                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1606                 :       (inst.Bits() & 0x000000F0)  ==
    1607               0 :           0x00000000 /* op2(7:4)=0000 */) {
    1608               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1609                 :   }
    1610                 : 
    1611                 :   if ((inst.Bits() & 0x07F00000)  ==
    1612                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1613                 :       (inst.Bits() & 0x000000F0)  ==
    1614                 :           0x00000010 /* op2(7:4)=0001 */ &&
    1615                 :       (inst.Bits() & 0x000FFF0F)  ==
    1616               0 :           0x000FF00F /* $pattern(31:0)=xxxxxxxxxxxx111111110000xxxx1111 */) {
    1617               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1618                 :   }
    1619                 : 
    1620                 :   if ((inst.Bits() & 0x07F00000)  ==
    1621                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1622                 :       (inst.Bits() & 0x000000F0)  ==
    1623                 :           0x00000060 /* op2(7:4)=0110 */ &&
    1624                 :       (inst.Bits() & 0x000FFF00)  ==
    1625               0 :           0x000FF000 /* $pattern(31:0)=xxxxxxxxxxxx111111110000xxxxxxxx */) {
    1626               0 :     return Actual_ISB_1111010101111111111100000110xxxx_case_1_instance_;
    1627                 :   }
    1628                 : 
    1629                 :   if ((inst.Bits() & 0x07F00000)  ==
    1630                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1631                 :       (inst.Bits() & 0x000000F0)  ==
    1632               0 :           0x00000070 /* op2(7:4)=0111 */) {
    1633               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1634                 :   }
    1635                 : 
    1636                 :   if ((inst.Bits() & 0x07F00000)  ==
    1637                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1638                 :       (inst.Bits() & 0x000000E0)  ==
    1639               0 :           0x00000020 /* op2(7:4)=001x */) {
    1640               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1641                 :   }
    1642                 : 
    1643                 :   if ((inst.Bits() & 0x07F00000)  ==
    1644                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1645                 :       (inst.Bits() & 0x000000E0)  ==
    1646                 :           0x00000040 /* op2(7:4)=010x */ &&
    1647                 :       (inst.Bits() & 0x000FFF00)  ==
    1648               0 :           0x000FF000 /* $pattern(31:0)=xxxxxxxxxxxx111111110000xxxxxxxx */) {
    1649               0 :     return Actual_DMB_1111010101111111111100000101xxxx_case_1_instance_;
    1650                 :   }
    1651                 : 
    1652                 :   if ((inst.Bits() & 0x07F00000)  ==
    1653                 :           0x05700000 /* op1(26:20)=1010111 */ &&
    1654                 :       (inst.Bits() & 0x00000080)  ==
    1655               0 :           0x00000080 /* op2(7:4)=1xxx */) {
    1656               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1657                 :   }
    1658                 : 
    1659                 :   if ((inst.Bits() & 0x07700000)  ==
    1660               0 :           0x04100000 /* op1(26:20)=100x001 */) {
    1661               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1662                 :   }
    1663                 : 
    1664                 :   if ((inst.Bits() & 0x07700000)  ==
    1665                 :           0x04500000 /* op1(26:20)=100x101 */ &&
    1666                 :       (inst.Bits() & 0x0000F000)  ==
    1667               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1668               0 :     return Actual_PLI_immediate_literal_11110100u101nnnn1111iiiiiiiiiiii_case_1_instance_;
    1669                 :   }
    1670                 : 
    1671                 :   if ((inst.Bits() & 0x07700000)  ==
    1672                 :           0x05100000 /* op1(26:20)=101x001 */ &&
    1673                 :       (inst.Bits() & 0x000F0000)  ==
    1674               0 :           0x000F0000 /* Rn(19:16)=1111 */) {
    1675               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1676                 :   }
    1677                 : 
    1678                 :   if ((inst.Bits() & 0x07700000)  ==
    1679                 :           0x05500000 /* op1(26:20)=101x101 */ &&
    1680                 :       (inst.Bits() & 0x000F0000)  ==
    1681                 :           0x000F0000 /* Rn(19:16)=1111 */ &&
    1682                 :       (inst.Bits() & 0x0000F000)  ==
    1683               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1684               0 :     return Actual_PLD_literal_11110101u10111111111iiiiiiiiiiii_case_1_instance_;
    1685                 :   }
    1686                 : 
    1687                 :   if ((inst.Bits() & 0x07700000)  ==
    1688                 :           0x06100000 /* op1(26:20)=110x001 */ &&
    1689                 :       (inst.Bits() & 0x00000010)  ==
    1690               0 :           0x00000000 /* op2(7:4)=xxx0 */) {
    1691               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1692                 :   }
    1693                 : 
    1694                 :   if ((inst.Bits() & 0x07700000)  ==
    1695                 :           0x06500000 /* op1(26:20)=110x101 */ &&
    1696                 :       (inst.Bits() & 0x00000010)  ==
    1697                 :           0x00000000 /* op2(7:4)=xxx0 */ &&
    1698                 :       (inst.Bits() & 0x0000F000)  ==
    1699               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1700               0 :     return Actual_PLI_register_11110110u101nnnn1111iiiiitt0mmmm_case_1_instance_;
    1701                 :   }
    1702                 : 
    1703                 :   if ((inst.Bits() & 0x07B00000)  ==
    1704               0 :           0x05B00000 /* op1(26:20)=1011x11 */) {
    1705               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1706                 :   }
    1707                 : 
    1708                 :   if ((inst.Bits() & 0x07300000)  ==
    1709               0 :           0x04300000 /* op1(26:20)=100xx11 */) {
    1710               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1711                 :   }
    1712                 : 
    1713                 :   if ((inst.Bits() & 0x07300000)  ==
    1714                 :           0x05100000 /* op1(26:20)=101xx01 */ &&
    1715                 :       (inst.Bits() & 0x000F0000)  !=
    1716                 :           0x000F0000 /* Rn(19:16)=~1111 */ &&
    1717                 :       (inst.Bits() & 0x0000F000)  ==
    1718               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1719               0 :     return Actual_PLD_PLDW_immediate_11110101ur01nnnn1111iiiiiiiiiiii_case_1_instance_;
    1720                 :   }
    1721                 : 
    1722                 :   if ((inst.Bits() & 0x07300000)  ==
    1723                 :           0x07100000 /* op1(26:20)=111xx01 */ &&
    1724                 :       (inst.Bits() & 0x00000010)  ==
    1725                 :           0x00000000 /* op2(7:4)=xxx0 */ &&
    1726                 :       (inst.Bits() & 0x0000F000)  ==
    1727               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1728               0 :     return Actual_PLD_PLDW_register_11110111u001nnnn1111iiiiitt0mmmm_case_1_instance_;
    1729                 :   }
    1730                 : 
    1731                 :   if ((inst.Bits() & 0x06300000)  ==
    1732                 :           0x06300000 /* op1(26:20)=11xxx11 */ &&
    1733                 :       (inst.Bits() & 0x00000010)  ==
    1734               0 :           0x00000000 /* op2(7:4)=xxx0 */) {
    1735               0 :     return Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
    1736                 :   }
    1737                 : 
    1738                 :   if ((inst.Bits() & 0x07100000)  ==
    1739               0 :           0x04000000 /* op1(26:20)=100xxx0 */) {
    1740               0 :     return decode_advanced_simd_element_or_structure_load_store_instructions(inst);
    1741                 :   }
    1742                 : 
    1743                 :   if ((inst.Bits() & 0x06000000)  ==
    1744               0 :           0x02000000 /* op1(26:20)=01xxxxx */) {
    1745               0 :     return decode_advanced_simd_data_processing_instructions(inst);
    1746                 :   }
    1747                 : 
    1748               0 :   if (true) {
    1749               0 :     return Actual_Unnamed_case_1_instance_;
    1750                 :   }
    1751                 : 
    1752                 :   // Catch any attempt to fall though ...
    1753               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1754               0 : }
    1755                 : 
    1756                 : // Implementation of table: miscellaneous_instructions.
    1757                 : // Specified by: See Section A5.2.12
    1758                 : const ClassDecoder& Arm32DecoderState::decode_miscellaneous_instructions(
    1759                 :      const Instruction inst) const
    1760               0 : {
    1761                 :   if ((inst.Bits() & 0x00000070)  ==
    1762                 :           0x00000000 /* op2(6:4)=000 */ &&
    1763                 :       (inst.Bits() & 0x00000200)  ==
    1764                 :           0x00000000 /* B(9)=0 */ &&
    1765                 :       (inst.Bits() & 0x00600000)  ==
    1766                 :           0x00200000 /* op(22:21)=01 */ &&
    1767                 :       (inst.Bits() & 0x00030000)  ==
    1768                 :           0x00000000 /* op1(19:16)=xx00 */ &&
    1769                 :       (inst.Bits() & 0x0000FD00)  ==
    1770               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx111100x0xxxxxxxx */) {
    1771               0 :     return Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1_instance_;
    1772                 :   }
    1773                 : 
    1774                 :   if ((inst.Bits() & 0x00000070)  ==
    1775                 :           0x00000000 /* op2(6:4)=000 */ &&
    1776                 :       (inst.Bits() & 0x00000200)  ==
    1777                 :           0x00000000 /* B(9)=0 */ &&
    1778                 :       (inst.Bits() & 0x00600000)  ==
    1779                 :           0x00200000 /* op(22:21)=01 */ &&
    1780                 :       (inst.Bits() & 0x00030000)  ==
    1781                 :           0x00010000 /* op1(19:16)=xx01 */ &&
    1782                 :       (inst.Bits() & 0x0000FD00)  ==
    1783               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx111100x0xxxxxxxx */) {
    1784               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1785                 :   }
    1786                 : 
    1787                 :   if ((inst.Bits() & 0x00000070)  ==
    1788                 :           0x00000000 /* op2(6:4)=000 */ &&
    1789                 :       (inst.Bits() & 0x00000200)  ==
    1790                 :           0x00000000 /* B(9)=0 */ &&
    1791                 :       (inst.Bits() & 0x00600000)  ==
    1792                 :           0x00200000 /* op(22:21)=01 */ &&
    1793                 :       (inst.Bits() & 0x00020000)  ==
    1794                 :           0x00020000 /* op1(19:16)=xx1x */ &&
    1795                 :       (inst.Bits() & 0x0000FD00)  ==
    1796               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx111100x0xxxxxxxx */) {
    1797               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1798                 :   }
    1799                 : 
    1800                 :   if ((inst.Bits() & 0x00000070)  ==
    1801                 :           0x00000000 /* op2(6:4)=000 */ &&
    1802                 :       (inst.Bits() & 0x00000200)  ==
    1803                 :           0x00000000 /* B(9)=0 */ &&
    1804                 :       (inst.Bits() & 0x00600000)  ==
    1805                 :           0x00600000 /* op(22:21)=11 */ &&
    1806                 :       (inst.Bits() & 0x0000FD00)  ==
    1807               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx111100x0xxxxxxxx */) {
    1808               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1809                 :   }
    1810                 : 
    1811                 :   if ((inst.Bits() & 0x00000070)  ==
    1812                 :           0x00000000 /* op2(6:4)=000 */ &&
    1813                 :       (inst.Bits() & 0x00000200)  ==
    1814                 :           0x00000000 /* B(9)=0 */ &&
    1815                 :       (inst.Bits() & 0x00200000)  ==
    1816                 :           0x00000000 /* op(22:21)=x0 */ &&
    1817                 :       (inst.Bits() & 0x000F0D0F)  ==
    1818               0 :           0x000F0000 /* $pattern(31:0)=xxxxxxxxxxxx1111xxxx00x0xxxx0000 */) {
    1819               0 :     return Actual_MRS_cccc00010r001111dddd000000000000_case_1_instance_;
    1820                 :   }
    1821                 : 
    1822                 :   if ((inst.Bits() & 0x00000070)  ==
    1823                 :           0x00000000 /* op2(6:4)=000 */ &&
    1824                 :       (inst.Bits() & 0x00000200)  ==
    1825                 :           0x00000200 /* B(9)=1 */ &&
    1826                 :       (inst.Bits() & 0x00200000)  ==
    1827                 :           0x00000000 /* op(22:21)=x0 */ &&
    1828                 :       (inst.Bits() & 0x00000C0F)  ==
    1829               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx00xxxxxx0000 */) {
    1830               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1831                 :   }
    1832                 : 
    1833                 :   if ((inst.Bits() & 0x00000070)  ==
    1834                 :           0x00000000 /* op2(6:4)=000 */ &&
    1835                 :       (inst.Bits() & 0x00000200)  ==
    1836                 :           0x00000200 /* B(9)=1 */ &&
    1837                 :       (inst.Bits() & 0x00200000)  ==
    1838                 :           0x00200000 /* op(22:21)=x1 */ &&
    1839                 :       (inst.Bits() & 0x0000FC00)  ==
    1840               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx111100xxxxxxxxxx */) {
    1841               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1842                 :   }
    1843                 : 
    1844                 :   if ((inst.Bits() & 0x00000070)  ==
    1845                 :           0x00000010 /* op2(6:4)=001 */ &&
    1846                 :       (inst.Bits() & 0x00600000)  ==
    1847                 :           0x00200000 /* op(22:21)=01 */ &&
    1848                 :       (inst.Bits() & 0x000FFF00)  ==
    1849               0 :           0x000FFF00 /* $pattern(31:0)=xxxxxxxxxxxx111111111111xxxxxxxx */) {
    1850               0 :     return Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_;
    1851                 :   }
    1852                 : 
    1853                 :   if ((inst.Bits() & 0x00000070)  ==
    1854                 :           0x00000010 /* op2(6:4)=001 */ &&
    1855                 :       (inst.Bits() & 0x00600000)  ==
    1856                 :           0x00600000 /* op(22:21)=11 */ &&
    1857                 :       (inst.Bits() & 0x000F0F00)  ==
    1858               0 :           0x000F0F00 /* $pattern(31:0)=xxxxxxxxxxxx1111xxxx1111xxxxxxxx */) {
    1859               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    1860                 :   }
    1861                 : 
    1862                 :   if ((inst.Bits() & 0x00000070)  ==
    1863                 :           0x00000020 /* op2(6:4)=010 */ &&
    1864                 :       (inst.Bits() & 0x00600000)  ==
    1865                 :           0x00200000 /* op(22:21)=01 */ &&
    1866                 :       (inst.Bits() & 0x000FFF00)  ==
    1867               0 :           0x000FFF00 /* $pattern(31:0)=xxxxxxxxxxxx111111111111xxxxxxxx */) {
    1868               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1869                 :   }
    1870                 : 
    1871                 :   if ((inst.Bits() & 0x00000070)  ==
    1872                 :           0x00000030 /* op2(6:4)=011 */ &&
    1873                 :       (inst.Bits() & 0x00600000)  ==
    1874                 :           0x00200000 /* op(22:21)=01 */ &&
    1875                 :       (inst.Bits() & 0x000FFF00)  ==
    1876               0 :           0x000FFF00 /* $pattern(31:0)=xxxxxxxxxxxx111111111111xxxxxxxx */) {
    1877               0 :     return Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_;
    1878                 :   }
    1879                 : 
    1880                 :   if ((inst.Bits() & 0x00000070)  ==
    1881               0 :           0x00000050 /* op2(6:4)=101 */) {
    1882               0 :     return decode_saturating_addition_and_subtraction(inst);
    1883                 :   }
    1884                 : 
    1885                 :   if ((inst.Bits() & 0x00000070)  ==
    1886                 :           0x00000060 /* op2(6:4)=110 */ &&
    1887                 :       (inst.Bits() & 0x00600000)  ==
    1888                 :           0x00600000 /* op(22:21)=11 */ &&
    1889                 :       (inst.Bits() & 0x000FFF0F)  ==
    1890               0 :           0x0000000E /* $pattern(31:0)=xxxxxxxxxxxx000000000000xxxx1110 */) {
    1891               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1892                 :   }
    1893                 : 
    1894                 :   if ((inst.Bits() & 0x00000070)  ==
    1895                 :           0x00000070 /* op2(6:4)=111 */ &&
    1896                 :       (inst.Bits() & 0x00600000)  ==
    1897               0 :           0x00200000 /* op(22:21)=01 */) {
    1898               0 :     return Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_;
    1899                 :   }
    1900                 : 
    1901                 :   if ((inst.Bits() & 0x00000070)  ==
    1902                 :           0x00000070 /* op2(6:4)=111 */ &&
    1903                 :       (inst.Bits() & 0x00600000)  ==
    1904               0 :           0x00400000 /* op(22:21)=10 */) {
    1905               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1906                 :   }
    1907                 : 
    1908                 :   if ((inst.Bits() & 0x00000070)  ==
    1909                 :           0x00000070 /* op2(6:4)=111 */ &&
    1910                 :       (inst.Bits() & 0x00600000)  ==
    1911                 :           0x00600000 /* op(22:21)=11 */ &&
    1912                 :       (inst.Bits() & 0x000FFF00)  ==
    1913               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxx000000000000xxxxxxxx */) {
    1914               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1915                 :   }
    1916                 : 
    1917               0 :   if (true) {
    1918               0 :     return Actual_Unnamed_case_1_instance_;
    1919                 :   }
    1920                 : 
    1921                 :   // Catch any attempt to fall though ...
    1922               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    1923               0 : }
    1924                 : 
    1925                 : // Implementation of table: msr_immediate_and_hints.
    1926                 : // Specified by: See Section A5.2.11
    1927                 : const ClassDecoder& Arm32DecoderState::decode_msr_immediate_and_hints(
    1928                 :      const Instruction inst) const
    1929               0 : {
    1930                 :   UNREFERENCED_PARAMETER(inst);
    1931                 :   if ((inst.Bits() & 0x00400000)  ==
    1932                 :           0x00000000 /* op(22)=0 */ &&
    1933                 :       (inst.Bits() & 0x000F0000)  ==
    1934                 :           0x00000000 /* op1(19:16)=0000 */ &&
    1935                 :       (inst.Bits() & 0x000000FF)  ==
    1936                 :           0x00000004 /* op2(7:0)=00000100 */ &&
    1937                 :       (inst.Bits() & 0x0000FF00)  ==
    1938               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx11110000xxxxxxxx */) {
    1939               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1940                 :   }
    1941                 : 
    1942                 :   if ((inst.Bits() & 0x00400000)  ==
    1943                 :           0x00000000 /* op(22)=0 */ &&
    1944                 :       (inst.Bits() & 0x000F0000)  ==
    1945                 :           0x00000000 /* op1(19:16)=0000 */ &&
    1946                 :       (inst.Bits() & 0x000000FE)  ==
    1947                 :           0x00000000 /* op2(7:0)=0000000x */ &&
    1948                 :       (inst.Bits() & 0x0000FF00)  ==
    1949               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx11110000xxxxxxxx */) {
    1950               0 :     return Actual_NOP_cccc0011001000001111000000000000_case_1_instance_;
    1951                 :   }
    1952                 : 
    1953                 :   if ((inst.Bits() & 0x00400000)  ==
    1954                 :           0x00000000 /* op(22)=0 */ &&
    1955                 :       (inst.Bits() & 0x000F0000)  ==
    1956                 :           0x00000000 /* op1(19:16)=0000 */ &&
    1957                 :       (inst.Bits() & 0x000000FE)  ==
    1958                 :           0x00000002 /* op2(7:0)=0000001x */ &&
    1959                 :       (inst.Bits() & 0x0000FF00)  ==
    1960               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx11110000xxxxxxxx */) {
    1961               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1962                 :   }
    1963                 : 
    1964                 :   if ((inst.Bits() & 0x00400000)  ==
    1965                 :           0x00000000 /* op(22)=0 */ &&
    1966                 :       (inst.Bits() & 0x000F0000)  ==
    1967                 :           0x00000000 /* op1(19:16)=0000 */ &&
    1968                 :       (inst.Bits() & 0x000000F0)  ==
    1969                 :           0x000000F0 /* op2(7:0)=1111xxxx */ &&
    1970                 :       (inst.Bits() & 0x0000FF00)  ==
    1971               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx11110000xxxxxxxx */) {
    1972               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    1973                 :   }
    1974                 : 
    1975                 :   if ((inst.Bits() & 0x00400000)  ==
    1976                 :           0x00000000 /* op(22)=0 */ &&
    1977                 :       (inst.Bits() & 0x000F0000)  ==
    1978                 :           0x00040000 /* op1(19:16)=0100 */ &&
    1979                 :       (inst.Bits() & 0x0000F000)  ==
    1980               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1981               0 :     return Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_;
    1982                 :   }
    1983                 : 
    1984                 :   if ((inst.Bits() & 0x00400000)  ==
    1985                 :           0x00000000 /* op(22)=0 */ &&
    1986                 :       (inst.Bits() & 0x000B0000)  ==
    1987                 :           0x00080000 /* op1(19:16)=1x00 */ &&
    1988                 :       (inst.Bits() & 0x0000F000)  ==
    1989               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1990               0 :     return Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_;
    1991                 :   }
    1992                 : 
    1993                 :   if ((inst.Bits() & 0x00400000)  ==
    1994                 :           0x00000000 /* op(22)=0 */ &&
    1995                 :       (inst.Bits() & 0x00030000)  ==
    1996                 :           0x00010000 /* op1(19:16)=xx01 */ &&
    1997                 :       (inst.Bits() & 0x0000F000)  ==
    1998               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    1999               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    2000                 :   }
    2001                 : 
    2002                 :   if ((inst.Bits() & 0x00400000)  ==
    2003                 :           0x00000000 /* op(22)=0 */ &&
    2004                 :       (inst.Bits() & 0x00020000)  ==
    2005                 :           0x00020000 /* op1(19:16)=xx1x */ &&
    2006                 :       (inst.Bits() & 0x0000F000)  ==
    2007               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    2008               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    2009                 :   }
    2010                 : 
    2011                 :   if ((inst.Bits() & 0x00400000)  ==
    2012                 :           0x00400000 /* op(22)=1 */ &&
    2013                 :       (inst.Bits() & 0x0000F000)  ==
    2014               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    2015               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    2016                 :   }
    2017                 : 
    2018               0 :   if (true) {
    2019               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    2020                 :   }
    2021                 : 
    2022                 :   // Catch any attempt to fall though ...
    2023               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2024               0 : }
    2025                 : 
    2026                 : // Implementation of table: multiply_and_multiply_accumulate.
    2027                 : // Specified by: See Section A5.2.5
    2028                 : const ClassDecoder& Arm32DecoderState::decode_multiply_and_multiply_accumulate(
    2029                 :      const Instruction inst) const
    2030               0 : {
    2031                 :   UNREFERENCED_PARAMETER(inst);
    2032                 :   if ((inst.Bits() & 0x00F00000)  ==
    2033               0 :           0x00400000 /* op(23:20)=0100 */) {
    2034               0 :     return Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case_1_instance_;
    2035                 :   }
    2036                 : 
    2037                 :   if ((inst.Bits() & 0x00F00000)  ==
    2038               0 :           0x00600000 /* op(23:20)=0110 */) {
    2039               0 :     return Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_;
    2040                 :   }
    2041                 : 
    2042                 :   if ((inst.Bits() & 0x00D00000)  ==
    2043               0 :           0x00500000 /* op(23:20)=01x1 */) {
    2044               0 :     return Actual_Unnamed_case_1_instance_;
    2045                 :   }
    2046                 : 
    2047                 :   if ((inst.Bits() & 0x00E00000)  ==
    2048                 :           0x00000000 /* op(23:20)=000x */ &&
    2049                 :       (inst.Bits() & 0x0000F000)  ==
    2050               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000xxxxxxxxxxxx */) {
    2051               0 :     return Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1_instance_;
    2052                 :   }
    2053                 : 
    2054                 :   if ((inst.Bits() & 0x00E00000)  ==
    2055               0 :           0x00200000 /* op(23:20)=001x */) {
    2056               0 :     return Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1_instance_;
    2057                 :   }
    2058                 : 
    2059                 :   if ((inst.Bits() & 0x00A00000)  ==
    2060               0 :           0x00800000 /* op(23:20)=1x0x */) {
    2061               0 :     return Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_;
    2062                 :   }
    2063                 : 
    2064                 :   if ((inst.Bits() & 0x00A00000)  ==
    2065               0 :           0x00A00000 /* op(23:20)=1x1x */) {
    2066               0 :     return Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_;
    2067                 :   }
    2068                 : 
    2069                 :   // Catch any attempt to fall though ...
    2070               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2071               0 : }
    2072                 : 
    2073                 : // Implementation of table: other_floating_point_data_processing_instructions.
    2074                 : // Specified by: A7.5 Table A7 - 17
    2075                 : const ClassDecoder& Arm32DecoderState::decode_other_floating_point_data_processing_instructions(
    2076                 :      const Instruction inst) const
    2077               0 : {
    2078                 :   UNREFERENCED_PARAMETER(inst);
    2079                 :   if ((inst.Bits() & 0x000F0000)  ==
    2080                 :           0x00010000 /* opc2(19:16)=0001 */ &&
    2081                 :       (inst.Bits() & 0x00000040)  ==
    2082               0 :           0x00000040 /* opc3(7:6)=x1 */) {
    2083               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2084                 :   }
    2085                 : 
    2086                 :   if ((inst.Bits() & 0x000F0000)  ==
    2087                 :           0x00050000 /* opc2(19:16)=0101 */ &&
    2088                 :       (inst.Bits() & 0x00000040)  ==
    2089                 :           0x00000040 /* opc3(7:6)=x1 */ &&
    2090                 :       (inst.Bits() & 0x0000002F)  ==
    2091               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxxx0x0000 */) {
    2092               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2093                 :   }
    2094                 : 
    2095                 :   if ((inst.Bits() & 0x000F0000)  ==
    2096                 :           0x00070000 /* opc2(19:16)=0111 */ &&
    2097                 :       (inst.Bits() & 0x000000C0)  ==
    2098               0 :           0x000000C0 /* opc3(7:6)=11 */) {
    2099               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2100                 :   }
    2101                 : 
    2102                 :   if ((inst.Bits() & 0x000F0000)  ==
    2103                 :           0x00080000 /* opc2(19:16)=1000 */ &&
    2104                 :       (inst.Bits() & 0x00000040)  ==
    2105               0 :           0x00000040 /* opc3(7:6)=x1 */) {
    2106               0 :     return Actual_VCVT_VCVTR_between_floating_point_and_integer_Floating_point_cccc11101d111ooodddd101sp1m0mmmm_case_1_instance_;
    2107                 :   }
    2108                 : 
    2109                 :   if ((inst.Bits() & 0x000B0000)  ==
    2110                 :           0x00000000 /* opc2(19:16)=0x00 */ &&
    2111                 :       (inst.Bits() & 0x00000040)  ==
    2112               0 :           0x00000040 /* opc3(7:6)=x1 */) {
    2113               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2114                 :   }
    2115                 : 
    2116                 :   if ((inst.Bits() & 0x000E0000)  ==
    2117                 :           0x00020000 /* opc2(19:16)=001x */ &&
    2118                 :       (inst.Bits() & 0x00000040)  ==
    2119                 :           0x00000040 /* opc3(7:6)=x1 */ &&
    2120                 :       (inst.Bits() & 0x00000100)  ==
    2121               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxx0xxxxxxxx */) {
    2122               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2123                 :   }
    2124                 : 
    2125                 :   if ((inst.Bits() & 0x000E0000)  ==
    2126                 :           0x000C0000 /* opc2(19:16)=110x */ &&
    2127                 :       (inst.Bits() & 0x00000040)  ==
    2128               0 :           0x00000040 /* opc3(7:6)=x1 */) {
    2129               0 :     return Actual_VCVT_VCVTR_between_floating_point_and_integer_Floating_point_cccc11101d111ooodddd101sp1m0mmmm_case_1_instance_;
    2130                 :   }
    2131                 : 
    2132                 :   if ((inst.Bits() & 0x000A0000)  ==
    2133                 :           0x000A0000 /* opc2(19:16)=1x1x */ &&
    2134                 :       (inst.Bits() & 0x00000040)  ==
    2135               0 :           0x00000040 /* opc3(7:6)=x1 */) {
    2136               0 :     return Actual_VCVT_between_floating_point_and_fixed_point_Floating_point_cccc11101d111o1udddd101fx1i0iiii_case_1_instance_;
    2137                 :   }
    2138                 : 
    2139                 :   if ((inst.Bits() & 0x00000040)  ==
    2140                 :           0x00000000 /* opc3(7:6)=x0 */ &&
    2141                 :       (inst.Bits() & 0x000000A0)  ==
    2142               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxx0x0xxxxx */) {
    2143               0 :     return Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
    2144                 :   }
    2145                 : 
    2146                 :   // Catch any attempt to fall though ...
    2147               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2148               0 : }
    2149                 : 
    2150                 : // Implementation of table: packing_unpacking_saturation_and_reversal.
    2151                 : // Specified by: See Section A5.4.3
    2152                 : const ClassDecoder& Arm32DecoderState::decode_packing_unpacking_saturation_and_reversal(
    2153                 :      const Instruction inst) const
    2154               0 : {
    2155                 :   UNREFERENCED_PARAMETER(inst);
    2156                 :   if ((inst.Bits() & 0x00700000)  ==
    2157                 :           0x00000000 /* op1(22:20)=000 */ &&
    2158                 :       (inst.Bits() & 0x000000E0)  ==
    2159                 :           0x000000A0 /* op2(7:5)=101 */ &&
    2160                 :       (inst.Bits() & 0x00000F00)  ==
    2161               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2162               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2163                 :   }
    2164                 : 
    2165                 :   if ((inst.Bits() & 0x00700000)  ==
    2166                 :           0x00000000 /* op1(22:20)=000 */ &&
    2167                 :       (inst.Bits() & 0x00000020)  ==
    2168               0 :           0x00000000 /* op2(7:5)=xx0 */) {
    2169               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2170                 :   }
    2171                 : 
    2172                 :   if ((inst.Bits() & 0x00300000)  ==
    2173                 :           0x00200000 /* op1(22:20)=x10 */ &&
    2174                 :       (inst.Bits() & 0x000000E0)  ==
    2175                 :           0x00000020 /* op2(7:5)=001 */ &&
    2176                 :       (inst.Bits() & 0x00000F00)  ==
    2177               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2178               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    2179                 :   }
    2180                 : 
    2181                 :   if ((inst.Bits() & 0x00300000)  ==
    2182                 :           0x00300000 /* op1(22:20)=x11 */ &&
    2183                 :       (inst.Bits() & 0x000000E0)  ==
    2184                 :           0x00000060 /* op2(7:5)=011 */ &&
    2185                 :       (inst.Bits() & 0x000F0000)  !=
    2186                 :           0x000F0000 /* A(19:16)=~1111 */ &&
    2187                 :       (inst.Bits() & 0x00000300)  ==
    2188               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxx00xxxxxxxx */) {
    2189               0 :     return Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_;
    2190                 :   }
    2191                 : 
    2192                 :   if ((inst.Bits() & 0x00300000)  ==
    2193                 :           0x00300000 /* op1(22:20)=x11 */ &&
    2194                 :       (inst.Bits() & 0x000000E0)  ==
    2195                 :           0x00000060 /* op2(7:5)=011 */ &&
    2196                 :       (inst.Bits() & 0x000F0000)  ==
    2197                 :           0x000F0000 /* A(19:16)=1111 */ &&
    2198                 :       (inst.Bits() & 0x00000300)  ==
    2199               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxx00xxxxxxxx */) {
    2200               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    2201                 :   }
    2202                 : 
    2203                 :   if ((inst.Bits() & 0x00300000)  ==
    2204                 :           0x00300000 /* op1(22:20)=x11 */ &&
    2205                 :       (inst.Bits() & 0x00000060)  ==
    2206                 :           0x00000020 /* op2(7:5)=x01 */ &&
    2207                 :       (inst.Bits() & 0x000F0F00)  ==
    2208               0 :           0x000F0F00 /* $pattern(31:0)=xxxxxxxxxxxx1111xxxx1111xxxxxxxx */) {
    2209               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    2210                 :   }
    2211                 : 
    2212                 :   if ((inst.Bits() & 0x00100000)  ==
    2213                 :           0x00000000 /* op1(22:20)=xx0 */ &&
    2214                 :       (inst.Bits() & 0x000000E0)  ==
    2215                 :           0x00000060 /* op2(7:5)=011 */ &&
    2216                 :       (inst.Bits() & 0x000F0000)  !=
    2217                 :           0x000F0000 /* A(19:16)=~1111 */ &&
    2218                 :       (inst.Bits() & 0x00000300)  ==
    2219               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxx00xxxxxxxx */) {
    2220               0 :     return Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_;
    2221                 :   }
    2222                 : 
    2223                 :   if ((inst.Bits() & 0x00100000)  ==
    2224                 :           0x00000000 /* op1(22:20)=xx0 */ &&
    2225                 :       (inst.Bits() & 0x000000E0)  ==
    2226                 :           0x00000060 /* op2(7:5)=011 */ &&
    2227                 :       (inst.Bits() & 0x000F0000)  ==
    2228                 :           0x000F0000 /* A(19:16)=1111 */ &&
    2229                 :       (inst.Bits() & 0x00000300)  ==
    2230               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxx00xxxxxxxx */) {
    2231               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    2232                 :   }
    2233                 : 
    2234                 :   if ((inst.Bits() & 0x00200000)  ==
    2235                 :           0x00200000 /* op1(22:20)=x1x */ &&
    2236                 :       (inst.Bits() & 0x00000020)  ==
    2237               0 :           0x00000000 /* op2(7:5)=xx0 */) {
    2238               0 :     return Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
    2239                 :   }
    2240                 : 
    2241               0 :   if (true) {
    2242               0 :     return Actual_Unnamed_case_1_instance_;
    2243                 :   }
    2244                 : 
    2245                 :   // Catch any attempt to fall though ...
    2246               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2247               0 : }
    2248                 : 
    2249                 : // Implementation of table: parallel_addition_and_subtraction_signed.
    2250                 : // Specified by: See Section A5.4.1
    2251                 : const ClassDecoder& Arm32DecoderState::decode_parallel_addition_and_subtraction_signed(
    2252                 :      const Instruction inst) const
    2253               0 : {
    2254                 :   UNREFERENCED_PARAMETER(inst);
    2255                 :   if ((inst.Bits() & 0x00300000)  ==
    2256                 :           0x00200000 /* op1(21:20)=10 */ &&
    2257                 :       (inst.Bits() & 0x000000E0)  ==
    2258                 :           0x00000080 /* op2(7:5)=100 */ &&
    2259                 :       (inst.Bits() & 0x00000F00)  ==
    2260               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2261               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2262                 :   }
    2263                 : 
    2264                 :   if ((inst.Bits() & 0x00300000)  ==
    2265                 :           0x00200000 /* op1(21:20)=10 */ &&
    2266                 :       (inst.Bits() & 0x000000E0)  ==
    2267                 :           0x000000E0 /* op2(7:5)=111 */ &&
    2268                 :       (inst.Bits() & 0x00000F00)  ==
    2269               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2270               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2271                 :   }
    2272                 : 
    2273                 :   if ((inst.Bits() & 0x00300000)  ==
    2274                 :           0x00200000 /* op1(21:20)=10 */ &&
    2275                 :       (inst.Bits() & 0x00000080)  ==
    2276                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2277                 :       (inst.Bits() & 0x00000F00)  ==
    2278               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2279               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2280                 :   }
    2281                 : 
    2282                 :   if ((inst.Bits() & 0x00100000)  ==
    2283                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2284                 :       (inst.Bits() & 0x000000E0)  ==
    2285                 :           0x00000080 /* op2(7:5)=100 */ &&
    2286                 :       (inst.Bits() & 0x00000F00)  ==
    2287               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2288               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2289                 :   }
    2290                 : 
    2291                 :   if ((inst.Bits() & 0x00100000)  ==
    2292                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2293                 :       (inst.Bits() & 0x000000E0)  ==
    2294                 :           0x000000E0 /* op2(7:5)=111 */ &&
    2295                 :       (inst.Bits() & 0x00000F00)  ==
    2296               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2297               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2298                 :   }
    2299                 : 
    2300                 :   if ((inst.Bits() & 0x00100000)  ==
    2301                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2302                 :       (inst.Bits() & 0x00000080)  ==
    2303                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2304                 :       (inst.Bits() & 0x00000F00)  ==
    2305               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2306               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2307                 :   }
    2308                 : 
    2309               0 :   if (true) {
    2310               0 :     return Actual_Unnamed_case_1_instance_;
    2311                 :   }
    2312                 : 
    2313                 :   // Catch any attempt to fall though ...
    2314               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2315               0 : }
    2316                 : 
    2317                 : // Implementation of table: parallel_addition_and_subtraction_unsigned.
    2318                 : // Specified by: See Section A5.4.2
    2319                 : const ClassDecoder& Arm32DecoderState::decode_parallel_addition_and_subtraction_unsigned(
    2320                 :      const Instruction inst) const
    2321               0 : {
    2322                 :   UNREFERENCED_PARAMETER(inst);
    2323                 :   if ((inst.Bits() & 0x00300000)  ==
    2324                 :           0x00200000 /* op1(21:20)=10 */ &&
    2325                 :       (inst.Bits() & 0x000000E0)  ==
    2326                 :           0x00000080 /* op2(7:5)=100 */ &&
    2327                 :       (inst.Bits() & 0x00000F00)  ==
    2328               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2329               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2330                 :   }
    2331                 : 
    2332                 :   if ((inst.Bits() & 0x00300000)  ==
    2333                 :           0x00200000 /* op1(21:20)=10 */ &&
    2334                 :       (inst.Bits() & 0x000000E0)  ==
    2335                 :           0x000000E0 /* op2(7:5)=111 */ &&
    2336                 :       (inst.Bits() & 0x00000F00)  ==
    2337               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2338               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2339                 :   }
    2340                 : 
    2341                 :   if ((inst.Bits() & 0x00300000)  ==
    2342                 :           0x00200000 /* op1(21:20)=10 */ &&
    2343                 :       (inst.Bits() & 0x00000080)  ==
    2344                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2345                 :       (inst.Bits() & 0x00000F00)  ==
    2346               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2347               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2348                 :   }
    2349                 : 
    2350                 :   if ((inst.Bits() & 0x00100000)  ==
    2351                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2352                 :       (inst.Bits() & 0x000000E0)  ==
    2353                 :           0x00000080 /* op2(7:5)=100 */ &&
    2354                 :       (inst.Bits() & 0x00000F00)  ==
    2355               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2356               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2357                 :   }
    2358                 : 
    2359                 :   if ((inst.Bits() & 0x00100000)  ==
    2360                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2361                 :       (inst.Bits() & 0x000000E0)  ==
    2362                 :           0x000000E0 /* op2(7:5)=111 */ &&
    2363                 :       (inst.Bits() & 0x00000F00)  ==
    2364               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2365               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2366                 :   }
    2367                 : 
    2368                 :   if ((inst.Bits() & 0x00100000)  ==
    2369                 :           0x00100000 /* op1(21:20)=x1 */ &&
    2370                 :       (inst.Bits() & 0x00000080)  ==
    2371                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2372                 :       (inst.Bits() & 0x00000F00)  ==
    2373               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    2374               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2375                 :   }
    2376                 : 
    2377               0 :   if (true) {
    2378               0 :     return Actual_Unnamed_case_1_instance_;
    2379                 :   }
    2380                 : 
    2381                 :   // Catch any attempt to fall though ...
    2382               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2383               0 : }
    2384                 : 
    2385                 : // Implementation of table: saturating_addition_and_subtraction.
    2386                 : // Specified by: See Section A5.2.6
    2387                 : const ClassDecoder& Arm32DecoderState::decode_saturating_addition_and_subtraction(
    2388                 :      const Instruction inst) const
    2389               0 : {
    2390                 :   UNREFERENCED_PARAMETER(inst);
    2391                 :   if ((inst.Bits() & 0x00000F00)  ==
    2392               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    2393               0 :     return Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
    2394                 :   }
    2395                 : 
    2396                 :   // Catch any attempt to fall though ...
    2397               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2398               0 : }
    2399                 : 
    2400                 : // Implementation of table: signed_multiply_signed_and_unsigned_divide.
    2401                 : // Specified by: See Section A5.4.4
    2402                 : const ClassDecoder& Arm32DecoderState::decode_signed_multiply_signed_and_unsigned_divide(
    2403                 :      const Instruction inst) const
    2404               0 : {
    2405                 :   UNREFERENCED_PARAMETER(inst);
    2406                 :   if ((inst.Bits() & 0x00700000)  ==
    2407                 :           0x00000000 /* op1(22:20)=000 */ &&
    2408                 :       (inst.Bits() & 0x00000080)  ==
    2409                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2410                 :       (inst.Bits() & 0x0000F000)  !=
    2411               0 :           0x0000F000 /* A(15:12)=~1111 */) {
    2412               0 :     return Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_;
    2413                 :   }
    2414                 : 
    2415                 :   if ((inst.Bits() & 0x00700000)  ==
    2416                 :           0x00000000 /* op1(22:20)=000 */ &&
    2417                 :       (inst.Bits() & 0x00000080)  ==
    2418                 :           0x00000000 /* op2(7:5)=0xx */ &&
    2419                 :       (inst.Bits() & 0x0000F000)  ==
    2420               0 :           0x0000F000 /* A(15:12)=1111 */) {
    2421               0 :     return Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_;
    2422                 :   }
    2423                 : 
    2424                 :   if ((inst.Bits() & 0x00700000)  ==
    2425                 :           0x00400000 /* op1(22:20)=100 */ &&
    2426                 :       (inst.Bits() & 0x00000080)  ==
    2427               0 :           0x00000000 /* op2(7:5)=0xx */) {
    2428               0 :     return Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1_instance_;
    2429                 :   }
    2430                 : 
    2431                 :   if ((inst.Bits() & 0x00700000)  ==
    2432                 :           0x00500000 /* op1(22:20)=101 */ &&
    2433                 :       (inst.Bits() & 0x000000C0)  ==
    2434                 :           0x00000000 /* op2(7:5)=00x */ &&
    2435                 :       (inst.Bits() & 0x0000F000)  !=
    2436               0 :           0x0000F000 /* A(15:12)=~1111 */) {
    2437               0 :     return Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_;
    2438                 :   }
    2439                 : 
    2440                 :   if ((inst.Bits() & 0x00700000)  ==
    2441                 :           0x00500000 /* op1(22:20)=101 */ &&
    2442                 :       (inst.Bits() & 0x000000C0)  ==
    2443                 :           0x00000000 /* op2(7:5)=00x */ &&
    2444                 :       (inst.Bits() & 0x0000F000)  ==
    2445               0 :           0x0000F000 /* A(15:12)=1111 */) {
    2446               0 :     return Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_;
    2447                 :   }
    2448                 : 
    2449                 :   if ((inst.Bits() & 0x00700000)  ==
    2450                 :           0x00500000 /* op1(22:20)=101 */ &&
    2451                 :       (inst.Bits() & 0x000000C0)  ==
    2452               0 :           0x000000C0 /* op2(7:5)=11x */) {
    2453               0 :     return Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_;
    2454                 :   }
    2455                 : 
    2456                 :   if ((inst.Bits() & 0x00500000)  ==
    2457                 :           0x00100000 /* op1(22:20)=0x1 */ &&
    2458                 :       (inst.Bits() & 0x000000E0)  ==
    2459                 :           0x00000000 /* op2(7:5)=000 */ &&
    2460                 :       (inst.Bits() & 0x0000F000)  ==
    2461               0 :           0x0000F000 /* $pattern(31:0)=xxxxxxxxxxxxxxxx1111xxxxxxxxxxxx */) {
    2462               0 :     return Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_;
    2463                 :   }
    2464                 : 
    2465               0 :   if (true) {
    2466               0 :     return Actual_Unnamed_case_1_instance_;
    2467                 :   }
    2468                 : 
    2469                 :   // Catch any attempt to fall though ...
    2470               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2471               0 : }
    2472                 : 
    2473                 : // Implementation of table: simd_dp_1imm.
    2474                 : // Specified by: See Section A7.4.6
    2475                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_1imm(
    2476                 :      const Instruction inst) const
    2477               0 : {
    2478                 :   UNREFERENCED_PARAMETER(inst);
    2479                 :   if ((inst.Bits() & 0x00000D00)  ==
    2480               0 :           0x00000900 /* cmode(11:8)=10x1 */) {
    2481               0 :     return Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
    2482                 :   }
    2483                 : 
    2484                 :   if ((inst.Bits() & 0x00000900)  ==
    2485               0 :           0x00000100 /* cmode(11:8)=0xx1 */) {
    2486               0 :     return Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
    2487                 :   }
    2488                 : 
    2489                 :   if ((inst.Bits() & 0x00000020)  ==
    2490                 :           0x00000000 /* op(5)=0 */ &&
    2491                 :       (inst.Bits() & 0x00000D00)  ==
    2492               0 :           0x00000800 /* cmode(11:8)=10x0 */) {
    2493               0 :     return Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_;
    2494                 :   }
    2495                 : 
    2496                 :   if ((inst.Bits() & 0x00000020)  ==
    2497                 :           0x00000000 /* op(5)=0 */ &&
    2498                 :       (inst.Bits() & 0x00000900)  ==
    2499               0 :           0x00000000 /* cmode(11:8)=0xx0 */) {
    2500               0 :     return Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_;
    2501                 :   }
    2502                 : 
    2503                 :   if ((inst.Bits() & 0x00000020)  ==
    2504                 :           0x00000000 /* op(5)=0 */ &&
    2505                 :       (inst.Bits() & 0x00000C00)  ==
    2506               0 :           0x00000C00 /* cmode(11:8)=11xx */) {
    2507               0 :     return Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_;
    2508                 :   }
    2509                 : 
    2510                 :   if ((inst.Bits() & 0x00000020)  ==
    2511                 :           0x00000020 /* op(5)=1 */ &&
    2512                 :       (inst.Bits() & 0x00000F00)  ==
    2513               0 :           0x00000E00 /* cmode(11:8)=1110 */) {
    2514               0 :     return Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_;
    2515                 :   }
    2516                 : 
    2517                 :   if ((inst.Bits() & 0x00000020)  ==
    2518                 :           0x00000020 /* op(5)=1 */ &&
    2519                 :       (inst.Bits() & 0x00000F00)  ==
    2520               0 :           0x00000F00 /* cmode(11:8)=1111 */) {
    2521               0 :     return Actual_Unnamed_case_1_instance_;
    2522                 :   }
    2523                 : 
    2524                 :   if ((inst.Bits() & 0x00000020)  ==
    2525                 :           0x00000020 /* op(5)=1 */ &&
    2526                 :       (inst.Bits() & 0x00000D00)  ==
    2527               0 :           0x00000800 /* cmode(11:8)=10x0 */) {
    2528               0 :     return Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
    2529                 :   }
    2530                 : 
    2531                 :   if ((inst.Bits() & 0x00000020)  ==
    2532                 :           0x00000020 /* op(5)=1 */ &&
    2533                 :       (inst.Bits() & 0x00000E00)  ==
    2534               0 :           0x00000C00 /* cmode(11:8)=110x */) {
    2535               0 :     return Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
    2536                 :   }
    2537                 : 
    2538                 :   if ((inst.Bits() & 0x00000020)  ==
    2539                 :           0x00000020 /* op(5)=1 */ &&
    2540                 :       (inst.Bits() & 0x00000900)  ==
    2541               0 :           0x00000000 /* cmode(11:8)=0xx0 */) {
    2542               0 :     return Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
    2543                 :   }
    2544                 : 
    2545                 :   // Catch any attempt to fall though ...
    2546               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2547               0 : }
    2548                 : 
    2549                 : // Implementation of table: simd_dp_2misc.
    2550                 : // Specified by: See Section A7.4.5
    2551                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_2misc(
    2552                 :      const Instruction inst) const
    2553               0 : {
    2554                 :   UNREFERENCED_PARAMETER(inst);
    2555                 :   if ((inst.Bits() & 0x00030000)  ==
    2556                 :           0x00000000 /* A(17:16)=00 */ &&
    2557                 :       (inst.Bits() & 0x00000780)  ==
    2558               0 :           0x00000100 /* B(10:6)=0010x */) {
    2559               0 :     return Actual_VREV16_111100111d11ss00dddd000ppqm0mmmm_case_1_instance_;
    2560                 :   }
    2561                 : 
    2562                 :   if ((inst.Bits() & 0x00030000)  ==
    2563                 :           0x00000000 /* A(17:16)=00 */ &&
    2564                 :       (inst.Bits() & 0x00000700)  ==
    2565               0 :           0x00000000 /* B(10:6)=000xx */) {
    2566               0 :     return Actual_VREV16_111100111d11ss00dddd000ppqm0mmmm_case_1_instance_;
    2567                 :   }
    2568                 : 
    2569                 :   if ((inst.Bits() & 0x00030000)  ==
    2570                 :           0x00000000 /* A(17:16)=00 */ &&
    2571                 :       (inst.Bits() & 0x00000700)  ==
    2572               0 :           0x00000400 /* B(10:6)=100xx */) {
    2573               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2574                 :   }
    2575                 : 
    2576                 :   if ((inst.Bits() & 0x00030000)  ==
    2577                 :           0x00000000 /* A(17:16)=00 */ &&
    2578                 :       (inst.Bits() & 0x00000700)  ==
    2579               0 :           0x00000500 /* B(10:6)=101xx */) {
    2580               0 :     return Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1_instance_;
    2581                 :   }
    2582                 : 
    2583                 :   if ((inst.Bits() & 0x00030000)  ==
    2584                 :           0x00000000 /* A(17:16)=00 */ &&
    2585                 :       (inst.Bits() & 0x00000700)  ==
    2586               0 :           0x00000700 /* B(10:6)=111xx */) {
    2587               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2588                 :   }
    2589                 : 
    2590                 :   if ((inst.Bits() & 0x00030000)  ==
    2591                 :           0x00000000 /* A(17:16)=00 */ &&
    2592                 :       (inst.Bits() & 0x00000300)  ==
    2593               0 :           0x00000200 /* B(10:6)=x10xx */) {
    2594               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2595                 :   }
    2596                 : 
    2597                 :   if ((inst.Bits() & 0x00030000)  ==
    2598                 :           0x00010000 /* A(17:16)=01 */ &&
    2599                 :       (inst.Bits() & 0x00000780)  ==
    2600               0 :           0x00000380 /* B(10:6)=0111x */) {
    2601               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2602                 :   }
    2603                 : 
    2604                 :   if ((inst.Bits() & 0x00030000)  ==
    2605                 :           0x00010000 /* A(17:16)=01 */ &&
    2606                 :       (inst.Bits() & 0x00000780)  ==
    2607               0 :           0x00000780 /* B(10:6)=1111x */) {
    2608               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_;
    2609                 :   }
    2610                 : 
    2611                 :   if ((inst.Bits() & 0x00030000)  ==
    2612                 :           0x00010000 /* A(17:16)=01 */ &&
    2613                 :       (inst.Bits() & 0x00000680)  ==
    2614               0 :           0x00000200 /* B(10:6)=01x0x */) {
    2615               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2616                 :   }
    2617                 : 
    2618                 :   if ((inst.Bits() & 0x00030000)  ==
    2619                 :           0x00010000 /* A(17:16)=01 */ &&
    2620                 :       (inst.Bits() & 0x00000680)  ==
    2621               0 :           0x00000600 /* B(10:6)=11x0x */) {
    2622               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_;
    2623                 :   }
    2624                 : 
    2625                 :   if ((inst.Bits() & 0x00030000)  ==
    2626                 :           0x00010000 /* A(17:16)=01 */ &&
    2627                 :       (inst.Bits() & 0x00000600)  ==
    2628               0 :           0x00000000 /* B(10:6)=00xxx */) {
    2629               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
    2630                 :   }
    2631                 : 
    2632                 :   if ((inst.Bits() & 0x00030000)  ==
    2633                 :           0x00010000 /* A(17:16)=01 */ &&
    2634                 :       (inst.Bits() & 0x00000600)  ==
    2635               0 :           0x00000400 /* B(10:6)=10xxx */) {
    2636               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_;
    2637                 :   }
    2638                 : 
    2639                 :   if ((inst.Bits() & 0x00030000)  ==
    2640                 :           0x00020000 /* A(17:16)=10 */ &&
    2641                 :       (inst.Bits() & 0x000007C0)  ==
    2642               0 :           0x00000200 /* B(10:6)=01000 */) {
    2643               0 :     return Actual_VMOVN_111100111d11ss10dddd001000m0mmmm_case_1_instance_;
    2644                 :   }
    2645                 : 
    2646                 :   if ((inst.Bits() & 0x00030000)  ==
    2647                 :           0x00020000 /* A(17:16)=10 */ &&
    2648                 :       (inst.Bits() & 0x000007C0)  ==
    2649               0 :           0x00000240 /* B(10:6)=01001 */) {
    2650               0 :     return Actual_VQMOVN_111100111d11ss10dddd0010ppm0mmmm_case_1_instance_;
    2651                 :   }
    2652                 : 
    2653                 :   if ((inst.Bits() & 0x00030000)  ==
    2654                 :           0x00020000 /* A(17:16)=10 */ &&
    2655                 :       (inst.Bits() & 0x000007C0)  ==
    2656               0 :           0x00000300 /* B(10:6)=01100 */) {
    2657               0 :     return Actual_VSHLL_A2_111100111d11ss10dddd001100m0mmmm_case_1_instance_;
    2658                 :   }
    2659                 : 
    2660                 :   if ((inst.Bits() & 0x00030000)  ==
    2661                 :           0x00020000 /* A(17:16)=10 */ &&
    2662                 :       (inst.Bits() & 0x000006C0)  ==
    2663               0 :           0x00000600 /* B(10:6)=11x00 */) {
    2664               0 :     return Actual_CVT_between_half_precision_and_single_precision_111100111d11ss10dddd011p00m0mmmm_case_1_instance_;
    2665                 :   }
    2666                 : 
    2667                 :   if ((inst.Bits() & 0x00030000)  ==
    2668                 :           0x00020000 /* A(17:16)=10 */ &&
    2669                 :       (inst.Bits() & 0x00000780)  ==
    2670               0 :           0x00000000 /* B(10:6)=0000x */) {
    2671               0 :     return Actual_VSWP_111100111d11ss10dddd00000qm0mmmm_case_1_instance_;
    2672                 :   }
    2673                 : 
    2674                 :   if ((inst.Bits() & 0x00030000)  ==
    2675                 :           0x00020000 /* A(17:16)=10 */ &&
    2676                 :       (inst.Bits() & 0x00000780)  ==
    2677               0 :           0x00000080 /* B(10:6)=0001x */) {
    2678               0 :     return Actual_VTRN_111100111d11ss10dddd00001qm0mmmm_case_1_instance_;
    2679                 :   }
    2680                 : 
    2681                 :   if ((inst.Bits() & 0x00030000)  ==
    2682                 :           0x00020000 /* A(17:16)=10 */ &&
    2683                 :       (inst.Bits() & 0x00000780)  ==
    2684               0 :           0x00000280 /* B(10:6)=0101x */) {
    2685               0 :     return Actual_VQMOVN_111100111d11ss10dddd0010ppm0mmmm_case_1_instance_;
    2686                 :   }
    2687                 : 
    2688                 :   if ((inst.Bits() & 0x00030000)  ==
    2689                 :           0x00020000 /* A(17:16)=10 */ &&
    2690                 :       (inst.Bits() & 0x00000700)  ==
    2691               0 :           0x00000100 /* B(10:6)=001xx */) {
    2692               0 :     return Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1_instance_;
    2693                 :   }
    2694                 : 
    2695                 :   if ((inst.Bits() & 0x00030000)  ==
    2696                 :           0x00030000 /* A(17:16)=11 */ &&
    2697                 :       (inst.Bits() & 0x00000400)  ==
    2698               0 :           0x00000400 /* B(10:6)=1xxxx */) {
    2699               0 :     return Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_;
    2700                 :   }
    2701                 : 
    2702               0 :   if (true) {
    2703               0 :     return Actual_Unnamed_case_1_instance_;
    2704                 :   }
    2705                 : 
    2706                 :   // Catch any attempt to fall though ...
    2707               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2708               0 : }
    2709                 : 
    2710                 : // Implementation of table: simd_dp_2scalar.
    2711                 : // Specified by: See Section A7.4.3
    2712                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_2scalar(
    2713                 :      const Instruction inst) const
    2714               0 : {
    2715                 :   UNREFERENCED_PARAMETER(inst);
    2716                 :   if ((inst.Bits() & 0x00000F00)  ==
    2717               0 :           0x00000900 /* A(11:8)=1001 */) {
    2718               0 :     return Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_1_instance_;
    2719                 :   }
    2720                 : 
    2721                 :   if ((inst.Bits() & 0x00000F00)  ==
    2722               0 :           0x00000A00 /* A(11:8)=1010 */) {
    2723               0 :     return Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_;
    2724                 :   }
    2725                 : 
    2726                 :   if ((inst.Bits() & 0x00000F00)  ==
    2727                 :           0x00000B00 /* A(11:8)=1011 */ &&
    2728                 :       (inst.Bits() & 0x01000000)  ==
    2729               0 :           0x00000000 /* U(24)=0 */) {
    2730               0 :     return Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_;
    2731                 :   }
    2732                 : 
    2733                 :   if ((inst.Bits() & 0x00000F00)  ==
    2734               0 :           0x00000D00 /* A(11:8)=1101 */) {
    2735               0 :     return Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_2_instance_;
    2736                 :   }
    2737                 : 
    2738                 :   if ((inst.Bits() & 0x00000B00)  ==
    2739               0 :           0x00000100 /* A(11:8)=0x01 */) {
    2740               0 :     return Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_1_instance_;
    2741                 :   }
    2742                 : 
    2743                 :   if ((inst.Bits() & 0x00000B00)  ==
    2744               0 :           0x00000200 /* A(11:8)=0x10 */) {
    2745               0 :     return Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_;
    2746                 :   }
    2747                 : 
    2748                 :   if ((inst.Bits() & 0x00000B00)  ==
    2749                 :           0x00000300 /* A(11:8)=0x11 */ &&
    2750                 :       (inst.Bits() & 0x01000000)  ==
    2751               0 :           0x00000000 /* U(24)=0 */) {
    2752               0 :     return Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_;
    2753                 :   }
    2754                 : 
    2755                 :   if ((inst.Bits() & 0x00000300)  ==
    2756               0 :           0x00000000 /* A(11:8)=xx00 */) {
    2757               0 :     return Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_2_instance_;
    2758                 :   }
    2759                 : 
    2760               0 :   if (true) {
    2761               0 :     return Actual_Unnamed_case_1_instance_;
    2762                 :   }
    2763                 : 
    2764                 :   // Catch any attempt to fall though ...
    2765               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2766               0 : }
    2767                 : 
    2768                 : // Implementation of table: simd_dp_2shift.
    2769                 : // Specified by: See Section A7.4.4
    2770                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_2shift(
    2771                 :      const Instruction inst) const
    2772               0 : {
    2773                 :   UNREFERENCED_PARAMETER(inst);
    2774                 :   if ((inst.Bits() & 0x00000F00)  ==
    2775                 :           0x00000500 /* A(11:8)=0101 */ &&
    2776                 :       (inst.Bits() & 0x01000000)  ==
    2777               0 :           0x00000000 /* U(24)=0 */) {
    2778               0 :     return Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1_instance_;
    2779                 :   }
    2780                 : 
    2781                 :   if ((inst.Bits() & 0x00000F00)  ==
    2782                 :           0x00000800 /* A(11:8)=1000 */ &&
    2783                 :       (inst.Bits() & 0x01000000)  ==
    2784                 :           0x00000000 /* U(24)=0 */ &&
    2785                 :       (inst.Bits() & 0x00000080)  ==
    2786               0 :           0x00000000 /* L(7)=0 */) {
    2787               0 :     return Actual_VRSHRN_111100101diiiiiidddd100001m1mmmm_case_1_instance_;
    2788                 :   }
    2789                 : 
    2790                 :   if ((inst.Bits() & 0x00000F00)  ==
    2791                 :           0x00000800 /* A(11:8)=1000 */ &&
    2792                 :       (inst.Bits() & 0x01000000)  ==
    2793                 :           0x01000000 /* U(24)=1 */ &&
    2794                 :       (inst.Bits() & 0x00000080)  ==
    2795               0 :           0x00000000 /* L(7)=0 */) {
    2796               0 :     return Actual_VQRSHRN_1111001u1diiiiiidddd100p01m1mmmm_case_1_instance_;
    2797                 :   }
    2798                 : 
    2799                 :   if ((inst.Bits() & 0x00000F00)  ==
    2800                 :           0x00000900 /* A(11:8)=1001 */ &&
    2801                 :       (inst.Bits() & 0x00000080)  ==
    2802               0 :           0x00000000 /* L(7)=0 */) {
    2803               0 :     return Actual_VQRSHRN_1111001u1diiiiiidddd100p01m1mmmm_case_1_instance_;
    2804                 :   }
    2805                 : 
    2806                 :   if ((inst.Bits() & 0x00000F00)  ==
    2807                 :           0x00000A00 /* A(11:8)=1010 */ &&
    2808                 :       (inst.Bits() & 0x00000040)  ==
    2809                 :           0x00000000 /* B(6)=0 */ &&
    2810                 :       (inst.Bits() & 0x00000080)  ==
    2811               0 :           0x00000000 /* L(7)=0 */) {
    2812               0 :     return Actual_VSHLL_A1_or_VMOVL_1111001u1diiiiiidddd101000m1mmmm_case_1_instance_;
    2813                 :   }
    2814                 : 
    2815                 :   if ((inst.Bits() & 0x00000E00)  ==
    2816                 :           0x00000400 /* A(11:8)=010x */ &&
    2817                 :       (inst.Bits() & 0x01000000)  ==
    2818               0 :           0x01000000 /* U(24)=1 */) {
    2819               0 :     return Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1_instance_;
    2820                 :   }
    2821                 : 
    2822                 :   if ((inst.Bits() & 0x00000E00)  ==
    2823               0 :           0x00000600 /* A(11:8)=011x */) {
    2824               0 :     return Actual_VQSHL_VQSHLU_immediate_1111001u1diiiiiidddd011plqm1mmmm_case_1_instance_;
    2825                 :   }
    2826                 : 
    2827                 :   if ((inst.Bits() & 0x00000E00)  ==
    2828                 :           0x00000E00 /* A(11:8)=111x */ &&
    2829                 :       (inst.Bits() & 0x00000080)  ==
    2830               0 :           0x00000000 /* L(7)=0 */) {
    2831               0 :     return Actual_VCVT_between_floating_point_and_fixed_point_1111001u1diiiiiidddd111p0qm1mmmm_case_1_instance_;
    2832                 :   }
    2833                 : 
    2834                 :   if ((inst.Bits() & 0x00000C00)  ==
    2835               0 :           0x00000000 /* A(11:8)=00xx */) {
    2836               0 :     return Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1_instance_;
    2837                 :   }
    2838                 : 
    2839               0 :   if (true) {
    2840               0 :     return Actual_Unnamed_case_1_instance_;
    2841                 :   }
    2842                 : 
    2843                 :   // Catch any attempt to fall though ...
    2844               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2845               0 : }
    2846                 : 
    2847                 : // Implementation of table: simd_dp_3diff.
    2848                 : // Specified by: See Section A7.4.2
    2849                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_3diff(
    2850                 :      const Instruction inst) const
    2851               0 : {
    2852                 :   UNREFERENCED_PARAMETER(inst);
    2853                 :   if ((inst.Bits() & 0x00000F00)  ==
    2854               0 :           0x00000C00 /* A(11:8)=1100 */) {
    2855               0 :     return Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1_instance_;
    2856                 :   }
    2857                 : 
    2858                 :   if ((inst.Bits() & 0x00000F00)  ==
    2859                 :           0x00000D00 /* A(11:8)=1101 */ &&
    2860                 :       (inst.Bits() & 0x01000000)  ==
    2861               0 :           0x00000000 /* U(24)=0 */) {
    2862               0 :     return Actual_VQDMLAL_VQDMLSL_A1_111100101dssnnnndddd10p1n0m0mmmm_case_1_instance_;
    2863                 :   }
    2864                 : 
    2865                 :   if ((inst.Bits() & 0x00000F00)  ==
    2866               0 :           0x00000E00 /* A(11:8)=1110 */) {
    2867               0 :     return Actual_VMULL_polynomial_A2_1111001u1dssnnnndddd11p0n0m0mmmm_case_1_instance_;
    2868                 :   }
    2869                 : 
    2870                 :   if ((inst.Bits() & 0x00000D00)  ==
    2871               0 :           0x00000400 /* A(11:8)=01x0 */) {
    2872               0 :     return Actual_VADDHN_111100101dssnnnndddd0100n0m0mmmm_case_1_instance_;
    2873                 :   }
    2874                 : 
    2875                 :   if ((inst.Bits() & 0x00000D00)  ==
    2876               0 :           0x00000500 /* A(11:8)=01x1 */) {
    2877               0 :     return Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1_instance_;
    2878                 :   }
    2879                 : 
    2880                 :   if ((inst.Bits() & 0x00000D00)  ==
    2881               0 :           0x00000800 /* A(11:8)=10x0 */) {
    2882               0 :     return Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1_instance_;
    2883                 :   }
    2884                 : 
    2885                 :   if ((inst.Bits() & 0x00000D00)  ==
    2886                 :           0x00000900 /* A(11:8)=10x1 */ &&
    2887                 :       (inst.Bits() & 0x01000000)  ==
    2888               0 :           0x00000000 /* U(24)=0 */) {
    2889               0 :     return Actual_VQDMLAL_VQDMLSL_A1_111100101dssnnnndddd10p1n0m0mmmm_case_1_instance_;
    2890                 :   }
    2891                 : 
    2892                 :   if ((inst.Bits() & 0x00000C00)  ==
    2893               0 :           0x00000000 /* A(11:8)=00xx */) {
    2894               0 :     return Actual_VADDL_VADDW_1111001u1dssnnnndddd000pn0m0mmmm_case_1_instance_;
    2895                 :   }
    2896                 : 
    2897               0 :   if (true) {
    2898               0 :     return Actual_Unnamed_case_1_instance_;
    2899                 :   }
    2900                 : 
    2901                 :   // Catch any attempt to fall though ...
    2902               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    2903               0 : }
    2904                 : 
    2905                 : // Implementation of table: simd_dp_3same.
    2906                 : // Specified by: See Section A7.4.1
    2907                 : const ClassDecoder& Arm32DecoderState::decode_simd_dp_3same(
    2908                 :      const Instruction inst) const
    2909               0 : {
    2910                 :   UNREFERENCED_PARAMETER(inst);
    2911                 :   if ((inst.Bits() & 0x00000F00)  ==
    2912                 :           0x00000100 /* A(11:8)=0001 */ &&
    2913                 :       (inst.Bits() & 0x00000010)  ==
    2914               0 :           0x00000010 /* B(4)=1 */) {
    2915               0 :     return Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_;
    2916                 :   }
    2917                 : 
    2918                 :   if ((inst.Bits() & 0x00000F00)  ==
    2919               0 :           0x00000600 /* A(11:8)=0110 */) {
    2920               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    2921                 :   }
    2922                 : 
    2923                 :   if ((inst.Bits() & 0x00000F00)  ==
    2924                 :           0x00000700 /* A(11:8)=0111 */ &&
    2925                 :       (inst.Bits() & 0x00000010)  ==
    2926               0 :           0x00000000 /* B(4)=0 */) {
    2927               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    2928                 :   }
    2929                 : 
    2930                 :   if ((inst.Bits() & 0x00000F00)  ==
    2931                 :           0x00000800 /* A(11:8)=1000 */ &&
    2932                 :       (inst.Bits() & 0x00000010)  ==
    2933               0 :           0x00000000 /* B(4)=0 */) {
    2934               0 :     return Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_;
    2935                 :   }
    2936                 : 
    2937                 :   if ((inst.Bits() & 0x00000F00)  ==
    2938                 :           0x00000800 /* A(11:8)=1000 */ &&
    2939                 :       (inst.Bits() & 0x00000010)  ==
    2940               0 :           0x00000010 /* B(4)=1 */) {
    2941               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    2942                 :   }
    2943                 : 
    2944                 :   if ((inst.Bits() & 0x00000F00)  ==
    2945                 :           0x00000900 /* A(11:8)=1001 */ &&
    2946                 :       (inst.Bits() & 0x00000010)  ==
    2947               0 :           0x00000000 /* B(4)=0 */) {
    2948               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    2949                 :   }
    2950                 : 
    2951                 :   if ((inst.Bits() & 0x00000F00)  ==
    2952                 :           0x00000900 /* A(11:8)=1001 */ &&
    2953                 :       (inst.Bits() & 0x00000010)  ==
    2954                 :           0x00000010 /* B(4)=1 */ &&
    2955                 :       (inst.Bits() & 0x01000000)  ==
    2956               0 :           0x00000000 /* U(24)=0 */) {
    2957               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    2958                 :   }
    2959                 : 
    2960                 :   if ((inst.Bits() & 0x00000F00)  ==
    2961                 :           0x00000900 /* A(11:8)=1001 */ &&
    2962                 :       (inst.Bits() & 0x00000010)  ==
    2963                 :           0x00000010 /* B(4)=1 */ &&
    2964                 :       (inst.Bits() & 0x01000000)  ==
    2965               0 :           0x01000000 /* U(24)=1 */) {
    2966               0 :     return Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1_instance_;
    2967                 :   }
    2968                 : 
    2969                 :   if ((inst.Bits() & 0x00000F00)  ==
    2970                 :           0x00000A00 /* A(11:8)=1010 */ &&
    2971                 :       (inst.Bits() & 0x00000040)  ==
    2972               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxx0xxxxxx */) {
    2973               0 :     return Actual_VPADD_integer_111100100dssnnnndddd1011n0m1mmmm_case_1_instance_;
    2974                 :   }
    2975                 : 
    2976                 :   if ((inst.Bits() & 0x00000F00)  ==
    2977                 :           0x00000B00 /* A(11:8)=1011 */ &&
    2978                 :       (inst.Bits() & 0x00000010)  ==
    2979               0 :           0x00000000 /* B(4)=0 */) {
    2980               0 :     return Actual_VQDMULH_A1_111100100dssnnnndddd1011nqm0mmmm_case_1_instance_;
    2981                 :   }
    2982                 : 
    2983                 :   if ((inst.Bits() & 0x00000F00)  ==
    2984                 :           0x00000B00 /* A(11:8)=1011 */ &&
    2985                 :       (inst.Bits() & 0x00000010)  ==
    2986                 :           0x00000010 /* B(4)=1 */ &&
    2987                 :       (inst.Bits() & 0x01000000)  ==
    2988                 :           0x00000000 /* U(24)=0 */ &&
    2989                 :       (inst.Bits() & 0x00000040)  ==
    2990               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxx0xxxxxx */) {
    2991               0 :     return Actual_VPADD_integer_111100100dssnnnndddd1011n0m1mmmm_case_1_instance_;
    2992                 :   }
    2993                 : 
    2994                 :   if ((inst.Bits() & 0x00000F00)  ==
    2995                 :           0x00000C00 /* A(11:8)=1100 */ &&
    2996                 :       (inst.Bits() & 0x00000010)  ==
    2997                 :           0x00000010 /* B(4)=1 */ &&
    2998                 :       (inst.Bits() & 0x01000000)  ==
    2999                 :           0x00000000 /* U(24)=0 */ &&
    3000                 :       (inst.Bits() & 0x00100000)  ==
    3001               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxx0xxxxxxxxxxxxxxxxxxxx */) {
    3002               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3003                 :   }
    3004                 : 
    3005                 :   if ((inst.Bits() & 0x00000F00)  ==
    3006                 :           0x00000D00 /* A(11:8)=1101 */ &&
    3007                 :       (inst.Bits() & 0x00000010)  ==
    3008                 :           0x00000000 /* B(4)=0 */ &&
    3009                 :       (inst.Bits() & 0x01000000)  ==
    3010                 :           0x01000000 /* U(24)=1 */ &&
    3011                 :       (inst.Bits() & 0x00200000)  ==
    3012               0 :           0x00200000 /* C(21:20)=1x */) {
    3013               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3014                 :   }
    3015                 : 
    3016                 :   if ((inst.Bits() & 0x00000F00)  ==
    3017                 :           0x00000D00 /* A(11:8)=1101 */ &&
    3018                 :       (inst.Bits() & 0x00000010)  ==
    3019                 :           0x00000010 /* B(4)=1 */ &&
    3020                 :       (inst.Bits() & 0x01000000)  ==
    3021                 :           0x01000000 /* U(24)=1 */ &&
    3022                 :       (inst.Bits() & 0x00200000)  ==
    3023               0 :           0x00000000 /* C(21:20)=0x */) {
    3024               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3025                 :   }
    3026                 : 
    3027                 :   if ((inst.Bits() & 0x00000F00)  ==
    3028                 :           0x00000E00 /* A(11:8)=1110 */ &&
    3029                 :       (inst.Bits() & 0x00000010)  ==
    3030                 :           0x00000000 /* B(4)=0 */ &&
    3031                 :       (inst.Bits() & 0x00200000)  ==
    3032               0 :           0x00000000 /* C(21:20)=0x */) {
    3033               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3034                 :   }
    3035                 : 
    3036                 :   if ((inst.Bits() & 0x00000F00)  ==
    3037                 :           0x00000E00 /* A(11:8)=1110 */ &&
    3038                 :       (inst.Bits() & 0x00000010)  ==
    3039                 :           0x00000010 /* B(4)=1 */ &&
    3040                 :       (inst.Bits() & 0x01000000)  ==
    3041                 :           0x01000000 /* U(24)=1 */ &&
    3042                 :       (inst.Bits() & 0x00200000)  ==
    3043               0 :           0x00000000 /* C(21:20)=0x */) {
    3044               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3045                 :   }
    3046                 : 
    3047                 :   if ((inst.Bits() & 0x00000F00)  ==
    3048                 :           0x00000E00 /* A(11:8)=1110 */ &&
    3049                 :       (inst.Bits() & 0x01000000)  ==
    3050                 :           0x01000000 /* U(24)=1 */ &&
    3051                 :       (inst.Bits() & 0x00200000)  ==
    3052               0 :           0x00200000 /* C(21:20)=1x */) {
    3053               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3054                 :   }
    3055                 : 
    3056                 :   if ((inst.Bits() & 0x00000F00)  ==
    3057                 :           0x00000F00 /* A(11:8)=1111 */ &&
    3058                 :       (inst.Bits() & 0x00000010)  ==
    3059                 :           0x00000000 /* B(4)=0 */ &&
    3060                 :       (inst.Bits() & 0x01000000)  ==
    3061                 :           0x01000000 /* U(24)=1 */ &&
    3062                 :       (inst.Bits() & 0x00200000)  ==
    3063               0 :           0x00200000 /* C(21:20)=1x */) {
    3064               0 :     return Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1_instance_;
    3065                 :   }
    3066                 : 
    3067                 :   if ((inst.Bits() & 0x00000B00)  ==
    3068                 :           0x00000300 /* A(11:8)=0x11 */ &&
    3069                 :       (inst.Bits() & 0x00000010)  ==
    3070               0 :           0x00000010 /* B(4)=1 */) {
    3071               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    3072                 :   }
    3073                 : 
    3074                 :   if ((inst.Bits() & 0x00000D00)  ==
    3075                 :           0x00000000 /* A(11:8)=00x0 */ &&
    3076                 :       (inst.Bits() & 0x00000010)  ==
    3077               0 :           0x00000010 /* B(4)=1 */) {
    3078               0 :     return Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_;
    3079                 :   }
    3080                 : 
    3081                 :   if ((inst.Bits() & 0x00000D00)  ==
    3082                 :           0x00000D00 /* A(11:8)=11x1 */ &&
    3083                 :       (inst.Bits() & 0x00000010)  ==
    3084                 :           0x00000000 /* B(4)=0 */ &&
    3085                 :       (inst.Bits() & 0x01000000)  ==
    3086                 :           0x01000000 /* U(24)=1 */ &&
    3087                 :       (inst.Bits() & 0x00200000)  ==
    3088               0 :           0x00000000 /* C(21:20)=0x */) {
    3089               0 :     return Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1_instance_;
    3090                 :   }
    3091                 : 
    3092                 :   if ((inst.Bits() & 0x00000D00)  ==
    3093                 :           0x00000D00 /* A(11:8)=11x1 */ &&
    3094                 :       (inst.Bits() & 0x01000000)  ==
    3095               0 :           0x00000000 /* U(24)=0 */) {
    3096               0 :     return Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
    3097                 :   }
    3098                 : 
    3099                 :   if ((inst.Bits() & 0x00000E00)  ==
    3100               0 :           0x00000400 /* A(11:8)=010x */) {
    3101               0 :     return Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_;
    3102                 :   }
    3103                 : 
    3104                 :   if ((inst.Bits() & 0x00000C00)  ==
    3105                 :           0x00000000 /* A(11:8)=00xx */ &&
    3106                 :       (inst.Bits() & 0x00000010)  ==
    3107               0 :           0x00000000 /* B(4)=0 */) {
    3108               0 :     return Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
    3109                 :   }
    3110                 : 
    3111               0 :   if (true) {
    3112               0 :     return Actual_Unnamed_case_1_instance_;
    3113                 :   }
    3114                 : 
    3115                 :   // Catch any attempt to fall though ...
    3116               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    3117               0 : }
    3118                 : 
    3119                 : // Implementation of table: synchronization_primitives.
    3120                 : // Specified by: See Section A5.2.10
    3121                 : const ClassDecoder& Arm32DecoderState::decode_synchronization_primitives(
    3122                 :      const Instruction inst) const
    3123               0 : {
    3124                 :   UNREFERENCED_PARAMETER(inst);
    3125                 :   if ((inst.Bits() & 0x00F00000)  ==
    3126                 :           0x00A00000 /* op(23:20)=1010 */ &&
    3127                 :       (inst.Bits() & 0x00000F00)  ==
    3128               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    3129               0 :     return Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_;
    3130                 :   }
    3131                 : 
    3132                 :   if ((inst.Bits() & 0x00F00000)  ==
    3133                 :           0x00B00000 /* op(23:20)=1011 */ &&
    3134                 :       (inst.Bits() & 0x00000F0F)  ==
    3135               0 :           0x00000F0F /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxx1111 */) {
    3136               0 :     return Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_;
    3137                 :   }
    3138                 : 
    3139                 :   if ((inst.Bits() & 0x00F00000)  ==
    3140                 :           0x00E00000 /* op(23:20)=1110 */ &&
    3141                 :       (inst.Bits() & 0x00000F00)  ==
    3142               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    3143               0 :     return Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_;
    3144                 :   }
    3145                 : 
    3146                 :   if ((inst.Bits() & 0x00F00000)  ==
    3147                 :           0x00F00000 /* op(23:20)=1111 */ &&
    3148                 :       (inst.Bits() & 0x00000F0F)  ==
    3149               0 :           0x00000F0F /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxx1111 */) {
    3150               0 :     return Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_;
    3151                 :   }
    3152                 : 
    3153                 :   if ((inst.Bits() & 0x00B00000)  ==
    3154                 :           0x00000000 /* op(23:20)=0x00 */ &&
    3155                 :       (inst.Bits() & 0x00000F00)  ==
    3156               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx0000xxxxxxxx */) {
    3157               0 :     return Actual_SWP_SWPB_cccc00010b00nnnntttt00001001tttt_case_1_instance_;
    3158                 :   }
    3159                 : 
    3160                 :   if ((inst.Bits() & 0x00B00000)  ==
    3161                 :           0x00800000 /* op(23:20)=1x00 */ &&
    3162                 :       (inst.Bits() & 0x00000F00)  ==
    3163               0 :           0x00000F00 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxxxxxx */) {
    3164               0 :     return Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_;
    3165                 :   }
    3166                 : 
    3167                 :   if ((inst.Bits() & 0x00B00000)  ==
    3168                 :           0x00900000 /* op(23:20)=1x01 */ &&
    3169                 :       (inst.Bits() & 0x00000F0F)  ==
    3170               0 :           0x00000F0F /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxx1111xxxx1111 */) {
    3171               0 :     return Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_;
    3172                 :   }
    3173                 : 
    3174               0 :   if (true) {
    3175               0 :     return Actual_Unnamed_case_1_instance_;
    3176                 :   }
    3177                 : 
    3178                 :   // Catch any attempt to fall though ...
    3179               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    3180               0 : }
    3181                 : 
    3182                 : // Implementation of table: transfer_between_arm_core_and_extension_register_8_16_and_32_bit.
    3183                 : // Specified by: A7.8
    3184                 : const ClassDecoder& Arm32DecoderState::decode_transfer_between_arm_core_and_extension_register_8_16_and_32_bit(
    3185                 :      const Instruction inst) const
    3186               0 : {
    3187                 :   UNREFERENCED_PARAMETER(inst);
    3188                 :   if ((inst.Bits() & 0x00000100)  ==
    3189                 :           0x00000000 /* C(8)=0 */ &&
    3190                 :       (inst.Bits() & 0x00E00000)  ==
    3191                 :           0x00000000 /* A(23:21)=000 */ &&
    3192                 :       (inst.Bits() & 0x0000006F)  ==
    3193               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxx00x0000 */) {
    3194               0 :     return Actual_VMOV_between_ARM_core_register_and_single_precision_register_cccc1110000onnnntttt1010n0010000_case_1_instance_;
    3195                 :   }
    3196                 : 
    3197                 :   if ((inst.Bits() & 0x00100000)  ==
    3198                 :           0x00000000 /* L(20)=0 */ &&
    3199                 :       (inst.Bits() & 0x00000100)  ==
    3200                 :           0x00000000 /* C(8)=0 */ &&
    3201                 :       (inst.Bits() & 0x00E00000)  ==
    3202                 :           0x00E00000 /* A(23:21)=111 */ &&
    3203                 :       (inst.Bits() & 0x000F00EF)  ==
    3204               0 :           0x00010000 /* $pattern(31:0)=xxxxxxxxxxxx0001xxxxxxxx000x0000 */) {
    3205               0 :     return Actual_VMSR_cccc111011100001tttt101000010000_case_1_instance_;
    3206                 :   }
    3207                 : 
    3208                 :   if ((inst.Bits() & 0x00100000)  ==
    3209                 :           0x00000000 /* L(20)=0 */ &&
    3210                 :       (inst.Bits() & 0x00000100)  ==
    3211                 :           0x00000100 /* C(8)=1 */ &&
    3212                 :       (inst.Bits() & 0x00800000)  ==
    3213                 :           0x00000000 /* A(23:21)=0xx */ &&
    3214                 :       (inst.Bits() & 0x0000000F)  ==
    3215               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxxxxx0000 */) {
    3216               0 :     return Actual_VMOV_ARM_core_register_to_scalar_cccc11100ii0ddddtttt1011dii10000_case_1_instance_;
    3217                 :   }
    3218                 : 
    3219                 :   if ((inst.Bits() & 0x00100000)  ==
    3220                 :           0x00000000 /* L(20)=0 */ &&
    3221                 :       (inst.Bits() & 0x00000100)  ==
    3222                 :           0x00000100 /* C(8)=1 */ &&
    3223                 :       (inst.Bits() & 0x00800000)  ==
    3224                 :           0x00800000 /* A(23:21)=1xx */ &&
    3225                 :       (inst.Bits() & 0x00000040)  ==
    3226                 :           0x00000000 /* B(6:5)=0x */ &&
    3227                 :       (inst.Bits() & 0x0000000F)  ==
    3228               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxxxxx0000 */) {
    3229               0 :     return Actual_VDUP_ARM_core_register_cccc11101bq0ddddtttt1011d0e10000_case_1_instance_;
    3230                 :   }
    3231                 : 
    3232                 :   if ((inst.Bits() & 0x00100000)  ==
    3233                 :           0x00100000 /* L(20)=1 */ &&
    3234                 :       (inst.Bits() & 0x00000100)  ==
    3235                 :           0x00000000 /* C(8)=0 */ &&
    3236                 :       (inst.Bits() & 0x00E00000)  ==
    3237                 :           0x00E00000 /* A(23:21)=111 */ &&
    3238                 :       (inst.Bits() & 0x000F00EF)  ==
    3239               0 :           0x00010000 /* $pattern(31:0)=xxxxxxxxxxxx0001xxxxxxxx000x0000 */) {
    3240               0 :     return Actual_VMRS_cccc111011110001tttt101000010000_case_1_instance_;
    3241                 :   }
    3242                 : 
    3243                 :   if ((inst.Bits() & 0x00100000)  ==
    3244                 :           0x00100000 /* L(20)=1 */ &&
    3245                 :       (inst.Bits() & 0x00000100)  ==
    3246                 :           0x00000100 /* C(8)=1 */ &&
    3247                 :       (inst.Bits() & 0x0000000F)  ==
    3248               0 :           0x00000000 /* $pattern(31:0)=xxxxxxxxxxxxxxxxxxxxxxxxxxxx0000 */) {
    3249               0 :     return Actual_MOVE_scalar_to_ARM_core_register_cccc1110iii1nnnntttt1011nii10000_case_1_instance_;
    3250                 :   }
    3251                 : 
    3252               0 :   if (true) {
    3253               0 :     return Actual_Unnamed_case_1_instance_;
    3254                 :   }
    3255                 : 
    3256                 :   // Catch any attempt to fall though ...
    3257               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    3258               0 : }
    3259                 : 
    3260                 : // Implementation of table: transfer_between_arm_core_and_extension_registers_64_bit.
    3261                 : // Specified by: A7.9
    3262                 : const ClassDecoder& Arm32DecoderState::decode_transfer_between_arm_core_and_extension_registers_64_bit(
    3263                 :      const Instruction inst) const
    3264               0 : {
    3265                 :   UNREFERENCED_PARAMETER(inst);
    3266                 :   if ((inst.Bits() & 0x00000100)  ==
    3267                 :           0x00000000 /* C(8)=0 */ &&
    3268                 :       (inst.Bits() & 0x000000D0)  ==
    3269               0 :           0x00000010 /* op(7:4)=00x1 */) {
    3270               0 :     return Actual_VMOV_between_two_ARM_core_registers_and_two_single_precision_registers_cccc1100010otttttttt101000m1mmmm_case_1_instance_;
    3271                 :   }
    3272                 : 
    3273                 :   if ((inst.Bits() & 0x00000100)  ==
    3274                 :           0x00000100 /* C(8)=1 */ &&
    3275                 :       (inst.Bits() & 0x000000D0)  ==
    3276               0 :           0x00000010 /* op(7:4)=00x1 */) {
    3277               0 :     return Actual_VMOV_between_two_ARM_core_registers_and_a_doubleword_extension_register_cccc1100010otttttttt101100m1mmmm_case_1_instance_;
    3278                 :   }
    3279                 : 
    3280               0 :   if (true) {
    3281               0 :     return Actual_Unnamed_case_1_instance_;
    3282                 :   }
    3283                 : 
    3284                 :   // Catch any attempt to fall though ...
    3285               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    3286               0 : }
    3287                 : 
    3288                 : // Implementation of table: unconditional_instructions.
    3289                 : // Specified by: See Section A5.7
    3290                 : const ClassDecoder& Arm32DecoderState::decode_unconditional_instructions(
    3291                 :      const Instruction inst) const
    3292               0 : {
    3293                 :   if ((inst.Bits() & 0x0FE00000)  ==
    3294               0 :           0x0C400000 /* op1(27:20)=1100010x */) {
    3295               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3296                 :   }
    3297                 : 
    3298                 :   if ((inst.Bits() & 0x0E500000)  ==
    3299                 :           0x08100000 /* op1(27:20)=100xx0x1 */ &&
    3300                 :       (inst.Bits() & 0x0000FFFF)  ==
    3301               0 :           0x00000A00 /* $pattern(31:0)=xxxxxxxxxxxxxxxx0000101000000000 */) {
    3302               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3303                 :   }
    3304                 : 
    3305                 :   if ((inst.Bits() & 0x0E500000)  ==
    3306                 :           0x08400000 /* op1(27:20)=100xx1x0 */ &&
    3307                 :       (inst.Bits() & 0x000FFFE0)  ==
    3308               0 :           0x000D0500 /* $pattern(31:0)=xxxxxxxxxxxx110100000101000xxxxx */) {
    3309               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3310                 :   }
    3311                 : 
    3312                 :   if ((inst.Bits() & 0x0E100000)  ==
    3313                 :           0x0C000000 /* op1(27:20)=110xxxx0 */ &&
    3314                 :       (inst.Bits() & 0x0FB00000)  !=
    3315               0 :           0x0C000000 /* op1_repeated(27:20)=~11000x00 */) {
    3316               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3317                 :   }
    3318                 : 
    3319                 :   if ((inst.Bits() & 0x0E100000)  ==
    3320                 :           0x0C100000 /* op1(27:20)=110xxxx1 */ &&
    3321                 :       (inst.Bits() & 0x0FB00000)  !=
    3322               0 :           0x0C100000 /* op1_repeated(27:20)=~11000x01 */) {
    3323               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3324                 :   }
    3325                 : 
    3326                 :   if ((inst.Bits() & 0x0F000000)  ==
    3327               0 :           0x0E000000 /* op1(27:20)=1110xxxx */) {
    3328               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3329                 :   }
    3330                 : 
    3331                 :   if ((inst.Bits() & 0x0E000000)  ==
    3332               0 :           0x0A000000 /* op1(27:20)=101xxxxx */) {
    3333               0 :     return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
    3334                 :   }
    3335                 : 
    3336                 :   if ((inst.Bits() & 0x08000000)  ==
    3337               0 :           0x00000000 /* op1(27:20)=0xxxxxxx */) {
    3338               0 :     return decode_memory_hints_advanced_simd_instructions_and_miscellaneous_instructions(inst);
    3339                 :   }
    3340                 : 
    3341               0 :   if (true) {
    3342               0 :     return Actual_Unnamed_case_1_instance_;
    3343                 :   }
    3344                 : 
    3345                 :   // Catch any attempt to fall though ...
    3346               0 :   return Actual_NOT_IMPLEMENTED_case_1_instance_;
    3347               0 : }
    3348                 : 
    3349               0 : const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const {
    3350               0 :   return decode_ARMv7(inst);
    3351               0 : }
    3352                 : 
    3353                 : }  // namespace nacl_arm_dec

Generated by: LCOV version 1.7