{"name": "disas_iwmmxt_insn", "code": "__int64 __fastcall disas_iwmmxt_insn ( __int64 @@a1@@ , _DWORD * @@a2@@ , unsigned int @@a3@@ ) { __int64 result ; unsigned int v4 ; int v5 ; int v6 ; int v7 ; unsigned int v8 ; int v9 ; int v10 ; unsigned int v11 ; int v12 ; int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; int v21 ; int v22 ; int v23 ; int v24 ; int v25 ; unsigned int v26 ; int v28 ; int j ; int i ; int l ; int k ; unsigned int v33 ; unsigned int v34 ; unsigned int v35 ; unsigned int v36 ; unsigned int v37 ; unsigned int v38 ; unsigned int v39 ; unsigned int v40 ; unsigned int v41 ; unsigned int v42 ; unsigned int v43 ; unsigned int v44 ; unsigned int v45 ; unsigned int v46 ; unsigned int v47 ; unsigned int v48 ; unsigned int v49 ; unsigned int v50 ; unsigned int v51 ; unsigned int v52 ; unsigned int v53 ; unsigned int @@v54@@ ; int v55 ; int v56 ; int v57 ; int v58 ; int v59 ; int v60 ; int v61 ; int v62 ; int v63 ; int @@v64@@ ; int v65 ; int v66 ; int v67 ; int v68 ; int v69 ; int v70 ; int v71 ; int v72 ; int v73 ; int v74 ; int v75 ; int v76 ; int v77 ; int v78 ; int v79 ; int v80 ; int v81 ; unsigned int @@v82@@ ; int @@v83@@ ; int @@v84@@ ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) return Number L ; v4 = ( @@a3@@ >> Number ) & Number | ( unsigned __int8 ) ( @@a3@@ >> Number ) ; if ( v4 > Number ) return Number L ; if ( v4 < Number ) { if ( v4 > Number ) return Number L ; if ( v4 >= Number ) { switch ( v4 ) { case Number : case Number : LABEL_271 : if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v62 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v46 = new_tmp ( ) ; if ( ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) goto LABEL_314 ; v19 = ( @@a3@@ >> Number ) & Number ; switch ( v19 ) { case Number : gen_helper_iwmmxt_srlq ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_srlw ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_srll ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; } goto LABEL_316 ; case Number : goto LABEL_369 ; case Number : LABEL_258 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v18 = ( @@a3@@ >> Number ) & Number ; if ( v18 == Number ) return Number L ; if ( v18 == Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_unpackhsl_M0 ( ) ; else gen_op_iwmmxt_unpackhul_M0 ( ) ; } else if ( v18 ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_unpackhsw_M0 ( ) ; else gen_op_iwmmxt_unpackhuw_M0 ( ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_unpackhsb_M0 ( ) ; } else { gen_op_iwmmxt_unpackhub_M0 ( ) ; } goto LABEL_385 ; case Number : LABEL_245 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v17 = ( @@a3@@ >> Number ) & Number ; if ( v17 == Number ) return Number L ; if ( v17 == Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_unpacklsl_M0 ( ) ; else gen_op_iwmmxt_unpacklul_M0 ( ) ; } else if ( v17 ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_unpacklsw_M0 ( ) ; else gen_op_iwmmxt_unpackluw_M0 ( ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_unpacklsb_M0 ( ) ; } else { gen_op_iwmmxt_unpacklub_M0 ( ) ; } goto LABEL_385 ; case Number : LABEL_330 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v75 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v24 = ( @@a3@@ >> Number ) & Number ; if ( v24 == Number ) return Number L ; if ( v24 == Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_maxsl_M0_wRn ( v75 ) ; else gen_op_iwmmxt_maxul_M0_wRn ( v75 ) ; } else if ( v24 ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_maxsw_M0_wRn ( v75 ) ; else gen_op_iwmmxt_maxuw_M0_wRn ( v75 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_maxsb_M0_wRn ( v75 ) ; } else { gen_op_iwmmxt_maxub_M0_wRn ( v75 ) ; } break ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } } else { if ( v4 > Number ) return Number L ; if ( v4 >= Number ) { switch ( v4 ) { case Number : LABEL_131 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v72 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_avgw1_M0_wRn ( v72 ) ; else gen_op_iwmmxt_avgw0_M0_wRn ( v72 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_avgb1_M0_wRn ( v72 ) ; } else { gen_op_iwmmxt_avgb0_M0_wRn ( v72 ) ; } goto LABEL_385 ; case Number : LABEL_222 : v81 = ( unsigned __int16 ) @@a3@@ >> Number ; if ( ( @@a3@@ & Number ) != Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v42 = new_tmp ( ) ; v15 = ( @@a3@@ >> Number ) & Number ; if ( v15 == Number ) { gen_helper_iwmmxt_msbl ( v42 , cpu_M0 ) ; } else if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v15 ) gen_helper_iwmmxt_msbw ( v42 , cpu_M0 ) ; else gen_helper_iwmmxt_msbb ( v42 , cpu_M0 ) ; } goto LABEL_231 ; case Number : case Number : LABEL_292 : if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v62 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v46 = new_tmp ( ) ; if ( ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) goto LABEL_314 ; v21 = ( @@a3@@ >> Number ) & Number ; switch ( v21 ) { case Number : gen_helper_iwmmxt_sllq ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_sllw ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_slll ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; } goto LABEL_316 ; case Number : goto LABEL_232 ; case Number : LABEL_150 : v81 = ( unsigned __int16 ) @@a3@@ >> Number ; if ( v81 == Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v42 = new_tmp ( ) ; v9 = ( @@a3@@ >> Number ) & Number ; if ( v9 == Number ) { tcg_gen_shri_i64 ( cpu_M0 , cpu_M0 , ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; tcg_gen_trunc_i64_i32 ( v42 , cpu_M0 ) ; } else if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v9 ) { tcg_gen_shri_i64 ( cpu_M0 , cpu_M0 , ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; tcg_gen_trunc_i64_i32 ( v42 , cpu_M0 ) ; if ( ( @@a3@@ & Number ) != Number ) tcg_gen_ext16s_i32 ( v42 , v42 ) ; else tcg_gen_andi_i32 ( v42 , v42 , Number ) ; } else { tcg_gen_shri_i64 ( cpu_M0 , cpu_M0 , ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; tcg_gen_trunc_i64_i32 ( v42 , cpu_M0 ) ; if ( ( @@a3@@ & Number ) != Number ) tcg_gen_ext8s_i32 ( v42 , v42 ) ; else tcg_gen_andi_i32 ( v42 , v42 , Number ) ; } } LABEL_231 : store_reg ( ( __int64 ) @@a2@@ , v81 , v42 ) ; return Number L ; case Number : goto LABEL_369 ; case Number : LABEL_98 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v67 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v6 = ( @@a3@@ >> Number ) & Number ; if ( v6 == Number ) return Number L ; if ( v6 == Number ) { gen_op_iwmmxt_unpackhl_M0_wRn ( v67 ) ; } else if ( v6 ) { gen_op_iwmmxt_unpackhw_M0_wRn ( v67 ) ; } else { gen_op_iwmmxt_unpackhb_M0_wRn ( v67 ) ; } goto LABEL_385 ; case Number : LABEL_91 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v66 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v5 = ( @@a3@@ >> Number ) & Number ; if ( v5 == Number ) return Number L ; if ( v5 == Number ) { gen_op_iwmmxt_unpackll_M0_wRn ( v66 ) ; } else if ( v5 ) { gen_op_iwmmxt_unpacklw_M0_wRn ( v66 ) ; } else { gen_op_iwmmxt_unpacklb_M0_wRn ( v66 ) ; } goto LABEL_385 ; case Number : LABEL_183 : if ( ( @@a3@@ & Number ) != Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v45 = iwmmxt_load_creg ( Number ) ; v52 = new_tmp ( ) ; tcg_gen_mov_i32 ( v52 , v45 ) ; v12 = ( @@a3@@ >> Number ) & Number ; if ( v12 == Number ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_and_i32 ( v45 , v45 , v52 ) ; } else if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v12 ) { for ( i = Number ; i <= Number ; ++ i ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_and_i32 ( v45 , v45 , v52 ) ; } } else { for ( j = Number ; j <= Number ; ++ j ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_and_i32 ( v45 , v45 , v52 ) ; } } } goto LABEL_198 ; case Number : LABEL_206 : if ( ( @@a3@@ & Number ) != Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v45 = iwmmxt_load_creg ( Number ) ; v52 = new_tmp ( ) ; tcg_gen_mov_i32 ( v52 , v45 ) ; v14 = ( @@a3@@ >> Number ) & Number ; if ( v14 == Number ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_or_i32 ( v45 , v45 , v52 ) ; } else if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v14 ) { for ( k = Number ; k <= Number ; ++ k ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_or_i32 ( v45 , v45 , v52 ) ; } } else { for ( l = Number ; l <= Number ; ++ l ) { tcg_gen_shli_i32 ( v52 , v52 , Number ) ; tcg_gen_or_i32 ( v45 , v45 , v52 ) ; } } } LABEL_198 : gen_set_cpsr ( v45 , Number ) ; dead_tmp ( v52 ) ; dead_tmp ( v45 ) ; return Number L ; case Number : goto LABEL_317 ; case Number : LABEL_164 : if ( ( @@a3@@ & Number ) != Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v43 = iwmmxt_load_creg ( Number ) ; v10 = ( @@a3@@ >> Number ) & Number ; if ( v10 == Number ) { tcg_gen_shri_i32 ( v43 , v43 , ( ( Number * ( _BYTE ) @@a3@@ ) & Number ) + Number ) ; } else if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v10 ) tcg_gen_shri_i32 ( v43 , v43 , ( ( Number * ( _BYTE ) @@a3@@ ) & Number ) + Number ) ; else tcg_gen_shri_i32 ( v43 , v43 , ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; } tcg_gen_shli_i32 ( v43 , v43 , Number ) ; gen_set_cpsr ( v43 , Number ) ; dead_tmp ( v43 ) ; break ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } return Number L ; } if ( v4 > Number ) return Number L ; if ( v4 < Number ) { if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : LABEL_138 : gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v40 = iwmmxt_load_creg ( ( ( @@a3@@ >> Number ) & Number ) + Number ) ; tcg_gen_andi_i32 ( v40 , v40 , Number ) ; iwmmxt_load_reg ( cpu_V1 , @@a3@@ & Number ) ; gen_helper_iwmmxt_align ( cpu_M0 , cpu_M0 , cpu_V1 , v40 ) ; dead_tmp ( v40 ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; return Number L ; case Number : case Number : goto LABEL_302 ; case Number : goto LABEL_232 ; case Number : goto LABEL_369 ; case Number : goto LABEL_317 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : goto LABEL_138 ; case Number : case Number : goto LABEL_271 ; case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : LABEL_88 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v65 = HIWORD ( @@a3@@ ) & Number ; gen_op_iwmmxt_movq_M0_wRn ( @@a3@@ & Number ) ; if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_maddsq_M0_wRn ( v65 ) ; else gen_op_iwmmxt_madduq_M0_wRn ( v65 ) ; goto LABEL_123 ; case Number : goto LABEL_330 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : goto LABEL_131 ; case Number : goto LABEL_138 ; case Number : goto LABEL_222 ; case Number : case Number : goto LABEL_292 ; case Number : goto LABEL_232 ; case Number : goto LABEL_150 ; case Number : goto LABEL_369 ; case Number : goto LABEL_98 ; case Number : goto LABEL_91 ; case Number : goto LABEL_183 ; case Number : goto LABEL_206 ; case Number : goto LABEL_317 ; case Number : goto LABEL_164 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : goto LABEL_131 ; case Number : goto LABEL_138 ; case Number : case Number : goto LABEL_282 ; case Number : goto LABEL_124 ; case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : goto LABEL_88 ; case Number : goto LABEL_330 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_199 ; case Number : goto LABEL_356 ; default : return Number L ; } } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : LABEL_343 : gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v47 = tcg_const_i32 ( ( @@a3@@ >> Number ) & Number ) ; iwmmxt_load_reg ( cpu_V1 , @@a3@@ & Number ) ; gen_helper_iwmmxt_align ( cpu_M0 , cpu_M0 , cpu_V1 , v47 ) ; tcg_temp_free_i32 ( v47 ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; return Number L ; case Number : case Number : goto LABEL_302 ; case Number : goto LABEL_232 ; case Number : goto LABEL_369 ; case Number : LABEL_118 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v70 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_macsw_M0_wRn ( v70 ) ; else gen_op_iwmmxt_macuw_M0_wRn ( v70 ) ; if ( ( @@a3@@ & Number ) == Number ) { iwmmxt_load_reg ( cpu_V1 , v58 ) ; tcg_gen_add_i64 ( cpu_M0 , cpu_M0 , cpu_V1 ) ; } goto LABEL_123 ; case Number : goto LABEL_317 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : case Number : case Number : case Number : if ( ( unsigned __int8 ) @@a3@@ >> Number == Number ) return Number L ; v60 = HIWORD ( @@a3@@ ) & Number ; v41 = load_reg ( @@a2@@ , ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_movq_M0_wRn ( v60 ) ; v8 = ( unsigned __int8 ) @@a3@@ >> Number ; if ( v8 == Number ) { v51 = tcg_const_i32 ( Number ) ; @@v54@@ = tcg_const_i32 ( ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; gen_helper_iwmmxt_insr ( cpu_M0 , cpu_M0 , v41 , v51 , @@v54@@ ) ; } else if ( v8 > Number ) { v51 = Number ; @@v54@@ = Number ; gen_helper_iwmmxt_insr ( cpu_M0 , cpu_M0 , v41 , Number , Number ) ; } else { if ( ( unsigned __int8 ) @@a3@@ >> Number ) { v51 = tcg_const_i32 ( Number ) ; @@v54@@ = tcg_const_i32 ( ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; } else { v51 = tcg_const_i32 ( Number L ) ; @@v54@@ = tcg_const_i32 ( ( Number * ( _BYTE ) @@a3@@ ) & Number ) ; } gen_helper_iwmmxt_insr ( cpu_M0 , cpu_M0 , v41 , v51 , @@v54@@ ) ; } tcg_temp_free_i32 ( @@v54@@ ) ; tcg_temp_free_i32 ( v51 ) ; dead_tmp ( v41 ) ; gen_op_iwmmxt_movq_wRn_M0 ( v60 ) ; gen_op_iwmmxt_set_mup ( ) ; break ; case Number : goto LABEL_343 ; case Number : case Number : goto LABEL_271 ; case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : goto LABEL_118 ; case Number : goto LABEL_330 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : goto LABEL_356 ; default : return Number L ; } return Number L ; } if ( v4 <= Number ) { if ( v4 >= Number ) { switch ( v4 ) { case Number : case Number : case Number : case Number : if ( ( unsigned __int8 ) @@a3@@ >> Number == Number ) return Number L ; v61 = HIWORD ( @@a3@@ ) & Number ; v44 = load_reg ( @@a2@@ , ( unsigned __int16 ) @@a3@@ >> Number ) ; v11 = ( unsigned __int8 ) @@a3@@ >> Number ; if ( v11 == Number ) { gen_helper_iwmmxt_bcstl ( cpu_M0 , v44 ) ; } else if ( v11 <= Number ) { if ( ( unsigned __int8 ) @@a3@@ >> Number ) gen_helper_iwmmxt_bcstw ( cpu_M0 , v44 ) ; else gen_helper_iwmmxt_bcstb ( cpu_M0 , v44 ) ; } dead_tmp ( v44 ) ; gen_op_iwmmxt_movq_wRn_M0 ( v61 ) ; gen_op_iwmmxt_set_mup ( ) ; break ; case Number : case Number : goto LABEL_343 ; case Number : case Number : goto LABEL_282 ; case Number : goto LABEL_124 ; case Number : case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : case Number : goto LABEL_118 ; case Number : case Number : LABEL_105 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v68 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_sadw_M0_wRn ( v68 ) ; else gen_op_iwmmxt_sadb_M0_wRn ( v68 ) ; if ( ( @@a3@@ & Number ) == Number ) gen_op_iwmmxt_addl_M0_wRn ( v58 ) ; goto LABEL_123 ; case Number : goto LABEL_330 ; case Number : case Number : goto LABEL_357 ; case Number : case Number : goto LABEL_344 ; case Number : goto LABEL_199 ; case Number : case Number : goto LABEL_356 ; case Number : goto LABEL_222 ; case Number : case Number : goto LABEL_292 ; case Number : goto LABEL_232 ; case Number : goto LABEL_150 ; case Number : goto LABEL_98 ; case Number : goto LABEL_91 ; case Number : goto LABEL_183 ; case Number : goto LABEL_206 ; case Number : goto LABEL_317 ; case Number : goto LABEL_164 ; default : return Number L ; } return Number L ; } if ( v4 <= Number ) { switch ( v4 ) { case Number : gen_op_iwmmxt_movq_M0_wRn ( @@a3@@ & Number ) ; gen_op_iwmmxt_orq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; gen_op_iwmmxt_setpsr_nz ( ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; case Number : case Number : goto LABEL_343 ; case Number : case Number : goto LABEL_282 ; case Number : goto LABEL_124 ; case Number : case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : case Number : goto LABEL_111 ; case Number : if ( ( @@a3@@ & Number ) == Number ) { v80 = ( unsigned __int16 ) @@a3@@ >> Number ; v57 = HIWORD ( @@a3@@ ) & Number ; switch ( v57 ) { case Number : case Number : return Number L ; case Number : gen_op_iwmmxt_set_cup ( ) ; goto LABEL_79 ; case Number : LABEL_79 : v37 = iwmmxt_load_creg ( v57 ) ; v50 = load_reg ( @@a2@@ , v80 ) ; tcg_gen_andc_i32 ( v37 , v37 , v50 ) ; dead_tmp ( v50 ) ; iwmmxt_store_creg ( v57 , v37 ) ; return Number L ; case Number : case Number : case Number : case Number : gen_op_iwmmxt_set_cup ( ) ; v38 = load_reg ( @@a2@@ , v80 ) ; iwmmxt_store_creg ( v57 , v38 ) ; return Number L ; default : return Number L ; } } return Number L ; case Number : case Number : goto LABEL_105 ; case Number : goto LABEL_330 ; case Number : case Number : goto LABEL_357 ; case Number : case Number : goto LABEL_344 ; case Number : goto LABEL_199 ; case Number : case Number : goto LABEL_356 ; case Number : gen_op_iwmmxt_movq_M0_wRn ( @@a3@@ & Number ) ; gen_op_iwmmxt_xorq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; gen_op_iwmmxt_setpsr_nz ( ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; case Number : goto LABEL_222 ; case Number : case Number : goto LABEL_292 ; case Number : goto LABEL_232 ; case Number : goto LABEL_150 ; case Number : goto LABEL_98 ; case Number : goto LABEL_91 ; case Number : if ( ( @@a3@@ & Number ) != Number ) return Number L ; v39 = iwmmxt_load_creg ( HIWORD ( @@a3@@ ) & Number ) ; store_reg ( ( __int64 ) @@a2@@ , ( unsigned __int16 ) @@a3@@ >> Number , v39 ) ; break ; case Number : goto LABEL_183 ; case Number : goto LABEL_206 ; case Number : goto LABEL_317 ; case Number : goto LABEL_164 ; default : return Number L ; } return Number L ; } if ( v4 <= Number && v4 >= Number ) { switch ( v4 ) { case Number : gen_op_iwmmxt_movq_M0_wRn ( @@a3@@ & Number ) ; gen_op_iwmmxt_andq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; gen_op_iwmmxt_setpsr_nz ( ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v63 = ( @@a3@@ >> Number ) & Number ; @@v64@@ = ( unsigned __int16 ) @@a3@@ >> Number ; v79 = @@a3@@ & Number ; if ( @@v64@@ == Number || v79 == Number ) return Number L ; gen_op_iwmmxt_movq_M0_wRn ( v63 ) ; v49 = load_reg ( @@a2@@ , @@v64@@ ) ; v53 = load_reg ( @@a2@@ , v79 ) ; v26 = HIWORD ( @@a3@@ ) & Number ; if ( v26 >= Number ) { if ( ( @@a3@@ & Number ) != Number ) tcg_gen_shri_i32 ( v49 , v49 , Number ) ; if ( ( @@a3@@ & Number ) != Number ) tcg_gen_shri_i32 ( v53 , v53 , Number ) ; gen_helper_iwmmxt_muladdswl ( cpu_M0 , cpu_M0 , v49 , v53 ) ; } else if ( v26 ) { if ( v26 != Number ) { dead_tmp ( v53 ) ; dead_tmp ( v49 ) ; return Number L ; } gen_helper_iwmmxt_muladdsw ( cpu_M0 , cpu_M0 , v49 , v53 ) ; } else { gen_helper_iwmmxt_muladdsl ( cpu_M0 , cpu_M0 , v49 , v53 ) ; } dead_tmp ( v53 ) ; dead_tmp ( v49 ) ; gen_op_iwmmxt_movq_wRn_M0 ( v63 ) ; gen_op_iwmmxt_set_mup ( ) ; break ; case Number : case Number : goto LABEL_343 ; case Number : case Number : goto LABEL_271 ; case Number : case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : case Number : LABEL_111 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v69 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_mulshw_M0_wRn ( v69 ) ; else gen_op_iwmmxt_mulslw_M0_wRn ( v69 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_muluhw_M0_wRn ( v69 ) ; } else { gen_op_iwmmxt_mululw_M0_wRn ( v69 ) ; } goto LABEL_123 ; case Number : goto LABEL_330 ; case Number : case Number : goto LABEL_357 ; case Number : case Number : goto LABEL_344 ; case Number : case Number : goto LABEL_356 ; case Number : gen_op_iwmmxt_movq_M0_wRn ( @@a3@@ & Number ) ; tcg_gen_neg_i64 ( cpu_M0 , cpu_M0 ) ; gen_op_iwmmxt_andq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; gen_op_iwmmxt_setpsr_nz ( ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; case Number : case Number : goto LABEL_302 ; case Number : goto LABEL_232 ; case Number : goto LABEL_317 ; default : return Number L ; } return Number L ; } } } } } } } } return Number L ; } switch ( v4 ) { case Number : goto LABEL_131 ; case Number : case Number : LABEL_282 : if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v62 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v46 = new_tmp ( ) ; if ( ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) goto LABEL_314 ; v20 = ( @@a3@@ >> Number ) & Number ; switch ( v20 ) { case Number : gen_helper_iwmmxt_sraq ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_sraw ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; case Number : gen_helper_iwmmxt_sral ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; break ; } goto LABEL_316 ; case Number : LABEL_124 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v71 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v7 = ( @@a3@@ >> Number ) & Number ; if ( v7 == Number ) return Number L ; if ( v7 == Number ) { gen_op_iwmmxt_cmpeql_M0_wRn ( v71 ) ; } else if ( v7 ) { gen_op_iwmmxt_cmpeqw_M0_wRn ( v71 ) ; } else { gen_op_iwmmxt_cmpeqb_M0_wRn ( v71 ) ; } goto LABEL_385 ; case Number : goto LABEL_369 ; case Number : goto LABEL_258 ; case Number : goto LABEL_245 ; case Number : goto LABEL_330 ; case Number : goto LABEL_357 ; case Number : goto LABEL_344 ; case Number : LABEL_199 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v13 = ( @@a3@@ >> Number ) & Number ; if ( v13 == Number ) return Number L ; if ( v13 == Number ) { gen_helper_iwmmxt_addcl ( cpu_M0 , cpu_M0 ) ; } else if ( v13 ) { gen_helper_iwmmxt_addcw ( cpu_M0 , cpu_M0 ) ; } else { gen_helper_iwmmxt_addcb ( cpu_M0 , cpu_M0 ) ; } break ; case Number : goto LABEL_356 ; default : return Number L ; } } LABEL_123 : gen_op_iwmmxt_movq_wRn_M0 ( v58 ) ; gen_op_iwmmxt_set_mup ( ) ; return Number L ; } switch ( v4 ) { case Number : case Number : LABEL_302 : if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v62 = ( unsigned __int16 ) @@a3@@ >> Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v46 = new_tmp ( ) ; v22 = ( @@a3@@ >> Number ) & Number ; switch ( v22 ) { case Number : if ( ! ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) { gen_helper_iwmmxt_rorq ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; goto LABEL_316 ; } break ; case Number : if ( ! ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) { gen_helper_iwmmxt_rorw ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; LABEL_316 : dead_tmp ( v46 ) ; gen_op_iwmmxt_movq_wRn_M0 ( v62 ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; } break ; case Number : if ( ! ( unsigned int ) gen_iwmmxt_shift ( @@a3@@ , Number , v46 ) ) { gen_helper_iwmmxt_rorl ( cpu_M0 , cpu_env , cpu_M0 , v46 ) ; goto LABEL_316 ; } break ; default : goto LABEL_316 ; } LABEL_314 : dead_tmp ( v46 ) ; return Number L ; case Number : LABEL_232 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v73 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v16 = ( @@a3@@ >> Number ) & Number ; if ( v16 == Number ) return Number L ; if ( v16 == Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_cmpgtsl_M0_wRn ( v73 ) ; else gen_op_iwmmxt_cmpgtul_M0_wRn ( v73 ) ; } else if ( v16 ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_cmpgtsw_M0_wRn ( v73 ) ; else gen_op_iwmmxt_cmpgtuw_M0_wRn ( v73 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_cmpgtsb_M0_wRn ( v73 ) ; } else { gen_op_iwmmxt_cmpgtub_M0_wRn ( v73 ) ; } goto LABEL_385 ; case Number : LABEL_369 : if ( ( @@a3@@ & Number ) == Number || ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v78 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v25 = ( @@a3@@ >> Number ) & Number ; switch ( v25 ) { case Number : if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_packsq_M0_wRn ( v78 ) ; else gen_op_iwmmxt_packuq_M0_wRn ( v78 ) ; break ; case Number : if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_packsw_M0_wRn ( v78 ) ; else gen_op_iwmmxt_packuw_M0_wRn ( v78 ) ; break ; case Number : if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_packsl_M0_wRn ( v78 ) ; else gen_op_iwmmxt_packul_M0_wRn ( v78 ) ; break ; } LABEL_385 : gen_op_iwmmxt_movq_wRn_M0 ( v59 ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; case Number : LABEL_317 : v58 = ( unsigned __int16 ) @@a3@@ >> Number ; v74 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v23 = ( @@a3@@ >> Number ) & Number ; if ( v23 == Number ) return Number L ; if ( v23 == Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_minsl_M0_wRn ( v74 ) ; else gen_op_iwmmxt_minul_M0_wRn ( v74 ) ; } else if ( v23 ) { if ( ( @@a3@@ & Number ) != Number ) gen_op_iwmmxt_minsw_M0_wRn ( v74 ) ; else gen_op_iwmmxt_minuw_M0_wRn ( v74 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_op_iwmmxt_minsb_M0_wRn ( v74 ) ; } else { gen_op_iwmmxt_minub_M0_wRn ( v74 ) ; } goto LABEL_123 ; case Number : LABEL_357 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v77 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; switch ( ( @@a3@@ >> Number ) & Number ) { case Number : gen_op_iwmmxt_addnb_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addub_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addsb_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addnw_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_adduw_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addsw_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addnl_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addul_M0_wRn ( v77 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_addsl_M0_wRn ( v77 ) ; goto LABEL_385 ; default : result = Number L ; break ; } return result ; case Number : LABEL_344 : v59 = ( unsigned __int16 ) @@a3@@ >> Number ; v76 = @@a3@@ & Number ; gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; switch ( ( @@a3@@ >> Number ) & Number ) { case Number : gen_op_iwmmxt_subnb_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subub_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subsb_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subnw_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subuw_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subsw_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subnl_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subul_M0_wRn ( v76 ) ; goto LABEL_385 ; case Number : gen_op_iwmmxt_subsl_M0_wRn ( v76 ) ; goto LABEL_385 ; default : result = Number L ; break ; } return result ; case Number : LABEL_356 : gen_op_iwmmxt_movq_M0_wRn ( HIWORD ( @@a3@@ ) & Number ) ; v48 = tcg_const_i32 ( HIWORD ( @@a3@@ ) & Number | @@a3@@ & Number ) ; gen_helper_iwmmxt_shufh ( cpu_M0 , cpu_env , cpu_M0 , v48 ) ; tcg_temp_free_i32 ( v48 ) ; gen_op_iwmmxt_movq_wRn_M0 ( ( unsigned __int16 ) @@a3@@ >> Number ) ; gen_op_iwmmxt_set_mup ( ) ; gen_op_iwmmxt_set_cup ( ) ; return Number L ; default : return Number L ; } } if ( ( @@a3@@ & Number ) == Number ) { v55 = @@a3@@ & Number ; @@v83@@ = ( unsigned __int16 ) @@a3@@ >> Number ; @@v84@@ = HIWORD ( @@a3@@ ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { iwmmxt_load_reg ( cpu_V0 , v55 ) ; tcg_gen_trunc_i64_i32 ( cpu_R [ @@v83@@ ] , cpu_V0 ) ; tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number L ) ; tcg_gen_trunc_i64_i32 ( cpu_R [ @@v84@@ ] , cpu_V0 ) ; } else { tcg_gen_concat_i32_i64 ( cpu_V0 , cpu_R [ ( unsigned __int16 ) @@a3@@ >> Number ] , cpu_R [ @@v84@@ ] ) ; iwmmxt_store_reg ( cpu_V0 , v55 ) ; gen_op_iwmmxt_set_mup ( ) ; } result = Number L ; } else { v56 = ( unsigned __int16 ) @@a3@@ >> Number ; @@v82@@ = new_tmp ( ) ; if ( gen_iwmmxt_address ( @@a2@@ , @@a3@@ , @@v82@@ ) ) { dead_tmp ( @@v82@@ ) ; result = Number L ; } else { if ( ( @@a3@@ & Number ) != Number ) { if ( @@a3@@ >> Number == Number ) { v34 = new_tmp ( ) ; tcg_gen_qemu_ld32u ( v34 , @@v82@@ , @@a2@@ [ Number ] ) ; iwmmxt_store_creg ( v56 , v34 ) ; } else { v28 = Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) { tcg_gen_qemu_ld64 ( cpu_M0 , @@v82@@ , @@a2@@ [ Number ] ) ; v28 = Number ; } else { v33 = gen_ld32 ( @@v82@@ , @@a2@@ [ Number ] ) ; } } else if ( ( @@a3@@ & Number ) != Number ) { v33 = gen_ld16u ( @@v82@@ , @@a2@@ [ Number ] ) ; } else { v33 = gen_ld8u ( @@v82@@ , @@a2@@ [ Number ] ) ; } if ( v28 ) { tcg_gen_extu_i32_i64 ( cpu_M0 , v33 ) ; dead_tmp ( v33 ) ; } gen_op_iwmmxt_movq_wRn_M0 ( v56 ) ; } } else if ( @@a3@@ >> Number == Number ) { v35 = iwmmxt_load_creg ( v56 ) ; gen_st32 ( v35 , @@v82@@ , @@a2@@ [ Number ] ) ; } else { gen_op_iwmmxt_movq_M0_wRn ( v56 ) ; v36 = new_tmp ( ) ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) { dead_tmp ( v36 ) ; tcg_gen_qemu_st64 ( cpu_M0 , @@v82@@ , @@a2@@ [ Number ] ) ; } else { tcg_gen_trunc_i64_i32 ( v36 , cpu_M0 ) ; gen_st32 ( v36 , @@v82@@ , @@a2@@ [ Number ] ) ; } } else { tcg_gen_trunc_i64_i32 ( v36 , cpu_M0 ) ; if ( ( @@a3@@ & Number ) != Number ) gen_st16 ( v36 , @@v82@@ , @@a2@@ [ Number ] ) ; else gen_st8 ( v36 , @@v82@@ , @@a2@@ [ Number ] ) ; } } dead_tmp ( @@v82@@ ) ; result = Number L ; } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v84", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v83", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v82", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v64", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v54", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}]}