{"name": "gen_helper_neon_qabs_s16", "code": "unsigned __int64 __fastcall gen_helper_neon_qabs_s16 ( int @@a1@@ , int @@a2@@ , int @@a3@@ ) { __int64 @@v4@@ [ Number ] ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; @@v4@@ [ Number ] = @@a2@@ ; @@v4@@ [ Number ] = @@a3@@ ; tcg_gen_helperN ( ( __int64 ) & helper_neon_qabs_s16 , Number , Number , @@a1@@ , Number , ( __int64 ) @@v4@@ ) ; return __readfsqword ( Number ) ^ @@v5@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v4", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "tcg_gen_helperN", "code": "unsigned __int64 __fastcall tcg_gen_helperN ( __int64 @@a1@@ , unsigned int @@a2@@ , unsigned int @@a3@@ , __int64 @@a4@@ , unsigned int @@a5@@ , __int64 @@a6@@ ) { unsigned int @@v11@@ ; unsigned __int64 @@v12@@ ; @@v12@@ = __readfsqword ( Number ) ; @@v11@@ = tcg_const_i64 ( @@a1@@ ) ; tcg_gen_callN ( & tcg_ctx , @@v11@@ , @@a2@@ , @@a3@@ , @@a4@@ , @@a5@@ , @@a6@@ ) ; tcg_temp_free_i64 ( @@v11@@ ) ; return __readfsqword ( Number ) ^ @@v12@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v12", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "disas_neon_data_insn", "code": "_BOOL8 __fastcall disas_neon_data_insn ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { _BOOL8 result ; int v4 ; _BOOL4 v5 ; int v6 ; int v7 ; int v8 ; int v9 ; _BOOL4 v10 ; __int64 v11 ; __int64 v12 ; int v13 ; unsigned int v14 ; int v15 ; int v16 ; int v17 ; int v18 ; unsigned int v19 ; int v20 ; __int64 v21 ; __int64 v22 ; __int64 v23 ; __int64 v24 ; __int64 v25 ; __int64 v26 ; __int64 v27 ; __int64 v28 ; __int64 v29 ; __int64 v30 ; int v31 ; int v32 ; int @@v34@@ ; unsigned int @@v35@@ ; int @@v36@@ ; int v37 ; int k ; int v39 ; int v40 ; int v41 ; signed int v42 ; unsigned int v43 ; int i8 ; int v45 ; int i7 ; int jj ; int n ; int ii ; int l ; int m ; int i ; int i6 ; int i4 ; int i5 ; int ll ; int mm ; int i1 ; int i2 ; int i3 ; int kk ; int @@v62@@ ; int @@v63@@ ; unsigned int v64 ; unsigned int v65 ; unsigned int v66 ; unsigned int v67 ; unsigned int v68 ; int v69 ; int v70 ; int v71 ; unsigned int v72 ; unsigned int v73 ; unsigned int v74 ; unsigned int v75 ; unsigned int v76 ; unsigned int v77 ; unsigned int v78 ; unsigned int v79 ; unsigned int v80 ; unsigned int v81 ; unsigned int v82 ; unsigned int v83 ; unsigned int v84 ; unsigned int v85 ; unsigned int v86 ; unsigned int v87 ; unsigned int v88 ; unsigned int v89 ; unsigned int v90 ; unsigned int v91 ; unsigned int v92 ; unsigned int v93 ; unsigned int v94 ; unsigned int v95 ; unsigned int v96 ; unsigned int v97 ; unsigned int v98 ; unsigned int v99 ; unsigned int v100 ; unsigned int v101 ; unsigned int v102 ; unsigned int v103 ; unsigned int v104 ; unsigned int v105 ; unsigned int v106 ; unsigned int v107 ; unsigned int v108 ; unsigned int v109 ; unsigned int v110 ; unsigned int v111 ; unsigned int v112 ; unsigned int v113 ; unsigned int v114 ; unsigned int v115 ; unsigned int v116 ; unsigned int v117 ; unsigned int v118 ; unsigned int v119 ; unsigned int v120 ; unsigned int v121 ; unsigned int v122 ; unsigned int v123 ; unsigned int v124 ; unsigned int v125 ; unsigned int v126 ; unsigned int v127 ; unsigned int v128 ; unsigned int v129 ; unsigned int v130 ; unsigned int v131 ; unsigned int v132 ; unsigned int v133 ; unsigned int v134 ; unsigned int v135 ; int @@v136@@ ; int @@j@@ ; int @@v138@@ ; int @@nn@@ ; int @@v140@@ ; int @@v141@@ ; int v142 ; unsigned int v143 ; unsigned int v144 ; int v145 ; unsigned int v146 ; int v147 ; int v148 ; int v149 ; int v150 ; int v151 ; unsigned int @@v152@@ ; unsigned int @@v153@@ ; unsigned int @@v154@@ ; unsigned int @@v155@@ ; unsigned int @@v156@@ ; unsigned int v157 ; unsigned int v158 ; unsigned int @@v159@@ ; unsigned int @@v160@@ ; unsigned int @@v161@@ ; int @@v162@@ ; int @@v163@@ ; int @@v164@@ ; int @@v165@@ ; int @@v166@@ ; int @@v167@@ ; unsigned int @@v168@@ ; unsigned int @@v169@@ ; unsigned int @@v170@@ ; unsigned int @@v171@@ ; unsigned int @@v172@@ ; unsigned int @@v173@@ ; unsigned int @@v174@@ ; unsigned __int64 @@v175@@ ; unsigned __int64 @@v176@@ ; if ( ! * ( _DWORD * ) ( @@a2@@ + Number ) ) return Number L ; @@v140@@ = ( @@a3@@ & Number ) != Number ; @@v141@@ = HIBYTE ( @@a3@@ ) & Number ; if ( arm_feature ( @@a1@@ , Number ) ) { @@v34@@ = ( ( unsigned __int16 ) @@a3@@ >> Number ) | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v34@@ = ( unsigned __int16 ) @@a3@@ >> Number ; } if ( arm_feature ( @@a1@@ , Number ) ) { @@v35@@ = HIWORD ( @@a3@@ ) & Number | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v35@@ = HIWORD ( @@a3@@ ) & Number ; } if ( arm_feature ( @@a1@@ , Number ) ) { @@v36@@ = @@a3@@ & Number | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v36@@ = @@a3@@ & Number ; } v37 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) == Number ) { if ( @@v140@@ && ( @@v34@@ & Number ) != Number ) return Number L ; v149 = ( @@a3@@ >> Number ) & Number ; v67 = ( @@a3@@ >> Number ) & Number | ( @@v141@@ << Number ) | @@a3@@ & Number ; switch ( v149 ) { case Number : case Number : v67 <<= Number ; goto LABEL_566 ; case Number : case Number : v67 <<= Number ; goto LABEL_566 ; case Number : case Number : v67 <<= Number ; goto LABEL_566 ; case Number : case Number : v67 |= v67 << Number ; goto LABEL_566 ; case Number : case Number : v67 = ( v67 << Number ) | ( v67 << Number ) ; goto LABEL_566 ; case Number : v14 = v67 << Number ; LOBYTE ( v14 ) = Number ; v67 = v14 ; goto LABEL_566 ; case Number : v67 = ( v67 << Number ) | Number ; goto LABEL_566 ; case Number : v67 |= ( v67 << Number ) | ( v67 << Number ) | ( v67 << Number ) ; if ( ( @@a3@@ & Number ) != Number ) v67 = ~ v67 ; goto LABEL_566 ; case Number : if ( ( @@a3@@ & Number ) != Number ) return Number L ; if ( ( v67 & Number ) != Number ) v15 = Number ; else v15 = Number ; v67 = ( v67 << Number ) & Number | ( v67 << Number ) & Number | v15 ; LABEL_566 : if ( ( @@a3@@ & Number ) != Number ) v67 = ~ v67 ; for ( i = Number ; ; ++ i ) { v16 = @@v140@@ ? Number : Number ; if ( v16 <= i ) break ; if ( ( v149 & Number ) != Number && ( ( @@a3@@ >> Number ) & Number ) <= Number ) { v79 = neon_load_reg ( @@v34@@ , i ) ; if ( ( @@a3@@ & Number ) != Number ) tcg_gen_andi_i32 ( v79 , v79 , v67 ) ; else tcg_gen_ori_i32 ( v79 , v79 , v67 ) ; } else { v79 = tcg_temp_new_i32 ( ) ; if ( v149 == Number && ( @@a3@@ & Number ) != Number ) { @@v138@@ = Number ; for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { if ( ( v67 & ( Number << ( Number * ( i & Number ) + @@j@@ ) ) ) != Number ) @@v138@@ |= Number << ( Number * @@j@@ ) ; } tcg_gen_movi_i32 ( v79 , @@v138@@ ) ; } else { tcg_gen_movi_i32 ( v79 , v67 ) ; } } neon_store_reg ( @@v34@@ , i , v79 ) ; } break ; default : goto LABEL_566 ; } return Number L ; } v148 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) return Number L ; k = Number ; } else { for ( k = Number ; ( @@a3@@ & ( Number << ( k + Number ) ) ) == Number ; -- k ) ; } v41 = HIWORD ( @@a3@@ ) & ( ( Number << ( k + Number ) ) - Number ) ; if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) { if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) { if ( v148 == Number ) { if ( @@v140@@ || ( @@v34@@ & Number ) != Number ) return Number L ; v78 = neon_load_reg ( @@v36@@ , Number ) ; v103 = neon_load_reg ( @@v36@@ , Number ) ; for ( l = Number ; l <= Number ; ++ l ) { if ( l == Number ) v78 = v103 ; gen_neon_widen ( cpu_V0 , v78 , k , @@v141@@ ) ; if ( v41 ) { tcg_gen_shli_i64 ( cpu_V0 , cpu_V0 , v41 ) ; if ( k <= Number || ! @@v141@@ ) { if ( k ) { if ( k == Number ) v66 = Number >> ( Number - ( BYTE2 ( @@a3@@ ) & ( ( Number << ( k + Number ) ) - Number ) ) ) ; else v66 = Number >> ( Number - ( BYTE2 ( @@a3@@ ) & ( ( Number << ( k + Number ) ) - Number ) ) ) ; } else { v66 = ( Number >> ( Number - v41 ) << Number ) | ( Number >> ( Number - v41 ) ) ; } if ( k > Number ) @@v176@@ = v66 ; else @@v176@@ = ( ( unsigned __int64 ) v66 << Number ) | v66 ; tcg_gen_andi_i64 ( cpu_V0 , cpu_V0 , ~ @@v176@@ ) ; } } neon_store_reg64 ( cpu_V0 , l + @@v34@@ ) ; } } else { if ( ( ( @@a3@@ >> Number ) & Number ) <= Number ) return Number L ; if ( ( @@a3@@ & Number ) == Number || @@v140@@ && ( ( ( unsigned __int8 ) @@v36@@ | ( unsigned __int8 ) @@v34@@ ) & Number ) != Number ) return Number L ; v43 = Number - v41 ; for ( m = Number ; ; ++ m ) { v13 = @@v140@@ ? Number : Number ; if ( v13 <= m ) break ; v11 = neon_reg_offset ( @@v36@@ , m ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v11 ) ; if ( ( @@a3@@ & Number ) != Number ) { if ( @@v141@@ ) gen_vfp_toul ( Number , v43 , Number ) ; else gen_vfp_tosl ( Number , v43 , Number ) ; } else if ( @@v141@@ ) { gen_vfp_ulto ( Number , v43 , Number ) ; } else { gen_vfp_slto ( Number , v43 , Number ) ; } v12 = neon_reg_offset ( @@v34@@ , m ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v12 ) ; } } } else { if ( v148 == Number ) v10 = @@v141@@ == Number ; else v10 = @@v141@@ ; @@v166@@ = v10 ; if ( ( @@v36@@ & Number ) != Number ) return Number L ; v42 = v41 - ( Number << ( k + Number ) ) ; v39 = k + Number ; if ( v39 == Number ) { v157 = tcg_const_i64 ( v42 ) ; neon_load_reg64 ( cpu_V0 , @@v36@@ ) ; neon_load_reg64 ( cpu_V1 , @@v36@@ + Number ) ; for ( n = Number ; n <= Number ; ++ n ) { if ( n ) @@v136@@ = cpu_V1 ; else @@v136@@ = cpu_V0 ; if ( @@v140@@ ) { if ( @@v166@@ ) gen_helper_neon_rshl_u64 ( cpu_V0 , @@v136@@ , v157 ) ; else gen_helper_neon_rshl_s64 ( cpu_V0 , @@v136@@ , v157 ) ; } else if ( @@v166@@ ) { gen_helper_neon_shl_u64 ( cpu_V0 , @@v136@@ , v157 ) ; } else { gen_helper_neon_shl_s64 ( cpu_V0 , @@v136@@ , v157 ) ; } v75 = tcg_temp_new_i32 ( ) ; gen_neon_narrow_op ( v148 == Number , @@v141@@ , Number , v75 , cpu_V0 ) ; neon_store_reg ( @@v34@@ , n , v75 ) ; } tcg_temp_free_i64 ( v157 ) ; } else { if ( v39 == Number ) v65 = ( ( unsigned __int16 ) v42 << Number ) | ( unsigned __int16 ) v42 ; else v65 = v42 ; v102 = tcg_const_i32 ( v65 ) ; v142 = neon_load_reg ( @@v36@@ + Number , Number ) ; v145 = neon_load_reg ( @@v36@@ + Number , Number ) ; for ( ii = Number ; ii <= Number ; ++ ii ) { if ( ii ) { v76 = v142 ; gen_neon_shift_narrow ( v39 , v142 , v102 , @@v140@@ , @@v166@@ ) ; } else { v76 = neon_load_reg ( @@v36@@ , Number ) ; gen_neon_shift_narrow ( v39 , v76 , v102 , @@v140@@ , @@v166@@ ) ; } if ( ii ) { v131 = v145 ; gen_neon_shift_narrow ( v39 , v145 , v102 , @@v140@@ , @@v166@@ ) ; } else { v131 = neon_load_reg ( @@v36@@ , Number ) ; gen_neon_shift_narrow ( v39 , v131 , v102 , @@v140@@ , @@v166@@ ) ; } tcg_gen_concat_i32_i64 ( cpu_V0 , v76 , v131 ) ; tcg_temp_free_i32 ( v76 ) ; tcg_temp_free_i32 ( v131 ) ; v77 = tcg_temp_new_i32 ( ) ; gen_neon_narrow_op ( v148 == Number , @@v141@@ , v39 - Number , v77 , cpu_V0 ) ; neon_store_reg ( @@v34@@ , ii , v77 ) ; } tcg_temp_free_i32 ( v102 ) ; } } return Number L ; } if ( @@v140@@ && ( ( ( unsigned __int8 ) @@v36@@ | ( unsigned __int8 ) @@v34@@ ) & Number ) != Number ) return Number L ; if ( ! @@v141@@ && ( v148 == Number || v148 == Number ) ) return Number L ; if ( ( ( @@a3@@ >> Number ) & Number ) <= Number ) v41 -= Number << ( k + Number ) ; if ( k == Number ) { @@v62@@ = @@v140@@ + Number ; } else { if ( @@v140@@ ) v9 = Number ; else v9 = Number ; @@v62@@ = v9 ; } if ( k <= Number ) { if ( k >= Number ) { v64 = v41 ; } else if ( k ) { if ( k != Number ) goto LABEL_382 ; v64 = ( ( unsigned __int16 ) v41 << Number ) | ( unsigned __int16 ) v41 ; } else { v64 = ( ( ( ( unsigned __int8 ) v41 << Number ) | ( unsigned __int8 ) v41 ) << Number ) | ( ( unsigned __int8 ) v41 << Number ) | ( unsigned __int8 ) v41 ; } for ( jj = Number ; jj < @@v62@@ ; ++ jj ) { if ( k == Number ) { neon_load_reg64 ( cpu_V0 , jj + @@v36@@ ) ; tcg_gen_movi_i64 ( cpu_V1 , v64 ) ; switch ( v148 ) { case Number : case Number : if ( @@v141@@ ) goto LABEL_387 ; gen_helper_neon_shl_s64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : case Number : if ( @@v141@@ ) gen_helper_neon_rshl_u64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_rshl_s64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : case Number : LABEL_387 : gen_helper_neon_shl_u64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : gen_helper_neon_qshlu_s64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_qshl_u64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_qshl_s64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; default : break ; } if ( v148 == Number || v148 == Number ) { neon_load_reg64 ( cpu_V1 , jj + @@v34@@ ) ; tcg_gen_add_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } else if ( v148 == Number || v148 == Number && @@v141@@ ) { neon_load_reg64 ( cpu_V1 , jj + @@v34@@ ) ; if ( v41 >= Number && v41 <= Number ) { if ( v148 == Number ) @@v175@@ = Number >> - ( char ) v41 ; else @@v175@@ = Number << v41 ; } else { @@v175@@ = Number L ; } tcg_gen_andi_i64 ( cpu_V1 , cpu_V1 , ~ @@v175@@ ) ; tcg_gen_or_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } neon_store_reg64 ( cpu_V0 , jj + @@v34@@ ) ; } else { v74 = neon_load_reg ( @@v36@@ , jj ) ; v99 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v99 , v64 ) ; switch ( v148 ) { case Number : case Number : switch ( @@v141@@ | ( Number * k ) ) { case Number : gen_helper_neon_shl_s8 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : goto LABEL_413 ; case Number : gen_helper_neon_shl_s16 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : goto LABEL_428 ; case Number : gen_helper_neon_shl_s32 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : goto LABEL_416 ; default : result = Number L ; break ; } return result ; case Number : case Number : switch ( @@v141@@ | ( Number * k ) ) { case Number : gen_helper_neon_rshl_s8 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_rshl_u8 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_rshl_s16 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_rshl_u16 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_rshl_s32 ( v74 , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_rshl_u32 ( v74 , v74 , v99 ) ; goto LABEL_444 ; default : result = Number L ; break ; } return result ; case Number : case Number : if ( k == Number ) { LABEL_416 : gen_helper_neon_shl_u32 ( v74 , v74 , v99 ) ; } else if ( k ) { LABEL_428 : gen_helper_neon_shl_u16 ( v74 , v74 , v99 ) ; } else { LABEL_413 : gen_helper_neon_shl_u8 ( v74 , v74 , v99 ) ; } goto LABEL_444 ; case Number : if ( k == Number ) { gen_helper_neon_qshlu_s32 ( v74 , cpu_env , v74 , v99 ) ; } else if ( k ) { gen_helper_neon_qshlu_s16 ( v74 , cpu_env , v74 , v99 ) ; } else { gen_helper_neon_qshlu_s8 ( v74 , cpu_env , v74 , v99 ) ; } goto LABEL_444 ; case Number : switch ( @@v141@@ | ( Number * k ) ) { case Number : gen_helper_neon_qshl_s8 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_qshl_u8 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_qshl_s16 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_qshl_u16 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_qshl_s32 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; case Number : gen_helper_neon_qshl_u32 ( v74 , cpu_env , v74 , v99 ) ; goto LABEL_444 ; default : result = Number L ; break ; } return result ; default : LABEL_444 : tcg_temp_free_i32 ( v99 ) ; if ( v148 == Number || v148 == Number ) { v100 = neon_load_reg ( @@v34@@ , jj ) ; gen_neon_add ( k , v74 , v100 ) ; tcg_temp_free_i32 ( v100 ) ; } else if ( v148 == Number || v148 == Number && @@v141@@ ) { if ( k == Number ) { if ( v41 >= Number && v41 <= Number ) { if ( v148 == Number ) v70 = Number >> - ( char ) v41 ; else v70 = Number << v41 ; } else { v70 = Number ; } } else if ( k ) { if ( v148 == Number ) v71 = Number >> - ( char ) v41 ; else v71 = ( unsigned __int16 ) ( Number << v41 ) ; v70 = ( v71 << Number ) | v71 ; } else { if ( v148 == Number ) v69 = Number >> - ( char ) v41 ; else v69 = ( unsigned __int8 ) ( Number << v41 ) ; v70 = ( ( ( v69 << Number ) | v69 ) << Number ) | ( v69 << Number ) | v69 ; } v101 = neon_load_reg ( @@v34@@ , jj ) ; tcg_gen_andi_i32 ( v74 , v74 , v70 ) ; tcg_gen_andi_i32 ( v101 , v101 , ~ v70 ) ; tcg_gen_or_i32 ( v74 , v74 , v101 ) ; tcg_temp_free_i32 ( v101 ) ; } neon_store_reg ( @@v34@@ , jj , v74 ) ; break ; } } } return Number L ; } LABEL_382 : abort ( ) ; } if ( v37 == Number ) { if ( @@v141@@ ) { if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) return Number L ; if ( ( @@a3@@ & Number ) == Number || @@v140@@ && ( @@v34@@ & Number ) != Number ) return Number L ; if ( ( @@a3@@ & Number ) != Number ) v97 = neon_load_reg ( @@v36@@ , Number ) ; else v97 = neon_load_reg ( @@v36@@ , Number ) ; if ( ( @@a3@@ & Number ) != Number ) { gen_neon_dup_u8 ( v97 , Number * ( ( @@a3@@ >> Number ) & Number ) ) ; } else if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_neon_dup_high16 ( v97 ) ; else gen_neon_dup_low16 ( v97 ) ; } for ( kk = Number ; ; ++ kk ) { v32 = @@v140@@ ? Number : Number ; if ( v32 <= kk ) break ; v127 = tcg_temp_new_i32 ( ) ; tcg_gen_mov_i32 ( v127 , v97 ) ; neon_store_reg ( @@v34@@ , kk , v127 ) ; } tcg_temp_free_i32 ( v97 ) ; } else { if ( ( int ) ( @@v35@@ + ( ( @@a3@@ >> Number ) & Number ) + Number ) > Number ) return Number L ; if ( ( @@a3@@ & Number ) != Number ) { v95 = neon_load_reg ( @@v34@@ , Number ) ; } else { v95 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v95 , Number ) ; } v126 = neon_load_reg ( @@v36@@ , Number ) ; v144 = tcg_const_i32 ( @@v35@@ ) ; v146 = tcg_const_i32 ( Number * ( ( ( @@a3@@ >> Number ) & Number ) + Number ) ) ; gen_helper_neon_tbl ( v126 , v126 , v95 , v144 , v146 ) ; tcg_temp_free_i32 ( v95 ) ; if ( ( @@a3@@ & Number ) != Number ) { v96 = neon_load_reg ( @@v34@@ , Number ) ; } else { v96 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v96 , Number ) ; } v135 = neon_load_reg ( @@v36@@ , Number ) ; gen_helper_neon_tbl ( v135 , v135 , v96 , v144 , v146 ) ; tcg_temp_free_i32 ( v146 ) ; tcg_temp_free_i32 ( v144 ) ; neon_store_reg ( @@v34@@ , Number , v126 ) ; neon_store_reg ( @@v34@@ , Number , v135 ) ; tcg_temp_free_i32 ( v96 ) ; } } else { v151 = ( @@a3@@ >> Number ) & Number | ( @@a3@@ >> Number ) & Number ; v40 = ( @@a3@@ >> Number ) & Number ; if ( ( ( ( int ) neon_2rm_sizes [ v151 ] >> ( ( @@a3@@ >> Number ) & Number ) ) & Number ) == Number ) return Number L ; if ( v151 != Number && v151 != Number && @@v140@@ && ( ( ( unsigned __int8 ) @@v34@@ | ( unsigned __int8 ) @@v36@@ ) & Number ) != Number ) return Number L ; switch ( v151 ) { case Number : for ( ll = Number ; ; ++ ll ) { v18 = @@v140@@ ? Number : Number ; if ( v18 <= ll ) break ; v87 = neon_load_reg ( @@v36@@ , Number * ll ) ; v108 = neon_load_reg ( @@v36@@ , Number * ll + Number ) ; if ( v40 != Number ) { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_swap_half ( v87 ) ; else tcg_gen_bswap32_i32 ( v87 , v87 ) ; } neon_store_reg ( @@v34@@ , Number * ll + Number , v87 ) ; if ( v40 != Number ) { if ( v40 ) gen_swap_half ( v108 ) ; else tcg_gen_bswap32_i32 ( v108 , v108 ) ; } neon_store_reg ( @@v34@@ , Number * ll , v108 ) ; } return Number L ; case Number : case Number : case Number : case Number : for ( mm = Number ; @@v140@@ >= mm ; ++ mm ) { v19 = neon_load_reg ( @@v36@@ , Number * mm ) ; gen_neon_widen ( cpu_V0 , v19 , v40 , v151 & Number ) ; v88 = neon_load_reg ( @@v36@@ , Number * mm + Number ) ; gen_neon_widen ( cpu_V1 , v88 , v40 , v151 & Number ) ; if ( v40 == Number ) { tcg_gen_add_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_paddl_u32 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_paddl_u16 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } if ( v151 > Number ) { neon_load_reg64 ( cpu_V1 , mm + @@v34@@ ) ; gen_neon_addl ( v40 ) ; } neon_store_reg64 ( cpu_V0 , mm + @@v34@@ ) ; } return Number L ; case Number : if ( v40 != Number ) goto LABEL_841 ; for ( @@nn@@ = Number ; ; @@nn@@ += Number ) { v20 = @@v140@@ ? Number : Number ; if ( v20 <= @@nn@@ ) break ; v89 = neon_load_reg ( @@v36@@ , @@nn@@ ) ; v109 = neon_load_reg ( @@v34@@ , @@nn@@ + Number ) ; neon_store_reg ( @@v36@@ , @@nn@@ , v109 ) ; neon_store_reg ( @@v34@@ , @@nn@@ + Number , v89 ) ; } return Number L ; case Number : return ( unsigned int ) gen_neon_unzip ( @@v34@@ , @@v36@@ , v40 , @@v140@@ ) != Number ; case Number : return ( unsigned int ) gen_neon_zip ( @@v34@@ , @@v36@@ , v40 , @@v140@@ ) != Number ; case Number : case Number : if ( ( @@v36@@ & Number ) != Number ) return Number L ; v110 = Number ; for ( i1 = Number ; i1 <= Number ; ++ i1 ) { neon_load_reg64 ( cpu_V0 , i1 + @@v36@@ ) ; v90 = tcg_temp_new_i32 ( ) ; gen_neon_narrow_op ( v151 == Number , @@v140@@ , v40 , v90 , cpu_V0 ) ; if ( i1 ) { neon_store_reg ( @@v34@@ , Number , v110 ) ; neon_store_reg ( @@v34@@ , Number , v90 ) ; } else { v110 = v90 ; } } return Number L ; case Number : if ( @@v140@@ || ( @@v34@@ & Number ) != Number ) return Number L ; v91 = neon_load_reg ( @@v36@@ , Number ) ; v111 = neon_load_reg ( @@v36@@ , Number ) ; for ( i2 = Number ; i2 <= Number ; ++ i2 ) { if ( i2 == Number ) v91 = v111 ; gen_neon_widen ( cpu_V0 , v91 , v40 , Number ) ; tcg_gen_shli_i64 ( cpu_V0 , cpu_V0 , Number << v40 ) ; neon_store_reg64 ( cpu_V0 , i2 + @@v34@@ ) ; } return Number L ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) || @@v140@@ || ( @@v36@@ & Number ) != Number ) return Number L ; v92 = tcg_temp_new_i32 ( ) ; v112 = tcg_temp_new_i32 ( ) ; v21 = neon_reg_offset ( @@v36@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v21 ) ; gen_helper_neon_fcvt_f32_to_f16 ( v92 , cpu_F0s , cpu_env ) ; v22 = neon_reg_offset ( @@v36@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v22 ) ; gen_helper_neon_fcvt_f32_to_f16 ( v112 , cpu_F0s , cpu_env ) ; tcg_gen_shli_i32 ( v112 , v112 , Number ) ; tcg_gen_or_i32 ( v112 , v112 , v92 ) ; v23 = neon_reg_offset ( @@v36@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v23 ) ; gen_helper_neon_fcvt_f32_to_f16 ( v92 , cpu_F0s , cpu_env ) ; v24 = neon_reg_offset ( @@v36@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v24 ) ; neon_store_reg ( @@v34@@ , Number , v112 ) ; v113 = tcg_temp_new_i32 ( ) ; gen_helper_neon_fcvt_f32_to_f16 ( v113 , cpu_F0s , cpu_env ) ; tcg_gen_shli_i32 ( v113 , v113 , Number ) ; tcg_gen_or_i32 ( v113 , v113 , v92 ) ; neon_store_reg ( @@v34@@ , Number , v113 ) ; tcg_temp_free_i32 ( v92 ) ; return Number L ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) || @@v140@@ || ( @@v34@@ & Number ) != Number ) return Number L ; v134 = tcg_temp_new_i32 ( ) ; v93 = neon_load_reg ( @@v36@@ , Number ) ; v114 = neon_load_reg ( @@v36@@ , Number ) ; tcg_gen_ext16u_i32 ( v134 , v93 ) ; gen_helper_neon_fcvt_f16_to_f32 ( cpu_F0s , v134 , cpu_env ) ; v25 = neon_reg_offset ( @@v34@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v25 ) ; tcg_gen_shri_i32 ( v134 , v93 , Number ) ; gen_helper_neon_fcvt_f16_to_f32 ( cpu_F0s , v134 , cpu_env ) ; v26 = neon_reg_offset ( @@v34@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v26 ) ; tcg_temp_free_i32 ( v93 ) ; tcg_gen_ext16u_i32 ( v134 , v114 ) ; gen_helper_neon_fcvt_f16_to_f32 ( cpu_F0s , v134 , cpu_env ) ; v27 = neon_reg_offset ( @@v34@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v27 ) ; tcg_gen_shri_i32 ( v134 , v114 , Number ) ; gen_helper_neon_fcvt_f16_to_f32 ( cpu_F0s , v134 , cpu_env ) ; v28 = neon_reg_offset ( @@v34@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v28 ) ; tcg_temp_free_i32 ( v114 ) ; tcg_temp_free_i32 ( v134 ) ; break ; default : LABEL_841 : for ( i3 = Number ; ; ++ i3 ) { v31 = @@v140@@ ? Number : Number ; if ( v31 <= i3 ) break ; if ( neon_2rm_is_float_op ( v151 ) ) { v29 = neon_reg_offset ( @@v36@@ , i3 ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v29 ) ; v94 = Number ; } else { v94 = neon_load_reg ( @@v36@@ , i3 ) ; } switch ( v151 ) { case Number : if ( v40 ) { if ( v40 != Number ) abort ( ) ; gen_swap_half ( v94 ) ; } else { tcg_gen_bswap32_i32 ( v94 , v94 ) ; } break ; case Number : gen_rev16 ( v94 ) ; break ; case Number : if ( v40 == Number ) { gen_helper_neon_cls_s32 ( v94 , v94 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_cls_s16 ( v94 , v94 ) ; else gen_helper_neon_cls_s8 ( v94 , v94 ) ; } break ; case Number : if ( v40 == Number ) { gen_helper_clz ( v94 , v94 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_clz_u16 ( v94 , v94 ) ; else gen_helper_neon_clz_u8 ( v94 , v94 ) ; } break ; case Number : gen_helper_neon_cnt_u8 ( v94 , v94 ) ; break ; case Number : goto LABEL_898 ; case Number : if ( v40 == Number ) { gen_helper_neon_qabs_s32 ( v94 , cpu_env , v94 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_qabs_s16 ( v94 , cpu_env , v94 ) ; else gen_helper_neon_qabs_s8 ( v94 , cpu_env , v94 ) ; } break ; case Number : if ( v40 == Number ) { gen_helper_neon_qneg_s32 ( v94 , cpu_env , v94 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_qneg_s16 ( v94 , cpu_env , v94 ) ; else gen_helper_neon_qneg_s8 ( v94 , cpu_env , v94 ) ; } break ; case Number : case Number : v115 = tcg_const_i32 ( Number L ) ; if ( v40 == Number ) { gen_helper_neon_cgt_s32 ( v94 , v94 , v115 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_cgt_s16 ( v94 , v94 , v115 ) ; else gen_helper_neon_cgt_s8 ( v94 , v94 , v115 ) ; } tcg_temp_free_i32 ( v115 ) ; if ( v151 == Number ) goto LABEL_898 ; break ; case Number : case Number : v116 = tcg_const_i32 ( Number L ) ; if ( v40 == Number ) { gen_helper_neon_cge_s32 ( v94 , v94 , v116 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_cge_s16 ( v94 , v94 , v116 ) ; else gen_helper_neon_cge_s8 ( v94 , v94 , v116 ) ; } tcg_temp_free_i32 ( v116 ) ; if ( v151 == Number ) LABEL_898 : tcg_gen_not_i32 ( v94 , v94 ) ; break ; case Number : v117 = tcg_const_i32 ( Number L ) ; if ( v40 == Number ) { gen_helper_neon_ceq_u32 ( v94 , v94 , v117 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_ceq_u16 ( v94 , v94 , v117 ) ; else gen_helper_neon_ceq_u8 ( v94 , v94 , v117 ) ; } tcg_temp_free_i32 ( v117 ) ; break ; case Number : if ( v40 == Number ) { gen_helper_abs ( v94 , v94 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v40 ) gen_helper_neon_abs_s16 ( v94 , v94 ) ; else gen_helper_neon_abs_s8 ( v94 , v94 ) ; } break ; case Number : v118 = tcg_const_i32 ( Number L ) ; gen_neon_rsb ( v40 , v94 , v118 ) ; tcg_temp_free_i32 ( v118 ) ; break ; case Number : @@v156@@ = get_fpstatus_ptr ( Number ) ; v119 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cgt_f32 ( v94 , v94 , v119 , @@v156@@ ) ; tcg_temp_free_i32 ( v119 ) ; tcg_temp_free_i64 ( @@v156@@ ) ; break ; case Number : @@v155@@ = get_fpstatus_ptr ( Number ) ; v120 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cge_f32 ( v94 , v94 , v120 , @@v155@@ ) ; tcg_temp_free_i32 ( v120 ) ; tcg_temp_free_i64 ( @@v155@@ ) ; break ; case Number : @@v154@@ = get_fpstatus_ptr ( Number ) ; v121 = tcg_const_i32 ( Number L ) ; gen_helper_neon_ceq_f32 ( v94 , v94 , v121 , @@v154@@ ) ; tcg_temp_free_i32 ( v121 ) ; tcg_temp_free_i64 ( @@v154@@ ) ; break ; case Number : @@v153@@ = get_fpstatus_ptr ( Number ) ; v122 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cge_f32 ( v94 , v122 , v94 , @@v153@@ ) ; tcg_temp_free_i32 ( v122 ) ; tcg_temp_free_i64 ( @@v153@@ ) ; break ; case Number : @@v152@@ = get_fpstatus_ptr ( Number ) ; v123 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cgt_f32 ( v94 , v123 , v94 , @@v152@@ ) ; tcg_temp_free_i32 ( v123 ) ; tcg_temp_free_i64 ( @@v152@@ ) ; break ; case Number : gen_vfp_abs ( Number ) ; break ; case Number : gen_vfp_neg ( Number ) ; break ; case Number : v124 = neon_load_reg ( @@v34@@ , i3 ) ; neon_store_reg ( @@v36@@ , i3 , v124 ) ; break ; case Number : v125 = neon_load_reg ( @@v34@@ , i3 ) ; if ( v40 ) { if ( v40 != Number ) abort ( ) ; gen_neon_trn_u16 ( v94 , v125 ) ; } else { gen_neon_trn_u8 ( v94 , v125 ) ; } neon_store_reg ( @@v36@@ , i3 , v125 ) ; break ; case Number : gen_helper_recpe_u32 ( v94 , v94 , cpu_env ) ; break ; case Number : gen_helper_rsqrte_u32 ( v94 , v94 , cpu_env ) ; break ; case Number : gen_helper_recpe_f32 ( cpu_F0s , cpu_F0s , cpu_env ) ; break ; case Number : gen_helper_rsqrte_f32 ( cpu_F0s , cpu_F0s , cpu_env ) ; break ; case Number : gen_vfp_sito ( Number , Number ) ; break ; case Number : gen_vfp_uito ( Number , Number ) ; break ; case Number : gen_vfp_tosiz ( Number , Number ) ; break ; case Number : gen_vfp_touiz ( Number , Number ) ; break ; default : abort ( ) ; } if ( neon_2rm_is_float_op ( v151 ) ) { v30 = neon_reg_offset ( @@v34@@ , i3 ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v30 ) ; } else { neon_store_reg ( @@v34@@ , i3 , v94 ) ; } } return Number L ; } } } else { v68 = ( @@a3@@ >> Number ) & Number ; if ( v68 > Number && ! @@v140@@ ) return Number L ; if ( @@v140@@ && ( ( ( unsigned __int8 ) @@v36@@ | ( unsigned __int8 ) ( @@v35@@ | @@v34@@ ) ) & Number ) != Number ) return Number L ; if ( v68 ) { if ( v68 == Number ) { neon_load_reg64 ( cpu_V0 , @@v35@@ + Number ) ; if ( @@v140@@ ) neon_load_reg64 ( cpu_V1 , @@v36@@ ) ; } else if ( @@v140@@ ) { v158 = tcg_temp_new_i64 ( ) ; if ( v68 > Number ) { neon_load_reg64 ( cpu_V0 , @@v35@@ + Number ) ; neon_load_reg64 ( v158 , @@v36@@ ) ; } else { neon_load_reg64 ( cpu_V0 , @@v35@@ ) ; neon_load_reg64 ( v158 , @@v35@@ + Number ) ; } tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number * ( BYTE1 ( @@a3@@ ) & Number ) ) ; tcg_gen_shli_i64 ( cpu_V1 , v158 , Number * ( Number - ( BYTE1 ( @@a3@@ ) & Number ) ) ) ; tcg_gen_or_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; if ( v68 > Number ) { neon_load_reg64 ( cpu_V1 , @@v36@@ + Number ) ; v68 -= Number ; } else { neon_load_reg64 ( cpu_V1 , @@v36@@ ) ; } tcg_gen_shli_i64 ( cpu_V1 , cpu_V1 , Number * ( Number - v68 ) ) ; tcg_gen_shri_i64 ( v158 , v158 , Number * v68 ) ; tcg_gen_or_i64 ( cpu_V1 , cpu_V1 , v158 ) ; tcg_temp_free_i64 ( v158 ) ; } else { neon_load_reg64 ( cpu_V0 , @@v35@@ ) ; tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number * v68 ) ; neon_load_reg64 ( cpu_V1 , @@v36@@ ) ; tcg_gen_shli_i64 ( cpu_V1 , cpu_V1 , Number * ( Number - v68 ) ) ; tcg_gen_or_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } } else { neon_load_reg64 ( cpu_V0 , @@v35@@ ) ; if ( @@v140@@ ) neon_load_reg64 ( cpu_V1 , @@v35@@ + Number ) ; } neon_store_reg64 ( cpu_V0 , @@v34@@ ) ; if ( @@v140@@ ) neon_store_reg64 ( cpu_V1 , @@v34@@ + Number ) ; } return Number L ; } v150 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( ! v37 ) return Number L ; switch ( v150 ) { case Number : case Number : case Number : case Number : case Number : goto LABEL_680 ; case Number : case Number : case Number : if ( v37 == Number ) return Number L ; LABEL_680 : if ( @@v141@@ && ( ( ( unsigned __int8 ) @@v35@@ | ( unsigned __int8 ) @@v34@@ ) & Number ) != Number ) return Number L ; v84 = neon_get_scalar ( v37 , @@v36@@ ) ; neon_store_scratch ( Number , v84 ) ; for ( i4 = Number ; ; ++ i4 ) { v17 = @@v141@@ ? Number : Number ; if ( v17 <= i4 ) break ; v85 = neon_load_scratch ( Number ) ; v105 = neon_load_reg ( @@v35@@ , i4 ) ; if ( v150 == Number ) { if ( v37 == Number ) gen_helper_neon_qdmulh_s16 ( v85 , cpu_env , v85 , v105 ) ; else gen_helper_neon_qdmulh_s32 ( v85 , cpu_env , v85 , v105 ) ; } else if ( v150 == Number ) { if ( v37 == Number ) gen_helper_neon_qrdmulh_s16 ( v85 , cpu_env , v85 , v105 ) ; else gen_helper_neon_qrdmulh_s32 ( v85 , cpu_env , v85 , v105 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { @@v159@@ = get_fpstatus_ptr ( Number ) ; gen_helper_vfp_muls ( v85 , v85 , v105 , @@v159@@ ) ; tcg_temp_free_i64 ( @@v159@@ ) ; } else if ( v37 == Number ) { tcg_gen_mul_i32 ( v85 , v85 , v105 ) ; } else { gen_helper_neon_mul_u16 ( v85 , v85 , v105 ) ; } tcg_temp_free_i32 ( v105 ) ; if ( ( ( @@a3@@ >> Number ) & Number ) <= Number ) { v106 = neon_load_reg ( @@v34@@ , i4 ) ; if ( v150 == Number ) { @@v160@@ = get_fpstatus_ptr ( Number ) ; gen_helper_vfp_subs ( v85 , v106 , v85 , @@v160@@ ) ; tcg_temp_free_i64 ( @@v160@@ ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) goto LABEL_708 ; if ( v150 == Number ) { gen_neon_rsb ( v37 , v85 , v106 ) ; } else if ( v150 ) { if ( v150 != Number ) LABEL_708 : abort ( ) ; @@v161@@ = get_fpstatus_ptr ( Number ) ; gen_helper_vfp_adds ( v85 , v85 , v106 , @@v161@@ ) ; tcg_temp_free_i64 ( @@v161@@ ) ; } else { gen_neon_add ( v37 , v85 , v106 ) ; } } tcg_temp_free_i32 ( v106 ) ; } neon_store_reg ( @@v34@@ , i4 , v85 ) ; } break ; case Number : case Number : case Number : goto LABEL_718 ; case Number : case Number : case Number : if ( @@v141@@ == Number ) return Number L ; LABEL_718 : if ( ( @@v34@@ & Number ) != Number ) return Number L ; v107 = neon_get_scalar ( v37 , @@v36@@ ) ; v143 = tcg_temp_new_i32 ( ) ; tcg_gen_mov_i32 ( v143 , v107 ) ; v133 = neon_load_reg ( @@v35@@ , Number ) ; for ( i5 = Number ; i5 <= Number ; ++ i5 ) { if ( i5 ) { v107 = v143 ; gen_neon_mull ( cpu_V0 , v133 , v143 , v37 , @@v141@@ ) ; } else { v86 = neon_load_reg ( @@v35@@ , Number ) ; gen_neon_mull ( cpu_V0 , v86 , v107 , v37 , @@v141@@ ) ; } if ( v150 != Number ) neon_load_reg64 ( cpu_V1 , i5 + @@v34@@ ) ; switch ( v150 ) { case Number : goto LABEL_728 ; case Number : case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v37 ) ; if ( v150 == Number ) gen_neon_negl ( cpu_V0 , v37 ) ; gen_neon_addl_saturate ( cpu_V0 , cpu_V1 , v37 ) ; break ; case Number : gen_neon_negl ( cpu_V0 , v37 ) ; LABEL_728 : gen_neon_addl ( v37 ) ; break ; case Number : break ; case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v37 ) ; break ; default : abort ( ) ; } neon_store_reg64 ( cpu_V0 , i5 + @@v34@@ ) ; } return Number L ; default : return Number L ; } return Number L ; } @@v162@@ = * ( ( _DWORD * ) & neon_3reg_wide_23584 + Number * v150 ) ; @@v163@@ = * ( ( _DWORD * ) & unk_329E4 + Number * v150 ) ; @@v164@@ = * ( ( _DWORD * ) & unk_329E8 + Number * v150 ) ; @@v165@@ = dword_329EC [ Number * v150 ] ; if ( ( @@v165@@ & Number ) != Number && v37 || ( @@v165@@ & Number ) != Number && ! v37 || ( @@v165@@ & Number ) != Number && @@v141@@ ) return Number L ; if ( @@v163@@ && ( @@v35@@ & Number ) != Number || @@v164@@ && ( @@v36@@ & Number ) != Number || ! @@v164@@ && ( @@v34@@ & Number ) != Number ) return Number L ; if ( @@v34@@ != @@v36@@ || @@v164@@ ) { if ( @@v34@@ == @@v35@@ && ! @@v163@@ ) { v81 = neon_load_reg ( @@v35@@ , Number ) ; neon_store_scratch ( Number , v81 ) ; } } else { v80 = neon_load_reg ( @@v36@@ , Number ) ; neon_store_scratch ( Number , v80 ) ; } v132 = Number ; for ( i6 = Number ; ; ++ i6 ) { if ( i6 > Number ) return Number L ; if ( @@v163@@ ) { neon_load_reg64 ( cpu_V0 , i6 + @@v35@@ ) ; v82 = Number ; } else { if ( i6 == Number && @@v34@@ == @@v35@@ ) v82 = neon_load_scratch ( Number ) ; else v82 = neon_load_reg ( @@v35@@ , i6 ) ; if ( @@v162@@ ) gen_neon_widen ( cpu_V0 , v82 , v37 , @@v141@@ ) ; } if ( @@v164@@ ) { neon_load_reg64 ( cpu_V1 , i6 + @@v36@@ ) ; v104 = Number ; } else { if ( i6 == Number && @@v34@@ == @@v36@@ ) v104 = neon_load_scratch ( Number ) ; else v104 = neon_load_reg ( @@v36@@ , i6 ) ; if ( @@v162@@ ) gen_neon_widen ( cpu_V1 , v104 , v37 , @@v141@@ ) ; } switch ( v150 ) { case Number : case Number : case Number : gen_neon_addl ( v37 ) ; break ; case Number : case Number : case Number : gen_neon_subl ( v37 ) ; break ; case Number : case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_abdl_s16 ( cpu_V0 , v82 , v104 ) ; break ; case Number : gen_helper_neon_abdl_u16 ( cpu_V0 , v82 , v104 ) ; break ; case Number : gen_helper_neon_abdl_s32 ( cpu_V0 , v82 , v104 ) ; break ; case Number : gen_helper_neon_abdl_u32 ( cpu_V0 , v82 , v104 ) ; break ; case Number : gen_helper_neon_abdl_s64 ( cpu_V0 , v82 , v104 ) ; break ; case Number : gen_helper_neon_abdl_u64 ( cpu_V0 , v82 , v104 ) ; break ; default : abort ( ) ; } tcg_temp_free_i32 ( v104 ) ; tcg_temp_free_i32 ( v82 ) ; break ; case Number : case Number : case Number : case Number : case Number : case Number : gen_neon_mull ( cpu_V0 , v82 , v104 , v37 , @@v141@@ ) ; break ; case Number : gen_helper_neon_mull_p8 ( cpu_V0 , v82 , v104 ) ; tcg_temp_free_i32 ( v104 ) ; tcg_temp_free_i32 ( v82 ) ; break ; default : abort ( ) ; } if ( v150 == Number ) { gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v37 ) ; neon_store_reg64 ( cpu_V0 , i6 + @@v34@@ ) ; continue ; } if ( v150 == Number || ( ( @@a3@@ >> Number ) & Number ) > Number && ( ( @@a3@@ >> Number ) & Number ) <= Number ) break ; if ( v150 != Number && v150 != Number ) goto LABEL_671 ; v83 = tcg_temp_new_i32 ( ) ; if ( @@v141@@ ) { if ( v37 == Number ) { tcg_gen_addi_i64 ( cpu_V0 , cpu_V0 , Number ) ; tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number L ) ; tcg_gen_trunc_i64_i32 ( v83 , cpu_V0 ) ; } else if ( v37 ) { gen_helper_neon_narrow_round_high_u16 ( v83 , cpu_V0 ) ; } else { gen_helper_neon_narrow_round_high_u8 ( v83 , cpu_V0 ) ; } } else if ( v37 == Number ) { tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number L ) ; tcg_gen_trunc_i64_i32 ( v83 , cpu_V0 ) ; } else if ( v37 ) { gen_helper_neon_narrow_high_u16 ( v83 , cpu_V0 ) ; } else { gen_helper_neon_narrow_high_u8 ( v83 , cpu_V0 ) ; } if ( i6 ) { neon_store_reg ( @@v34@@ , Number , v132 ) ; neon_store_reg ( @@v34@@ , Number , v83 ) ; } else { v132 = v83 ; } LABEL_672 : ; } neon_load_reg64 ( cpu_V1 , i6 + @@v34@@ ) ; switch ( v150 ) { case Number : case Number : goto LABEL_650 ; case Number : case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v37 ) ; if ( v150 == Number ) gen_neon_negl ( cpu_V0 , v37 ) ; gen_neon_addl_saturate ( cpu_V0 , cpu_V1 , v37 ) ; break ; case Number : gen_neon_negl ( cpu_V0 , v37 ) ; LABEL_650 : gen_neon_addl ( v37 ) ; break ; default : abort ( ) ; } LABEL_671 : neon_store_reg64 ( cpu_V0 , i6 + @@v34@@ ) ; goto LABEL_672 ; } v147 = ( @@a3@@ >> Number ) & Number | ( @@a3@@ >> Number ) & Number ; if ( ( ( ( int ) neon_3r_sizes [ v147 ] >> v37 ) & Number ) == Number ) return Number L ; if ( @@v140@@ && ( ( ( unsigned __int8 ) @@v36@@ | ( unsigned __int8 ) ( @@v35@@ | @@v34@@ ) ) & Number ) != Number ) return Number L ; if ( v37 != Number || v147 == Number ) { @@v63@@ = Number ; switch ( v147 ) { case Number : case Number : case Number : case Number : @@v167@@ = @@v35@@ ; @@v35@@ = @@v36@@ ; @@v36@@ = @@v167@@ ; goto LABEL_80 ; case Number : if ( ! @@v141@@ || ! v37 ) goto LABEL_80 ; return Number L ; case Number : case Number : goto LABEL_60 ; case Number : if ( @@v141@@ ) return Number L ; LABEL_60 : @@v63@@ = Number ; LABEL_80 : if ( @@v63@@ && @@v140@@ ) return Number L ; v45 = Number ; while ( Number ) { v7 = @@v140@@ ? Number : Number ; if ( v7 <= v45 ) break ; if ( @@v63@@ ) { if ( v45 > Number ) { v72 = neon_load_reg ( @@v36@@ , Number ) ; v98 = neon_load_reg ( @@v36@@ , Number ) ; } else { v72 = neon_load_reg ( @@v35@@ , Number ) ; v98 = neon_load_reg ( @@v35@@ , Number ) ; } } else { v72 = neon_load_reg ( @@v35@@ , v45 ) ; v98 = neon_load_reg ( @@v36@@ , v45 ) ; } switch ( v147 ) { case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_hadd_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hadd_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hadd_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hadd_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hadd_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hadd_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_qadd_s8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qadd_u8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qadd_s16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qadd_u16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qadd_s32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qadd_u32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_rhadd_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rhadd_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rhadd_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rhadd_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rhadd_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rhadd_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( v37 | ( Number * @@v141@@ ) ) { case Number : tcg_gen_and_i32 ( v72 , v72 , v98 ) ; break ; case Number : tcg_gen_andc_i32 ( v72 , v72 , v98 ) ; break ; case Number : tcg_gen_or_i32 ( v72 , v72 , v98 ) ; break ; case Number : tcg_gen_orc_i32 ( v72 , v72 , v98 ) ; break ; case Number : tcg_gen_xor_i32 ( v72 , v72 , v98 ) ; break ; case Number : v128 = neon_load_reg ( @@v34@@ , v45 ) ; gen_neon_bsl ( v72 , v72 , v98 , v128 ) ; tcg_temp_free_i32 ( v128 ) ; break ; case Number : v129 = neon_load_reg ( @@v34@@ , v45 ) ; gen_neon_bsl ( v72 , v72 , v129 , v98 ) ; tcg_temp_free_i32 ( v129 ) ; break ; case Number : v130 = neon_load_reg ( @@v34@@ , v45 ) ; gen_neon_bsl ( v72 , v130 , v72 , v98 ) ; tcg_temp_free_i32 ( v130 ) ; break ; default : goto LABEL_331 ; } goto LABEL_331 ; case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_hsub_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hsub_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hsub_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hsub_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hsub_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_hsub_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_qsub_s8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qsub_u8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qsub_s16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qsub_u16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qsub_s32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qsub_u32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_cgt_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cgt_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cgt_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cgt_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cgt_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cgt_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_cge_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cge_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cge_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cge_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cge_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_cge_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_shl_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_shl_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_shl_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_shl_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_shl_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_shl_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_qshl_s8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qshl_u8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qshl_s16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qshl_u16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qshl_s32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qshl_u32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_rshl_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rshl_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rshl_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rshl_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rshl_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_rshl_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_qrshl_s8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qrshl_u8 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qrshl_s16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qrshl_u16 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qrshl_s32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_qrshl_u32 ( v72 , cpu_env , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_max_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_max_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_max_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_max_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : goto LABEL_192 ; case Number : goto LABEL_193 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_min_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_min_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_min_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_min_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : goto LABEL_200 ; case Number : goto LABEL_201 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_abd_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_abd_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_abd_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_abd_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_abd_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_abd_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_abd_s8 ( v72 , v72 , v98 ) ; goto LABEL_219 ; case Number : gen_helper_neon_abd_u8 ( v72 , v72 , v98 ) ; goto LABEL_219 ; case Number : gen_helper_neon_abd_s16 ( v72 , v72 , v98 ) ; goto LABEL_219 ; case Number : gen_helper_neon_abd_u16 ( v72 , v72 , v98 ) ; goto LABEL_219 ; case Number : gen_helper_neon_abd_s32 ( v72 , v72 , v98 ) ; goto LABEL_219 ; case Number : gen_helper_neon_abd_u32 ( v72 , v72 , v98 ) ; LABEL_219 : tcg_temp_free_i32 ( v98 ) ; v98 = neon_load_reg ( @@v34@@ , v45 ) ; gen_neon_add ( v37 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : if ( ! @@v141@@ ) goto LABEL_221 ; if ( v37 == Number ) { tcg_gen_sub_i32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_sub_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_sub_u8 ( v72 , v72 , v98 ) ; } goto LABEL_331 ; case Number : if ( @@v141@@ ) { if ( v37 == Number ) { gen_helper_neon_ceq_u32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_ceq_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_ceq_u8 ( v72 , v72 , v98 ) ; } } else if ( v37 == Number ) { gen_helper_neon_tst_u32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_tst_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_tst_u8 ( v72 , v72 , v98 ) ; } goto LABEL_331 ; case Number : if ( v37 == Number ) { tcg_gen_mul_i32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_mul_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_mul_u8 ( v72 , v72 , v98 ) ; } tcg_temp_free_i32 ( v98 ) ; v98 = neon_load_reg ( @@v34@@ , v45 ) ; if ( @@v141@@ ) gen_neon_rsb ( v37 , v72 , v98 ) ; else LABEL_221 : gen_neon_add ( v37 , v72 , v98 ) ; goto LABEL_331 ; case Number : if ( @@v141@@ ) { gen_helper_neon_mul_p8 ( v72 , v72 , v98 ) ; } else if ( v37 == Number ) { tcg_gen_mul_i32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_mul_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_mul_u8 ( v72 , v72 , v98 ) ; } goto LABEL_331 ; case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_pmax_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmax_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmax_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmax_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : LABEL_192 : gen_helper_neon_max_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : LABEL_193 : gen_helper_neon_max_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : switch ( @@v141@@ | ( Number * v37 ) ) { case Number : gen_helper_neon_pmin_s8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmin_u8 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmin_s16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : gen_helper_neon_pmin_u16 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : LABEL_200 : gen_helper_neon_min_s32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; case Number : LABEL_201 : gen_helper_neon_min_u32 ( v72 , v72 , v98 ) ; goto LABEL_331 ; default : return Number L ; } case Number : if ( @@v141@@ ) { if ( v37 == Number ) { gen_helper_neon_qrdmulh_s16 ( v72 , cpu_env , v72 , v98 ) ; } else { if ( v37 != Number ) abort ( ) ; gen_helper_neon_qrdmulh_s32 ( v72 , cpu_env , v72 , v98 ) ; } } else if ( v37 == Number ) { gen_helper_neon_qdmulh_s16 ( v72 , cpu_env , v72 , v98 ) ; } else { if ( v37 != Number ) abort ( ) ; gen_helper_neon_qdmulh_s32 ( v72 , cpu_env , v72 , v98 ) ; } goto LABEL_331 ; case Number : if ( v37 == Number ) { tcg_gen_add_i32 ( v72 , v72 , v98 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) abort ( ) ; if ( v37 ) gen_helper_neon_padd_u16 ( v72 , v72 , v98 ) ; else gen_helper_neon_padd_u8 ( v72 , v72 , v98 ) ; } goto LABEL_331 ; case Number : @@v173@@ = get_fpstatus_ptr ( Number ) ; @@v174@@ = neon_load_reg ( @@v34@@ , v45 ) ; if ( v37 ) gen_helper_vfp_negs ( v72 , v72 ) ; gen_helper_vfp_muladds ( v72 , v72 , v98 , @@v174@@ , @@v173@@ ) ; tcg_temp_free_i32 ( @@v174@@ ) ; tcg_temp_free_i64 ( @@v173@@ ) ; goto LABEL_331 ; case Number : @@v172@@ = get_fpstatus_ptr ( Number ) ; v6 = v37 | ( Number * @@v141@@ ) ; if ( v6 == Number ) { gen_helper_neon_abd_f32 ( v72 , v72 , v98 , @@v172@@ ) ; } else { if ( v6 > Number ) goto LABEL_303 ; if ( v6 == Number ) goto LABEL_300 ; if ( v6 > Number ) goto LABEL_303 ; if ( ! v6 ) { LABEL_300 : gen_helper_vfp_adds ( v72 , v72 , v98 , @@v172@@ ) ; } else { if ( v6 != Number ) LABEL_303 : abort ( ) ; gen_helper_vfp_subs ( v72 , v72 , v98 , @@v172@@ ) ; } } tcg_temp_free_i64 ( @@v172@@ ) ; LABEL_331 : tcg_temp_free_i32 ( v98 ) ; if ( @@v63@@ && @@v34@@ == @@v36@@ ) neon_store_scratch ( v45 , v72 ) ; else neon_store_reg ( @@v34@@ , v45 , v72 ) ; ++ v45 ; break ; case Number : @@v171@@ = get_fpstatus_ptr ( Number ) ; gen_helper_vfp_muls ( v72 , v72 , v98 , @@v171@@ ) ; if ( ! @@v141@@ ) { tcg_temp_free_i32 ( v98 ) ; v98 = neon_load_reg ( @@v34@@ , v45 ) ; if ( v37 ) gen_helper_vfp_subs ( v72 , v98 , v72 , @@v171@@ ) ; else gen_helper_vfp_adds ( v72 , v72 , v98 , @@v171@@ ) ; } tcg_temp_free_i64 ( @@v171@@ ) ; goto LABEL_331 ; case Number : @@v170@@ = get_fpstatus_ptr ( Number ) ; if ( @@v141@@ ) { if ( v37 ) gen_helper_neon_cgt_f32 ( v72 , v72 , v98 , @@v170@@ ) ; else gen_helper_neon_cge_f32 ( v72 , v72 , v98 , @@v170@@ ) ; } else { gen_helper_neon_ceq_f32 ( v72 , v72 , v98 , @@v170@@ ) ; } tcg_temp_free_i64 ( @@v170@@ ) ; goto LABEL_331 ; case Number : @@v169@@ = get_fpstatus_ptr ( Number ) ; if ( v37 ) gen_helper_neon_acgt_f32 ( v72 , v72 , v98 , @@v169@@ ) ; else gen_helper_neon_acge_f32 ( v72 , v72 , v98 , @@v169@@ ) ; tcg_temp_free_i64 ( @@v169@@ ) ; goto LABEL_331 ; case Number : @@v168@@ = get_fpstatus_ptr ( Number ) ; if ( v37 ) gen_helper_neon_min_f32 ( v72 , v72 , v98 , @@v168@@ ) ; else gen_helper_neon_max_f32 ( v72 , v72 , v98 , @@v168@@ ) ; tcg_temp_free_i64 ( @@v168@@ ) ; goto LABEL_331 ; case Number : if ( v37 ) gen_helper_rsqrts_f32 ( v72 , v72 , v98 , cpu_env ) ; else gen_helper_recps_f32 ( v72 , v72 , v98 , cpu_env ) ; goto LABEL_331 ; default : abort ( ) ; } } if ( @@v63@@ && @@v34@@ == @@v36@@ ) { for ( i7 = Number ; ; ++ i7 ) { v8 = @@v140@@ ? Number : Number ; if ( v8 <= i7 ) break ; v73 = neon_load_scratch ( i7 ) ; neon_store_reg ( @@v34@@ , i7 , v73 ) ; } } break ; case Number : if ( arm_feature ( @@a1@@ , Number ) && ! @@v141@@ ) goto LABEL_80 ; return Number L ; case Number : v5 = @@v141@@ && ( ( @@a3@@ >> Number ) & Number ) <= Number ; @@v63@@ = v5 ; goto LABEL_80 ; case Number : if ( @@v141@@ || ! v37 ) goto LABEL_80 ; return Number L ; case Number : if ( @@v141@@ ) goto LABEL_80 ; return Number L ; case Number : @@v63@@ = @@v141@@ ; goto LABEL_80 ; case Number : if ( ! @@v141@@ ) goto LABEL_80 ; return Number L ; default : goto LABEL_80 ; } return Number L ; } for ( i8 = Number ; ; ++ i8 ) { v4 = @@v140@@ ? Number : Number ; if ( v4 <= i8 ) break ; neon_load_reg64 ( cpu_V0 , i8 + @@v35@@ ) ; neon_load_reg64 ( cpu_V1 , i8 + @@v36@@ ) ; switch ( v147 ) { case Number : if ( @@v141@@ ) gen_helper_neon_qadd_u64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_qadd_s64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_qsub_u64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_qsub_s64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_shl_u64 ( cpu_V0 , cpu_V1 , cpu_V0 ) ; else gen_helper_neon_shl_s64 ( cpu_V0 , cpu_V1 , cpu_V0 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_qshl_u64 ( cpu_V0 , cpu_env , cpu_V1 , cpu_V0 ) ; else gen_helper_neon_qshl_s64 ( cpu_V0 , cpu_env , cpu_V1 , cpu_V0 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_rshl_u64 ( cpu_V0 , cpu_V1 , cpu_V0 ) ; else gen_helper_neon_rshl_s64 ( cpu_V0 , cpu_V1 , cpu_V0 ) ; break ; case Number : if ( @@v141@@ ) gen_helper_neon_qrshl_u64 ( cpu_V0 , cpu_env , cpu_V1 , cpu_V0 ) ; else gen_helper_neon_qrshl_s64 ( cpu_V0 , cpu_env , cpu_V1 , cpu_V0 ) ; break ; case Number : if ( @@v141@@ ) tcg_gen_sub_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; else tcg_gen_add_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; default : abort ( ) ; } neon_store_reg64 ( cpu_V0 , i8 + @@v34@@ ) ; } return Number L ; }", "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": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v156", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s100"}, {"n": "v155", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s104"}, {"n": "v154", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s108"}, {"n": "v153", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s112"}, {"n": "v152", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s116"}, {"n": "v141", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v140", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "nn", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v138", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s152"}, {"n": "v136", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v176", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s16"}, {"n": "v63", "t": {"T": 1, "n": "int", "s": 4}, "location": "s180"}, {"n": "v62", "t": {"T": 1, "n": "int", "s": 4}, "location": "s184"}, {"n": "v36", "t": {"T": 1, "n": "int", "s": 4}, "location": "s200"}, {"n": "v35", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s204"}, {"n": "v34", "t": {"T": 1, "n": "int", "s": 4}, "location": "s208"}, {"n": "v175", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v174", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v173", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v172", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v171", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v170", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v169", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s48"}, {"n": "v168", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s52"}, {"n": "v167", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v166", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v165", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v164", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v163", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}, {"n": "v162", "t": {"T": 1, "n": "int", "s": 4}, "location": "s80"}, {"n": "v161", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s84"}, {"n": "v160", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s88"}, {"n": "v159", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s92"}]}