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

Generated by: LCOV version 1.7