{"name": "disas_neon_data_insn", "code": "__int64 __fastcall disas_neon_data_insn ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ ) { __int64 result ; int v4 ; _BOOL4 v5 ; int v6 ; int v7 ; int v8 ; int v9 ; __int64 v10 ; __int64 v11 ; int v12 ; unsigned int v13 ; int v14 ; int v15 ; int v16 ; int v17 ; unsigned int v18 ; int v19 ; int v20 ; int v21 ; int v22 ; int v23 ; __int64 v24 ; __int64 v25 ; __int64 v26 ; __int64 v27 ; __int64 v28 ; __int64 v29 ; __int64 v30 ; __int64 v31 ; __int64 v32 ; __int64 v33 ; int v34 ; int v35 ; int @@v37@@ ; unsigned int @@v38@@ ; int @@v39@@ ; int v40 ; int k ; int v42 ; int v43 ; int v44 ; int v45 ; int i8 ; int v47 ; int i7 ; int l ; int ii ; int m ; int n ; int i ; int v54 ; int v55 ; int i6 ; int jj ; int kk ; int i3 ; int i4 ; int v61 ; int i5 ; int v63 ; int v64 ; int @@v65@@ ; int v66 ; int j ; int ll ; int mm ; int nn ; int i1 ; int i2 ; unsigned int v73 ; unsigned int v74 ; unsigned int v75 ; unsigned int v76 ; int v77 ; int v78 ; 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 ; 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 ; 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 ; 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 ; unsigned int v136 ; unsigned int v137 ; unsigned int v138 ; unsigned int v139 ; unsigned int v140 ; unsigned int v141 ; unsigned int v142 ; unsigned int v143 ; unsigned int v144 ; unsigned int v145 ; unsigned int v146 ; int @@v147@@ ; int @@v148@@ ; int @@v149@@ ; unsigned int @@v150@@ ; unsigned int @@v151@@ ; int v152 ; int v153 ; int v154 ; int v155 ; int v156 ; int @@v157@@ ; int @@v158@@ ; int @@v159@@ ; int @@v160@@ ; int @@v161@@ ; int @@v162@@ ; int @@v163@@ ; if ( ! vfp_enabled ( @@a1@@ ) ) return Number L ; @@v148@@ = ( @@a3@@ & Number ) != Number ; @@v149@@ = HIBYTE ( @@a3@@ ) & Number ; if ( arm_feature ( @@a1@@ , Number ) ) { @@v37@@ = ( ( unsigned __int16 ) @@a3@@ >> Number ) | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v37@@ = ( unsigned __int16 ) @@a3@@ >> Number ; } if ( arm_feature ( @@a1@@ , Number ) ) { @@v38@@ = HIWORD ( @@a3@@ ) & Number | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v38@@ = HIWORD ( @@a3@@ ) & Number ; } if ( arm_feature ( @@a1@@ , Number ) ) { @@v39@@ = @@a3@@ & Number | ( @@a3@@ >> Number ) & Number ; } else { if ( ( @@a3@@ & Number ) != Number ) return Number L ; @@v39@@ = @@a3@@ & Number ; } v40 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) == Number ) { v154 = ( @@a3@@ >> Number ) & Number ; v75 = ( @@a3@@ >> Number ) & Number | ( @@v149@@ << Number ) | @@a3@@ & Number ; switch ( v154 ) { case Number : case Number : v75 <<= Number ; break ; case Number : case Number : v75 <<= Number ; break ; case Number : case Number : v75 <<= Number ; break ; case Number : case Number : v75 |= v75 << Number ; break ; case Number : case Number : v75 = ( v75 << Number ) | ( v75 << Number ) ; break ; case Number : v13 = v75 << Number ; LOBYTE ( v13 ) = Number ; v75 = v13 ; break ; case Number : v75 = ( v75 << Number ) | Number ; break ; case Number : v75 |= ( v75 << Number ) | ( v75 << Number ) | ( v75 << Number ) ; if ( ( @@a3@@ & Number ) != Number ) v75 = ~ v75 ; break ; case Number : if ( ( v75 & Number ) != Number ) v14 = Number ; else v14 = Number ; v75 = ( v75 << Number ) & Number | ( v75 << Number ) & Number | v14 ; break ; default : break ; } if ( ( @@a3@@ & Number ) != Number ) v75 = ~ v75 ; for ( i = Number ; ; ++ i ) { v15 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v15 <= i ) break ; if ( ( v154 & Number ) != Number && ( ( @@a3@@ >> Number ) & Number ) <= Number ) { v86 = neon_load_reg ( @@v37@@ , i ) ; if ( ( @@a3@@ & Number ) != Number ) tcg_gen_andi_i32 ( v86 , v86 , v75 ) ; else tcg_gen_ori_i32 ( v86 , v86 , v75 ) ; } else { v86 = new_tmp ( ) ; if ( v154 == Number && ( @@a3@@ & Number ) != Number ) { @@v147@@ = Number ; for ( j = Number ; j <= Number ; ++ j ) { if ( ( v75 & ( Number << ( Number * ( i & Number ) + j ) ) ) != Number ) @@v147@@ |= Number << ( Number * j ) ; } tcg_gen_movi_i32 ( v86 , @@v147@@ ) ; } else { tcg_gen_movi_i32 ( v86 , v75 ) ; } } neon_store_reg ( @@v37@@ , i , v86 ) ; } return Number L ; } v153 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) != Number ) { k = Number ; } else { for ( k = Number ; ( @@a3@@ & ( Number << ( k + Number ) ) ) == Number ; -- k ) ; } v44 = HIWORD ( @@a3@@ ) & ( ( Number << ( k + Number ) ) - Number ) ; if ( ( ( @@a3@@ >> Number ) & Number ) <= Number ) { if ( ( ( @@a3@@ >> Number ) & Number ) <= Number ) v44 -= Number << ( k + Number ) ; if ( k == Number ) { v63 = @@v148@@ + Number ; } else { if ( ( @@a3@@ & Number ) != Number ) v9 = Number ; else v9 = Number ; v63 = v9 ; } if ( k > Number ) LABEL_358 : abort ( ) ; if ( k >= Number ) { v73 = v44 ; } else if ( k ) { if ( k != Number ) goto LABEL_358 ; v73 = ( ( unsigned __int16 ) v44 << Number ) | ( unsigned __int16 ) v44 ; } else { v73 = ( ( ( ( unsigned __int8 ) v44 << Number ) | ( unsigned __int8 ) v44 ) << Number ) | ( ( unsigned __int8 ) v44 << Number ) | ( unsigned __int8 ) v44 ; } for ( l = Number ; l < v63 ; ++ l ) { if ( k == Number ) { neon_load_reg64 ( cpu_V0 , l + @@v39@@ ) ; tcg_gen_movi_i64 ( cpu_V1 , v73 ) ; switch ( v153 ) { case Number : case Number : if ( @@v149@@ ) goto LABEL_363 ; gen_helper_neon_shl_s64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : case Number : if ( @@v149@@ ) 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 : if ( @@v149@@ ) goto LABEL_363 ; return Number L ; case Number : LABEL_363 : gen_helper_neon_shl_u64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v149@@ ) goto LABEL_373 ; gen_helper_neon_qshl_s64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; case Number : LABEL_373 : gen_helper_neon_qshl_u64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V1 ) ; break ; default : break ; } if ( v153 == Number || v153 == Number ) { neon_load_reg64 ( cpu_V0 , l + @@v37@@ ) ; tcg_gen_add_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } else if ( v153 == Number || v153 == Number && @@v149@@ ) { cpu_abort ( @@a1@@ , String ) ; } neon_store_reg64 ( cpu_V0 , l + @@v37@@ ) ; } else { v82 = neon_load_reg ( @@v39@@ , l ) ; v110 = new_tmp ( ) ; tcg_gen_movi_i32 ( v110 , v73 ) ; switch ( v153 ) { case Number : case Number : switch ( @@v149@@ | ( Number * k ) ) { case Number : goto LABEL_384 ; case Number : goto LABEL_403 ; case Number : goto LABEL_385 ; case Number : goto LABEL_402 ; case Number : goto LABEL_386 ; case Number : goto LABEL_404 ; default : result = Number L ; break ; } return result ; case Number : case Number : switch ( @@v149@@ | ( Number * k ) ) { case Number : gen_helper_neon_rshl_s8 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : gen_helper_neon_rshl_u8 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : gen_helper_neon_rshl_s16 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : gen_helper_neon_rshl_u16 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : gen_helper_neon_rshl_s32 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : gen_helper_neon_rshl_u32 ( v82 , v82 , v110 ) ; goto LABEL_416 ; default : result = Number L ; break ; } return result ; case Number : if ( ! @@v149@@ ) return Number L ; switch ( @@v149@@ | ( Number * k ) ) { case Number : LABEL_384 : gen_helper_neon_shl_s8 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_403 ; case Number : LABEL_385 : gen_helper_neon_shl_s16 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_402 ; case Number : LABEL_386 : gen_helper_neon_shl_s32 ( v82 , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_404 ; default : result = Number L ; break ; } return result ; case Number : if ( k == Number ) { LABEL_404 : gen_helper_neon_shl_u32 ( v82 , v82 , v110 ) ; } else if ( k ) { LABEL_402 : gen_helper_neon_shl_u16 ( v82 , v82 , v110 ) ; } else { LABEL_403 : gen_helper_neon_shl_u8 ( v82 , v82 , v110 ) ; } goto LABEL_416 ; case Number : switch ( @@v149@@ | ( Number * k ) ) { case Number : gen_helper_neon_qshl_s8 ( v82 , cpu_env , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_407 ; case Number : gen_helper_neon_qshl_s16 ( v82 , cpu_env , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_413 ; case Number : gen_helper_neon_qshl_s32 ( v82 , cpu_env , v82 , v110 ) ; goto LABEL_416 ; case Number : goto LABEL_415 ; default : result = Number L ; break ; } return result ; case Number : if ( k == Number ) { LABEL_415 : gen_helper_neon_qshl_u32 ( v82 , cpu_env , v82 , v110 ) ; } else if ( k ) { LABEL_413 : gen_helper_neon_qshl_u16 ( v82 , cpu_env , v82 , v110 ) ; } else { LABEL_407 : gen_helper_neon_qshl_u8 ( v82 , cpu_env , v82 , v110 ) ; } goto LABEL_416 ; default : LABEL_416 : dead_tmp ( v110 ) ; if ( v153 == Number || v153 == Number ) { v111 = neon_load_reg ( @@v37@@ , l ) ; gen_neon_add ( k , v111 , v82 ) ; dead_tmp ( v111 ) ; } else if ( v153 == Number || v153 == Number && @@v149@@ ) { if ( k == Number ) { if ( v44 >= Number && v44 <= Number ) { if ( v153 == Number ) v78 = Number >> - ( char ) v44 ; else v78 = Number << v44 ; } else { v78 = Number ; } } else if ( k ) { if ( v153 == Number ) v79 = Number >> - ( char ) v44 ; else v79 = ( unsigned __int16 ) ( Number << v44 ) ; v78 = ( v79 << Number ) | v79 ; } else { if ( v153 == Number ) v77 = Number >> - ( char ) v44 ; else v77 = ( unsigned __int8 ) ( Number << v44 ) ; v78 = ( ( ( v77 << Number ) | v77 ) << Number ) | ( v77 << Number ) | v77 ; } v112 = neon_load_reg ( @@v37@@ , l ) ; tcg_gen_andi_i32 ( v82 , v82 , v78 ) ; tcg_gen_andi_i32 ( v112 , v112 , ~ v78 ) ; tcg_gen_or_i32 ( v82 , v82 , v112 ) ; dead_tmp ( v112 ) ; } neon_store_reg ( @@v37@@ , l , v82 ) ; break ; } } } return Number L ; } if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) { if ( v153 == Number ) { if ( ( @@a3@@ & Number ) != Number || k == Number ) return Number L ; v85 = neon_load_reg ( @@v39@@ , Number ) ; v114 = neon_load_reg ( @@v39@@ , Number ) ; for ( m = Number ; m <= Number ; ++ m ) { if ( m == Number ) v85 = v114 ; gen_neon_widen ( cpu_V0 , v85 , k , @@v149@@ ) ; if ( v44 ) { tcg_gen_shli_i64 ( cpu_V0 , cpu_V0 , v44 ) ; if ( k <= Number || ! @@v149@@ ) { if ( k ) v74 = Number >> ( Number - ( BYTE2 ( @@a3@@ ) & ( ( Number << ( k + Number ) ) - Number ) ) ) ; else v74 = ( Number >> ( Number - v44 ) << Number ) | ( Number >> ( Number - v44 ) ) ; tcg_gen_andi_i64 ( cpu_V0 , cpu_V0 , ( ( unsigned __int64 ) v74 << Number ) | v74 ) ; } } neon_store_reg64 ( cpu_V0 , m + @@v37@@ ) ; } } else { if ( v153 != Number ) return Number L ; for ( n = Number ; ; ++ n ) { v12 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v12 <= n ) break ; v10 = neon_reg_offset ( @@v39@@ , n ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v10 ) ; if ( @@v149@@ ) gen_vfp_ulto ( Number , v44 ) ; else gen_vfp_slto ( Number , v44 ) ; v11 = neon_reg_offset ( @@v37@@ , n ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v11 ) ; } } return Number L ; } v45 = v44 - ( Number << ( k + Number ) ) ; v42 = k + Number ; if ( v42 == Number ) { v145 = tcg_const_i64 ( v45 ) ; v113 = Number ; } else { if ( v42 > Number ) goto LABEL_452 ; if ( v42 == Number ) { v113 = tcg_const_i32 ( ( ( unsigned __int16 ) v45 << Number ) | ( unsigned int ) ( unsigned __int16 ) v45 ) ; v145 = Number ; } else { if ( v42 != Number ) LABEL_452 : abort ( ) ; v113 = tcg_const_i32 ( ( unsigned int ) v45 ) ; v145 = Number ; } } for ( ii = Number ; ii <= Number ; ++ ii ) { if ( v42 == Number ) { neon_load_reg64 ( cpu_V0 , ii + @@v39@@ ) ; if ( ( @@a3@@ & Number ) != Number ) { if ( @@v149@@ ) gen_helper_neon_rshl_u64 ( cpu_V0 , cpu_V0 , v145 ) ; else gen_helper_neon_rshl_s64 ( cpu_V0 , cpu_V0 , v145 ) ; } else if ( @@v149@@ ) { gen_helper_neon_shl_u64 ( cpu_V0 , cpu_V0 , v145 ) ; } else { gen_helper_neon_shl_s64 ( cpu_V0 , cpu_V0 , v145 ) ; } } else { v83 = neon_load_reg ( @@v39@@ + ii , Number ) ; gen_neon_shift_narrow ( v42 , v83 , v113 , @@v148@@ , @@v149@@ ) ; v140 = neon_load_reg ( @@v39@@ + ii , Number ) ; gen_neon_shift_narrow ( v42 , v140 , v113 , @@v148@@ , @@v149@@ ) ; tcg_gen_concat_i32_i64 ( cpu_V0 , v83 , v140 ) ; dead_tmp ( v83 ) ; dead_tmp ( v140 ) ; } v84 = new_tmp ( ) ; if ( v153 != Number || @@v149@@ ) { if ( v153 == Number ) gen_neon_narrow_sats ( v42 - Number , v84 , cpu_V0 ) ; else gen_neon_narrow_satu ( v42 - Number , v84 , cpu_V0 ) ; } else { gen_neon_narrow ( v42 - Number , v84 , cpu_V0 ) ; } neon_store_reg ( @@v37@@ , ii , v84 ) ; } if ( v42 == Number ) tcg_temp_free_i64 ( v145 ) ; else LABEL_677 : dead_tmp ( v113 ) ; return Number L ; } if ( v40 == Number ) { if ( @@v149@@ ) { if ( ( @@a3@@ & Number ) == Number ) { v156 = ( @@a3@@ >> Number ) & Number | ( @@a3@@ >> Number ) & Number ; v43 = ( @@a3@@ >> Number ) & Number ; switch ( v156 ) { case Number : if ( v43 == Number ) return Number L ; for ( jj = Number ; ; ++ jj ) { v17 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v17 <= jj ) break ; v94 = neon_load_reg ( @@v39@@ , Number * jj ) ; v118 = neon_load_reg ( @@v39@@ , Number * jj + Number ) ; if ( v43 != Number ) { if ( v43 ) gen_swap_half ( v94 ) ; else tcg_gen_bswap32_i32 ( v94 , v94 ) ; } neon_store_reg ( @@v37@@ , Number * jj + Number , v94 ) ; if ( v43 != Number ) { if ( v43 ) gen_swap_half ( v118 ) ; else tcg_gen_bswap32_i32 ( v118 , v118 ) ; } neon_store_reg ( @@v37@@ , Number * jj , v118 ) ; } return Number L ; case Number : case Number : case Number : case Number : if ( v43 == Number ) return Number L ; for ( kk = Number ; @@v148@@ >= kk ; ++ kk ) { v18 = neon_load_reg ( @@v39@@ , Number * kk ) ; gen_neon_widen ( cpu_V0 , v18 , v43 , v156 & Number ) ; v95 = neon_load_reg ( @@v39@@ , Number * kk + Number ) ; gen_neon_widen ( cpu_V1 , v95 , v43 , v156 & Number ) ; if ( v43 == Number ) { tcg_gen_add_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } else if ( v43 ) { gen_helper_neon_paddl_u32 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } else { gen_helper_neon_paddl_u16 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } if ( v156 > Number ) { neon_load_reg64 ( cpu_V1 , kk + @@v37@@ ) ; gen_neon_addl ( v43 ) ; } neon_store_reg64 ( cpu_V0 , kk + @@v37@@ ) ; } return Number L ; case Number : if ( v43 != Number ) goto LABEL_806 ; for ( ll = Number ; ; ll += Number ) { v19 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v19 <= ll ) break ; v96 = neon_load_reg ( @@v39@@ , ll ) ; v119 = neon_load_reg ( @@v37@@ , ll + Number ) ; neon_store_reg ( @@v39@@ , ll , v119 ) ; neon_store_reg ( @@v37@@ , ll + Number , v96 ) ; } return Number L ; case Number : if ( v43 == Number ) return Number L ; gen_neon_unzip ( @@v37@@ , @@v148@@ , Number , v43 ) ; gen_neon_unzip ( @@v39@@ , @@v148@@ , Number , v43 ) ; if ( ( @@a3@@ & Number ) != Number ) { for ( mm = Number ; mm <= Number ; ++ mm ) { if ( mm > Number ) v20 = @@v39@@ ; else v20 = @@v37@@ ; @@v159@@ = v20 ; v97 = neon_load_scratch ( unzip_order_q_15537 [ mm ] ) ; neon_store_reg ( @@v159@@ , mm % Number , v97 ) ; } } else { for ( nn = Number ; nn <= Number ; ++ nn ) { if ( nn > Number ) v21 = @@v39@@ ; else v21 = @@v37@@ ; @@v158@@ = v21 ; v98 = neon_load_scratch ( unzip_order_15542 [ nn ] ) ; neon_store_reg ( @@v158@@ , nn % Number , v98 ) ; } } return Number L ; case Number : if ( v43 == Number ) return Number L ; if ( ( @@a3@@ & Number ) != Number ) v22 = Number ; else v22 = Number ; v64 = v22 ; for ( i1 = Number ; i1 < v64 ; ++ i1 ) { v99 = neon_load_reg ( @@v37@@ , i1 ) ; v120 = neon_load_reg ( @@v37@@ , i1 ) ; if ( v43 != Number ) { if ( v43 ) gen_neon_zip_u16 ( v99 , v120 ) ; else gen_neon_zip_u8 ( v99 , v120 ) ; } neon_store_scratch ( Number * i1 , v99 ) ; neon_store_scratch ( Number * i1 + Number , v120 ) ; } for ( i2 = Number ; i2 < Number * v64 ; ++ i2 ) { if ( i2 >= v64 ) v23 = @@v39@@ ; else v23 = @@v37@@ ; @@v157@@ = v23 ; v100 = neon_load_scratch ( i2 ) ; neon_store_reg ( @@v157@@ , i2 % v64 , v100 ) ; } return Number L ; case Number : case Number : if ( v43 == Number ) return Number L ; v121 = Number ; for ( i3 = Number ; i3 <= Number ; ++ i3 ) { neon_load_reg64 ( cpu_V0 , i3 + @@v39@@ ) ; v101 = new_tmp ( ) ; if ( v156 != Number || ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_neon_narrow_satu ( v43 , v101 , cpu_V0 ) ; else gen_neon_narrow_sats ( v43 , v101 , cpu_V0 ) ; } else { gen_neon_narrow ( v43 , v101 , cpu_V0 ) ; } if ( i3 ) { neon_store_reg ( @@v37@@ , Number , v121 ) ; neon_store_reg ( @@v37@@ , Number , v101 ) ; } else { v121 = v101 ; } } return Number L ; case Number : if ( ( @@a3@@ & Number ) != Number || v43 == Number ) return Number L ; v102 = neon_load_reg ( @@v39@@ , Number ) ; v122 = neon_load_reg ( @@v39@@ , Number ) ; for ( i4 = Number ; i4 <= Number ; ++ i4 ) { if ( i4 == Number ) v102 = v122 ; gen_neon_widen ( cpu_V0 , v102 , v43 , Number ) ; tcg_gen_shli_i64 ( cpu_V0 , cpu_V0 , Number << v43 ) ; neon_store_reg64 ( cpu_V0 , i4 + @@v37@@ ) ; } return Number L ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) return Number L ; v103 = new_tmp ( ) ; v123 = new_tmp ( ) ; v24 = neon_reg_offset ( @@v39@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v24 ) ; gen_helper_vfp_fcvt_f32_to_f16 ( v103 , cpu_F0s , cpu_env ) ; v25 = neon_reg_offset ( @@v39@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v25 ) ; gen_helper_vfp_fcvt_f32_to_f16 ( v123 , cpu_F0s , cpu_env ) ; tcg_gen_shli_i32 ( v123 , v123 , Number ) ; tcg_gen_or_i32 ( v123 , v123 , v103 ) ; v26 = neon_reg_offset ( @@v39@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v26 ) ; gen_helper_vfp_fcvt_f32_to_f16 ( v103 , cpu_F0s , cpu_env ) ; v27 = neon_reg_offset ( @@v39@@ , Number ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v27 ) ; neon_store_reg ( @@v37@@ , Number , v123 ) ; v124 = new_tmp ( ) ; gen_helper_vfp_fcvt_f32_to_f16 ( v124 , cpu_F0s , cpu_env ) ; tcg_gen_shli_i32 ( v124 , v124 , Number ) ; tcg_gen_or_i32 ( v124 , v124 , v103 ) ; neon_store_reg ( @@v37@@ , Number , v124 ) ; dead_tmp ( v103 ) ; return Number L ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) return Number L ; v143 = new_tmp ( ) ; v104 = neon_load_reg ( @@v39@@ , Number ) ; v125 = neon_load_reg ( @@v39@@ , Number ) ; tcg_gen_ext16u_i32 ( v143 , v104 ) ; gen_helper_vfp_fcvt_f16_to_f32 ( cpu_F0s , v143 , cpu_env ) ; v28 = neon_reg_offset ( @@v37@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v28 ) ; tcg_gen_shri_i32 ( v143 , v104 , Number ) ; gen_helper_vfp_fcvt_f16_to_f32 ( cpu_F0s , v143 , cpu_env ) ; v29 = neon_reg_offset ( @@v37@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v29 ) ; dead_tmp ( v104 ) ; tcg_gen_ext16u_i32 ( v143 , v125 ) ; gen_helper_vfp_fcvt_f16_to_f32 ( cpu_F0s , v143 , cpu_env ) ; v30 = neon_reg_offset ( @@v37@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v30 ) ; tcg_gen_shri_i32 ( v143 , v125 , Number ) ; gen_helper_vfp_fcvt_f16_to_f32 ( cpu_F0s , v143 , cpu_env ) ; v31 = neon_reg_offset ( @@v37@@ , Number ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v31 ) ; dead_tmp ( v125 ) ; dead_tmp ( v143 ) ; return Number L ; default : LABEL_806 : v61 = Number ; break ; } while ( Number ) { if ( ( @@a3@@ & Number ) != Number ) v34 = Number ; else v34 = Number ; if ( v34 <= v61 ) return Number L ; if ( v156 == Number || v156 == Number || v156 > Number ) { v32 = neon_reg_offset ( @@v39@@ , v61 ) ; tcg_gen_ld_i32 ( cpu_F0s , cpu_env , v32 ) ; v105 = Number ; } else { v105 = neon_load_reg ( @@v39@@ , v61 ) ; } switch ( v156 ) { case Number : if ( ! v43 ) { tcg_gen_bswap32_i32 ( v105 , v105 ) ; goto LABEL_916 ; } if ( v43 == Number ) { gen_swap_half ( v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( ! v43 ) { gen_rev16 ( v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( v43 == Number ) { gen_helper_neon_cls_s32 ( v105 , v105 ) ; goto LABEL_916 ; } if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v43 ) gen_helper_neon_cls_s16 ( v105 , v105 ) ; else gen_helper_neon_cls_s8 ( v105 , v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( v43 == Number ) { gen_helper_clz ( v105 , v105 ) ; goto LABEL_916 ; } if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v43 ) gen_helper_neon_clz_u16 ( v105 , v105 ) ; else gen_helper_neon_clz_u8 ( v105 , v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( ! v43 ) { gen_helper_neon_cnt_u8 ( v105 , v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( ! v43 ) goto LABEL_894 ; return Number L ; case Number : if ( v43 == Number ) { gen_helper_neon_qabs_s32 ( v105 , cpu_env , v105 ) ; goto LABEL_916 ; } if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v43 ) gen_helper_neon_qabs_s16 ( v105 , cpu_env , v105 ) ; else gen_helper_neon_qabs_s8 ( v105 , cpu_env , v105 ) ; goto LABEL_916 ; } return Number L ; case Number : if ( v43 == Number ) { gen_helper_neon_qneg_s32 ( v105 , cpu_env , v105 ) ; goto LABEL_916 ; } if ( ( ( @@a3@@ >> Number ) & Number ) != Number ) { if ( v43 ) gen_helper_neon_qneg_s16 ( v105 , cpu_env , v105 ) ; else gen_helper_neon_qneg_s8 ( v105 , cpu_env , v105 ) ; goto LABEL_916 ; } return Number L ; case Number : case Number : v126 = tcg_const_i32 ( Number L ) ; if ( v43 == Number ) { gen_helper_neon_cgt_s32 ( v105 , v105 , v126 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v43 ) gen_helper_neon_cgt_s16 ( v105 , v105 , v126 ) ; else gen_helper_neon_cgt_s8 ( v105 , v105 , v126 ) ; } tcg_temp_free_i32 ( v126 ) ; if ( v156 != Number ) goto LABEL_916 ; goto LABEL_894 ; case Number : case Number : v127 = tcg_const_i32 ( Number L ) ; if ( v43 == Number ) { gen_helper_neon_cge_s32 ( v105 , v105 , v127 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v43 ) gen_helper_neon_cge_s16 ( v105 , v105 , v127 ) ; else gen_helper_neon_cge_s8 ( v105 , v105 , v127 ) ; } tcg_temp_free_i32 ( v127 ) ; if ( v156 == Number ) LABEL_894 : tcg_gen_not_i32 ( v105 , v105 ) ; goto LABEL_916 ; case Number : v128 = tcg_const_i32 ( Number L ) ; if ( v43 == Number ) { gen_helper_neon_ceq_u32 ( v105 , v105 , v128 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v43 ) gen_helper_neon_ceq_u16 ( v105 , v105 , v128 ) ; else gen_helper_neon_ceq_u8 ( v105 , v105 , v128 ) ; } tcg_temp_free_i32 ( v128 ) ; goto LABEL_916 ; case Number : if ( v43 == Number ) { gen_helper_abs ( v105 , v105 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v43 ) gen_helper_neon_abs_s16 ( v105 , v105 ) ; else gen_helper_neon_abs_s8 ( v105 , v105 ) ; } goto LABEL_916 ; case Number : if ( v43 == Number ) return Number L ; v129 = tcg_const_i32 ( Number L ) ; gen_neon_rsb ( v43 , v105 , v129 ) ; tcg_temp_free_i32 ( v129 ) ; goto LABEL_916 ; case Number : case Number : v130 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cgt_f32 ( v105 , v105 , v130 ) ; tcg_temp_free_i32 ( v130 ) ; if ( v156 == Number ) goto LABEL_894 ; goto LABEL_916 ; case Number : case Number : v131 = tcg_const_i32 ( Number L ) ; gen_helper_neon_cge_f32 ( v105 , v105 , v131 ) ; tcg_temp_free_i32 ( v131 ) ; if ( v156 == Number ) goto LABEL_894 ; goto LABEL_916 ; case Number : v132 = tcg_const_i32 ( Number L ) ; gen_helper_neon_ceq_f32 ( v105 , v105 , v132 ) ; tcg_temp_free_i32 ( v132 ) ; goto LABEL_916 ; case Number : gen_vfp_abs ( Number ) ; goto LABEL_916 ; case Number : gen_vfp_neg ( Number ) ; goto LABEL_916 ; case Number : v133 = neon_load_reg ( @@v37@@ , v61 ) ; neon_store_reg ( @@v39@@ , v61 , v133 ) ; goto LABEL_916 ; case Number : v134 = neon_load_reg ( @@v37@@ , v61 ) ; if ( v43 == Number ) abort ( ) ; if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v43 ) gen_neon_trn_u16 ( v105 , v134 ) ; else gen_neon_trn_u8 ( v105 , v134 ) ; neon_store_reg ( @@v39@@ , v61 , v134 ) ; LABEL_916 : if ( v156 == Number || v156 == Number || v156 > Number ) { v33 = neon_reg_offset ( @@v37@@ , v61 ) ; tcg_gen_st_i32 ( cpu_F0s , cpu_env , v33 ) ; } else { neon_store_reg ( @@v37@@ , v61 , v105 ) ; } ++ v61 ; break ; case Number : gen_helper_recpe_u32 ( v105 , v105 , cpu_env ) ; goto LABEL_916 ; case Number : gen_helper_rsqrte_u32 ( v105 , v105 , cpu_env ) ; goto LABEL_916 ; case Number : gen_helper_recpe_f32 ( cpu_F0s , cpu_F0s , cpu_env ) ; goto LABEL_916 ; case Number : gen_helper_rsqrte_f32 ( cpu_F0s , cpu_F0s , cpu_env ) ; goto LABEL_916 ; case Number : gen_vfp_tosiz ( Number ) ; goto LABEL_916 ; case Number : gen_vfp_touiz ( Number ) ; goto LABEL_916 ; case Number : gen_vfp_sito ( Number ) ; goto LABEL_916 ; case Number : gen_vfp_uito ( Number ) ; goto LABEL_916 ; default : return Number L ; } } } if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) return Number L ; if ( ( @@a3@@ & Number ) != Number ) v108 = neon_load_reg ( @@v39@@ , Number ) ; else v108 = neon_load_reg ( @@v39@@ , Number ) ; if ( ( @@a3@@ & Number ) != Number ) { gen_neon_dup_u8 ( v108 , Number * ( ( @@a3@@ >> Number ) & Number ) ) ; } else if ( ( @@a3@@ & Number ) != Number ) { if ( ( @@a3@@ & Number ) != Number ) gen_neon_dup_high16 ( v108 ) ; else gen_neon_dup_low16 ( v108 ) ; } for ( i5 = Number ; ; ++ i5 ) { v35 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v35 <= i5 ) break ; v136 = new_tmp ( ) ; tcg_gen_mov_i32 ( v136 , v108 ) ; neon_store_reg ( @@v37@@ , i5 , v136 ) ; } dead_tmp ( v108 ) ; } else { if ( ( @@a3@@ & Number ) != Number ) { v106 = neon_load_reg ( @@v37@@ , Number ) ; } else { v106 = new_tmp ( ) ; tcg_gen_movi_i32 ( v106 , Number ) ; } v135 = neon_load_reg ( @@v39@@ , Number ) ; @@v150@@ = tcg_const_i32 ( @@v38@@ ) ; @@v151@@ = tcg_const_i32 ( ( ( @@a3@@ >> Number ) & Number ) + Number ) ; gen_helper_neon_tbl ( v135 , v135 , v106 , @@v150@@ , @@v151@@ ) ; dead_tmp ( v106 ) ; if ( ( @@a3@@ & Number ) != Number ) { v107 = neon_load_reg ( @@v37@@ , Number ) ; } else { v107 = new_tmp ( ) ; tcg_gen_movi_i32 ( v107 , Number ) ; } v144 = neon_load_reg ( @@v39@@ , Number ) ; gen_helper_neon_tbl ( v144 , v144 , v107 , @@v150@@ , @@v151@@ ) ; tcg_temp_free_i32 ( @@v151@@ ) ; tcg_temp_free_i32 ( @@v150@@ ) ; neon_store_reg ( @@v37@@ , Number , v135 ) ; neon_store_reg ( @@v37@@ , Number , v144 ) ; dead_tmp ( v107 ) ; } } else { v76 = ( @@a3@@ >> Number ) & Number ; if ( v76 > Number && ( @@a3@@ & Number ) == Number ) return Number L ; if ( v76 ) { if ( v76 == Number ) { neon_load_reg64 ( cpu_V0 , @@v38@@ + Number ) ; if ( ( @@a3@@ & Number ) != Number ) neon_load_reg64 ( cpu_V1 , @@v39@@ ) ; } else if ( ( @@a3@@ & Number ) != Number ) { v146 = tcg_temp_new_i64 ( ) ; if ( v76 > Number ) { neon_load_reg64 ( cpu_V0 , @@v38@@ + Number ) ; neon_load_reg64 ( v146 , @@v39@@ ) ; } else { neon_load_reg64 ( cpu_V0 , @@v38@@ ) ; neon_load_reg64 ( v146 , @@v38@@ + Number ) ; } tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number * ( BYTE1 ( @@a3@@ ) & Number ) ) ; tcg_gen_shli_i64 ( cpu_V1 , v146 , Number * ( Number - ( BYTE1 ( @@a3@@ ) & Number ) ) ) ; tcg_gen_or_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; if ( v76 > Number ) { neon_load_reg64 ( cpu_V1 , @@v39@@ + Number ) ; v76 -= Number ; } else { neon_load_reg64 ( cpu_V1 , @@v39@@ ) ; } tcg_gen_shli_i64 ( cpu_V1 , cpu_V1 , Number * ( Number - v76 ) ) ; tcg_gen_shri_i64 ( v146 , v146 , Number * v76 ) ; tcg_gen_or_i64 ( cpu_V1 , cpu_V1 , v146 ) ; tcg_temp_free_i64 ( v146 ) ; } else { neon_load_reg64 ( cpu_V0 , @@v38@@ ) ; tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number * v76 ) ; neon_load_reg64 ( cpu_V1 , @@v39@@ ) ; tcg_gen_shli_i64 ( cpu_V1 , cpu_V1 , Number * ( Number - v76 ) ) ; tcg_gen_or_i64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; } } else { neon_load_reg64 ( cpu_V0 , @@v38@@ ) ; if ( ( @@a3@@ & Number ) != Number ) neon_load_reg64 ( cpu_V1 , @@v38@@ + Number ) ; } neon_store_reg64 ( cpu_V0 , @@v37@@ ) ; if ( ( @@a3@@ & Number ) != Number ) neon_store_reg64 ( cpu_V1 , @@v37@@ + Number ) ; } return Number L ; } v155 = ( @@a3@@ >> Number ) & Number ; if ( ( @@a3@@ & Number ) == Number ) { @@v160@@ = * ( ( _DWORD * ) & neon_3reg_wide_15417 + Number * v155 ) ; @@v161@@ = * ( ( _DWORD * ) & unk_2F044 + Number * v155 ) ; @@v162@@ = dword_2F048 [ Number * v155 ] ; if ( ! v40 && ( v155 == Number || v155 == Number || v155 == Number ) ) return Number L ; if ( @@v37@@ != @@v39@@ || @@v162@@ ) { if ( @@v37@@ == @@v38@@ && ! @@v161@@ ) { v88 = neon_load_reg ( @@v38@@ , Number ) ; neon_store_scratch ( Number , v88 ) ; } } else { v87 = neon_load_reg ( @@v39@@ , Number ) ; neon_store_scratch ( Number , v87 ) ; } v141 = Number ; v54 = Number ; while ( v54 <= Number ) { if ( @@v161@@ ) { neon_load_reg64 ( cpu_V0 , v54 + @@v38@@ ) ; v89 = Number ; } else { if ( v54 == Number && @@v37@@ == @@v38@@ ) v89 = neon_load_scratch ( Number ) ; else v89 = neon_load_reg ( @@v38@@ , v54 ) ; if ( @@v160@@ ) gen_neon_widen ( cpu_V0 , v89 , v40 , @@v149@@ ) ; } if ( @@v162@@ ) { neon_load_reg64 ( cpu_V1 , v54 + @@v39@@ ) ; v115 = Number ; } else { if ( v54 == Number && @@v37@@ == @@v39@@ ) v115 = neon_load_scratch ( Number ) ; else v115 = neon_load_reg ( @@v39@@ , v54 ) ; if ( @@v160@@ ) gen_neon_widen ( cpu_V1 , v115 , v40 , @@v149@@ ) ; } switch ( v155 ) { case Number : case Number : case Number : gen_neon_addl ( v40 ) ; goto LABEL_585 ; case Number : case Number : case Number : gen_neon_subl ( v40 ) ; goto LABEL_585 ; case Number : case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_abdl_s16 ( cpu_V0 , v89 , v115 ) ; break ; case Number : gen_helper_neon_abdl_u16 ( cpu_V0 , v89 , v115 ) ; break ; case Number : gen_helper_neon_abdl_s32 ( cpu_V0 , v89 , v115 ) ; break ; case Number : gen_helper_neon_abdl_u32 ( cpu_V0 , v89 , v115 ) ; break ; case Number : gen_helper_neon_abdl_s64 ( cpu_V0 , v89 , v115 ) ; break ; case Number : gen_helper_neon_abdl_u64 ( cpu_V0 , v89 , v115 ) ; break ; default : abort ( ) ; } dead_tmp ( v115 ) ; dead_tmp ( v89 ) ; goto LABEL_585 ; case Number : case Number : case Number : case Number : case Number : case Number : gen_neon_mull ( cpu_V0 , v89 , v115 , v40 , @@v149@@ ) ; dead_tmp ( v115 ) ; dead_tmp ( v89 ) ; LABEL_585 : if ( v155 == Number || v155 == Number || ( ( @@a3@@ >> Number ) & Number ) > Number && ( ( @@a3@@ >> Number ) & Number ) <= Number ) { if ( v155 == Number || v155 == Number ) gen_neon_negl ( cpu_V0 , v40 ) ; if ( v155 != Number ) neon_load_reg64 ( cpu_V1 , v54 + @@v37@@ ) ; switch ( v155 ) { case Number : case Number : case Number : gen_neon_addl ( v40 ) ; break ; case Number : case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v40 ) ; gen_neon_addl_saturate ( cpu_V0 , cpu_V1 , v40 ) ; break ; case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v40 ) ; break ; default : abort ( ) ; } LABEL_616 : neon_store_reg64 ( cpu_V0 , v54 + @@v37@@ ) ; goto LABEL_617 ; } if ( v155 != Number && v155 != Number ) goto LABEL_616 ; v90 = new_tmp ( ) ; if ( @@v149@@ ) { if ( v40 == 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 ( v90 , cpu_V0 ) ; } else if ( v40 ) { gen_helper_neon_narrow_round_high_u16 ( v90 , cpu_V0 ) ; } else { gen_helper_neon_narrow_round_high_u8 ( v90 , cpu_V0 ) ; } } else if ( v40 == Number ) { tcg_gen_shri_i64 ( cpu_V0 , cpu_V0 , Number L ) ; tcg_gen_trunc_i64_i32 ( v90 , cpu_V0 ) ; } else if ( v40 ) { gen_helper_neon_narrow_high_u16 ( v90 , cpu_V0 ) ; } else { gen_helper_neon_narrow_high_u8 ( v90 , cpu_V0 ) ; } if ( v54 ) { neon_store_reg ( @@v37@@ , Number , v141 ) ; neon_store_reg ( @@v37@@ , Number , v90 ) ; } else { v141 = v90 ; } LABEL_617 : ++ v54 ; break ; case Number : cpu_abort ( @@a1@@ , String ) ; return Number L ; default : return Number L ; } } return Number L ; } switch ( v155 ) { case Number : case Number : case Number : case Number : case Number : case Number : case Number : case Number : v91 = neon_get_scalar ( v40 , @@v39@@ ) ; neon_store_scratch ( Number , v91 ) ; v55 = Number ; while ( Number ) { if ( @@v149@@ ) v16 = Number ; else v16 = Number ; if ( v16 <= v55 ) return Number L ; v92 = neon_load_scratch ( Number ) ; v116 = neon_load_reg ( @@v38@@ , v55 ) ; if ( v155 == Number ) { if ( v40 == Number ) gen_helper_neon_qdmulh_s16 ( v92 , cpu_env , v92 , v116 ) ; else gen_helper_neon_qdmulh_s32 ( v92 , cpu_env , v92 , v116 ) ; } else if ( v155 == Number ) { if ( v40 == Number ) gen_helper_neon_qrdmulh_s16 ( v92 , cpu_env , v92 , v116 ) ; else gen_helper_neon_qrdmulh_s32 ( v92 , cpu_env , v92 , v116 ) ; } else if ( ( @@a3@@ & Number ) != Number ) { gen_helper_neon_mul_f32 ( v92 , v92 , v116 ) ; } else if ( v40 == Number ) { tcg_gen_mul_i32 ( v92 , v92 , v116 ) ; } else if ( v40 ) { gen_helper_neon_mul_u16 ( v92 , v92 , v116 ) ; } else { gen_helper_neon_mul_u8 ( v92 , v92 , v116 ) ; } dead_tmp ( v116 ) ; if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) goto LABEL_650 ; v117 = neon_load_reg ( @@v37@@ , v55 ) ; if ( v155 == Number ) { gen_helper_neon_sub_f32 ( v92 , v117 , v92 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) > Number ) goto LABEL_648 ; if ( v155 == Number ) { gen_neon_rsb ( v40 , v92 , v117 ) ; } else if ( v155 ) { if ( v155 != Number ) LABEL_648 : abort ( ) ; gen_helper_neon_add_f32 ( v92 , v92 , v117 ) ; } else { gen_neon_add ( v40 , v92 , v117 ) ; } } dead_tmp ( v117 ) ; LABEL_650 : neon_store_reg ( @@v37@@ , v55 ++ , v92 ) ; continue ; } case Number : case Number : case Number : case Number : case Number : case Number : if ( ! v40 && ( v155 == Number || v155 == Number || v155 == Number ) ) return Number L ; v113 = neon_get_scalar ( v40 , @@v39@@ ) ; v142 = neon_load_reg ( @@v38@@ , Number ) ; for ( i6 = Number ; i6 <= Number ; ++ i6 ) { if ( i6 ) { v93 = v142 ; gen_neon_mull ( cpu_V0 , v142 , v113 , v40 , @@v149@@ ) ; } else { v93 = neon_load_reg ( @@v38@@ , Number ) ; gen_neon_mull ( cpu_V0 , v93 , v113 , v40 , @@v149@@ ) ; } dead_tmp ( v93 ) ; if ( v155 == Number || v155 == Number ) gen_neon_negl ( cpu_V0 , v40 ) ; if ( v155 != Number ) neon_load_reg64 ( cpu_V1 , i6 + @@v37@@ ) ; switch ( v155 ) { case Number : case Number : gen_neon_addl ( v40 ) ; break ; case Number : case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v40 ) ; gen_neon_addl_saturate ( cpu_V0 , cpu_V1 , v40 ) ; break ; case Number : break ; case Number : gen_neon_addl_saturate ( cpu_V0 , cpu_V0 , v40 ) ; break ; default : abort ( ) ; } neon_store_reg64 ( cpu_V0 , i6 + @@v37@@ ) ; } goto LABEL_677 ; default : return Number L ; } } v152 = ( @@a3@@ >> Number ) & Number | ( @@a3@@ >> Number ) & Number ; if ( v40 != Number || v152 != Number && v152 != Number && v152 != Number && v152 != Number && v152 != Number && v152 != Number && v152 != Number ) { switch ( v152 ) { case Number : case Number : case Number : case Number : @@v163@@ = @@v38@@ ; @@v38@@ = @@v39@@ ; @@v39@@ = @@v163@@ ; @@v65@@ = Number ; break ; case Number : case Number : case Number : @@v65@@ = Number ; break ; case Number : v5 = @@v149@@ && ( ( @@a3@@ >> Number ) & Number ) <= Number ; @@v65@@ = v5 ; break ; case Number : @@v65@@ = HIBYTE ( @@a3@@ ) & Number ; break ; default : @@v65@@ = Number ; break ; } v47 = Number ; while ( Number ) { v7 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v7 <= v47 ) break ; if ( @@v65@@ ) { if ( ( @@a3@@ & Number ) != Number ) v66 = Number * ( v47 & Number ) ; else v66 = Number ; if ( @@v148@@ < v47 ) { v80 = neon_load_reg ( @@v39@@ , v66 ) ; v109 = neon_load_reg ( @@v39@@ , v66 + Number ) ; } else { v80 = neon_load_reg ( @@v38@@ , v66 ) ; v109 = neon_load_reg ( @@v38@@ , v66 + Number ) ; } } else { v80 = neon_load_reg ( @@v38@@ , v47 ) ; v109 = neon_load_reg ( @@v39@@ , v47 ) ; } switch ( v152 ) { case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_hadd_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hadd_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hadd_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hadd_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hadd_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hadd_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_qadd_s8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qadd_u8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qadd_s16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qadd_u16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_add_saturate ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_add_usaturate ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_rhadd_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rhadd_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rhadd_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rhadd_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rhadd_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rhadd_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( v40 | ( Number * @@v149@@ ) ) { case Number : tcg_gen_and_i32 ( v80 , v80 , v109 ) ; break ; case Number : tcg_gen_andc_i32 ( v80 , v80 , v109 ) ; break ; case Number : tcg_gen_or_i32 ( v80 , v80 , v109 ) ; break ; case Number : tcg_gen_orc_i32 ( v80 , v80 , v109 ) ; break ; case Number : tcg_gen_xor_i32 ( v80 , v80 , v109 ) ; break ; case Number : v137 = neon_load_reg ( @@v37@@ , v47 ) ; gen_neon_bsl ( v80 , v80 , v109 , v137 ) ; dead_tmp ( v137 ) ; break ; case Number : v138 = neon_load_reg ( @@v37@@ , v47 ) ; gen_neon_bsl ( v80 , v80 , v138 , v109 ) ; dead_tmp ( v138 ) ; break ; case Number : v139 = neon_load_reg ( @@v37@@ , v47 ) ; gen_neon_bsl ( v80 , v139 , v80 , v109 ) ; dead_tmp ( v139 ) ; break ; default : goto LABEL_316 ; } goto LABEL_316 ; case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_hsub_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hsub_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hsub_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hsub_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hsub_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_hsub_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_qsub_s8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qsub_u8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qsub_s16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qsub_u16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_sub_saturate ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_sub_usaturate ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_cgt_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cgt_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cgt_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cgt_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cgt_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cgt_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_cge_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cge_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cge_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cge_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cge_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_cge_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_shl_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_shl_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_shl_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_shl_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_shl_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_shl_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_qshl_s8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qshl_u8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qshl_s16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qshl_u16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qshl_s32 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qshl_u32 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_rshl_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rshl_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rshl_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rshl_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rshl_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_rshl_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_qrshl_s8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qrshl_u8 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qrshl_s16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qrshl_u16 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qrshl_s32 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_qrshl_u32 ( v80 , cpu_env , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_max_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_max_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_max_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_max_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : goto LABEL_179 ; case Number : goto LABEL_180 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_min_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_min_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_min_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_min_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : goto LABEL_187 ; case Number : goto LABEL_188 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_abd_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_abd_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_abd_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_abd_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_abd_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_abd_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_abd_s8 ( v80 , v80 , v109 ) ; goto LABEL_206 ; case Number : gen_helper_neon_abd_u8 ( v80 , v80 , v109 ) ; goto LABEL_206 ; case Number : gen_helper_neon_abd_s16 ( v80 , v80 , v109 ) ; goto LABEL_206 ; case Number : gen_helper_neon_abd_u16 ( v80 , v80 , v109 ) ; goto LABEL_206 ; case Number : gen_helper_neon_abd_s32 ( v80 , v80 , v109 ) ; goto LABEL_206 ; case Number : gen_helper_neon_abd_u32 ( v80 , v80 , v109 ) ; LABEL_206 : dead_tmp ( v109 ) ; v109 = neon_load_reg ( @@v37@@ , v47 ) ; gen_neon_add ( v40 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : if ( @@v149@@ ) { if ( v40 == Number ) { tcg_gen_sub_i32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_sub_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_sub_u8 ( v80 , v80 , v109 ) ; } } else if ( ( unsigned int ) gen_neon_add ( v40 , v80 , v109 ) ) { return Number L ; } goto LABEL_316 ; case Number : if ( @@v149@@ ) { if ( v40 == Number ) { gen_helper_neon_ceq_u32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_ceq_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_ceq_u8 ( v80 , v80 , v109 ) ; } } else if ( v40 == Number ) { gen_helper_neon_tst_u32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_tst_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_tst_u8 ( v80 , v80 , v109 ) ; } goto LABEL_316 ; case Number : if ( v40 == Number ) { tcg_gen_mul_i32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_mul_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_mul_u8 ( v80 , v80 , v109 ) ; } dead_tmp ( v109 ) ; v109 = neon_load_reg ( @@v37@@ , v47 ) ; if ( @@v149@@ ) gen_neon_rsb ( v40 , v80 , v109 ) ; else gen_neon_add ( v40 , v80 , v109 ) ; goto LABEL_316 ; case Number : if ( @@v149@@ ) { gen_helper_neon_mul_p8 ( v80 , v80 , v109 ) ; } else if ( v40 == Number ) { tcg_gen_mul_i32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_mul_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_mul_u8 ( v80 , v80 , v109 ) ; } goto LABEL_316 ; case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_pmax_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmax_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmax_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmax_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : LABEL_179 : gen_helper_neon_max_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : LABEL_180 : gen_helper_neon_max_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : switch ( @@v149@@ | ( Number * v40 ) ) { case Number : gen_helper_neon_pmin_s8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmin_u8 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmin_s16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : gen_helper_neon_pmin_u16 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : LABEL_187 : gen_helper_neon_min_s32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : LABEL_188 : gen_helper_neon_min_u32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; default : return Number L ; } case Number : if ( @@v149@@ ) { if ( v40 == Number ) { gen_helper_neon_qrdmulh_s16 ( v80 , cpu_env , v80 , v109 ) ; } else { if ( v40 != Number ) return Number L ; gen_helper_neon_qrdmulh_s32 ( v80 , cpu_env , v80 , v109 ) ; } } else if ( v40 == Number ) { gen_helper_neon_qdmulh_s16 ( v80 , cpu_env , v80 , v109 ) ; } else { if ( v40 != Number ) return Number L ; gen_helper_neon_qdmulh_s32 ( v80 , cpu_env , v80 , v109 ) ; } goto LABEL_316 ; case Number : if ( @@v149@@ ) return Number L ; if ( v40 == Number ) { tcg_gen_add_i32 ( v80 , v80 , v109 ) ; } else { if ( ( ( @@a3@@ >> Number ) & Number ) == Number ) return Number L ; if ( v40 ) gen_helper_neon_padd_u16 ( v80 , v80 , v109 ) ; else gen_helper_neon_padd_u8 ( v80 , v80 , v109 ) ; } goto LABEL_316 ; case Number : v6 = v40 | ( Number * @@v149@@ ) ; if ( v6 == Number ) { gen_helper_neon_abd_f32 ( v80 , v80 , v109 ) ; } else { if ( v6 > Number ) return Number L ; if ( v6 == Number ) goto LABEL_297 ; if ( v6 > Number ) return Number L ; if ( ! v6 ) { LABEL_297 : gen_helper_neon_add_f32 ( v80 , v80 , v109 ) ; } else { if ( v6 != Number ) return Number L ; gen_helper_neon_sub_f32 ( v80 , v80 , v109 ) ; } } goto LABEL_316 ; case Number : gen_helper_neon_mul_f32 ( v80 , v80 , v109 ) ; if ( @@v149@@ ) goto LABEL_316 ; dead_tmp ( v109 ) ; v109 = neon_load_reg ( @@v37@@ , v47 ) ; if ( ! v40 ) goto LABEL_297 ; gen_helper_neon_sub_f32 ( v80 , v109 , v80 ) ; goto LABEL_316 ; case Number : if ( @@v149@@ ) { if ( v40 ) gen_helper_neon_cgt_f32 ( v80 , v80 , v109 ) ; else gen_helper_neon_cge_f32 ( v80 , v80 , v109 ) ; } else { gen_helper_neon_ceq_f32 ( v80 , v80 , v109 ) ; } goto LABEL_316 ; case Number : if ( ! @@v149@@ ) return Number L ; if ( v40 ) gen_helper_neon_acgt_f32 ( v80 , v80 , v109 ) ; else gen_helper_neon_acge_f32 ( v80 , v80 , v109 ) ; LABEL_316 : dead_tmp ( v109 ) ; if ( @@v65@@ && @@v37@@ == @@v39@@ ) neon_store_scratch ( v47 , v80 ) ; else neon_store_reg ( @@v37@@ , v47 , v80 ) ; ++ v47 ; break ; case Number : if ( v40 ) gen_helper_neon_min_f32 ( v80 , v80 , v109 ) ; else gen_helper_neon_max_f32 ( v80 , v80 , v109 ) ; goto LABEL_316 ; case Number : if ( v40 ) gen_helper_rsqrts_f32 ( v80 , v80 , v109 , cpu_env ) ; else gen_helper_recps_f32 ( v80 , v80 , v109 , cpu_env ) ; goto LABEL_316 ; default : abort ( ) ; } } if ( @@v65@@ && @@v37@@ == @@v39@@ ) { for ( i7 = Number ; ; ++ i7 ) { v8 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v8 <= i7 ) break ; v81 = neon_load_scratch ( i7 ) ; neon_store_reg ( @@v37@@ , i7 , v81 ) ; } } return Number L ; } for ( i8 = Number ; ; ++ i8 ) { v4 = ( @@a3@@ & Number ) != Number ? Number : Number ; if ( v4 <= i8 ) break ; neon_load_reg64 ( cpu_V0 , i8 + @@v38@@ ) ; neon_load_reg64 ( cpu_V1 , i8 + @@v39@@ ) ; switch ( v152 ) { case Number : if ( @@v149@@ ) gen_helper_neon_add_saturate_u64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_add_saturate_s64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v149@@ ) gen_helper_neon_sub_saturate_u64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; else gen_helper_neon_sub_saturate_s64 ( cpu_V0 , cpu_V0 , cpu_V1 ) ; break ; case Number : if ( @@v149@@ ) 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 ( @@v149@@ ) gen_helper_neon_qshl_u64 ( cpu_V0 , cpu_env , cpu_V0 , cpu_V0 ) ; else gen_helper_neon_qshl_s64 ( cpu_V1 , cpu_env , cpu_V1 , cpu_V0 ) ; break ; case Number : if ( @@v149@@ ) 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 ( @@v149@@ ) 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 ( @@v149@@ ) 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 + @@v37@@ ) ; } 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": "v65", "t": {"T": 1, "n": "int", "s": 4}, "location": "s104"}, {"n": "v39", "t": {"T": 1, "n": "int", "s": 4}, "location": "s124"}, {"n": "v38", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s128"}, {"n": "v37", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v163", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v162", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v161", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v160", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v159", "t": {"T": 1, "n": "int", "s": 4}, "location": "s40"}, {"n": "v158", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v157", "t": {"T": 1, "n": "int", "s": 4}, "location": "s48"}, {"n": "v151", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s56"}, {"n": "v150", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s60"}, {"n": "v149", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}, {"n": "v148", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v147", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}]}