{"name": "gen_helper_shl_cc", "code": "unsigned __int64 __fastcall gen_helper_shl_cc ( 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_shl_cc , 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": "gen_helper_shl", "code": "unsigned __int64 __fastcall gen_helper_shl ( 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_shl , 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": "gen_arm_shift_reg", "code": "unsigned __int64 __fastcall gen_arm_shift_reg ( int @@a1@@ , int @@a2@@ , unsigned int @@a3@@ , int @@a4@@ ) { unsigned __int64 @@v6@@ ; @@v6@@ = __readfsqword ( Number ) ; if ( @@a4@@ ) { if ( @@a2@@ == Number ) { gen_helper_ror_cc ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else if ( @@a2@@ <= Number ) { if ( @@a2@@ == Number ) { gen_helper_sar_cc ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else if ( @@a2@@ ) { if ( @@a2@@ == Number ) gen_helper_shr_cc ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else { gen_helper_shl_cc ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } } } else if ( @@a2@@ == Number ) { tcg_gen_andi_i32 ( @@a3@@ , @@a3@@ , Number ) ; tcg_gen_rotr_i32 ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else if ( @@a2@@ <= Number ) { if ( @@a2@@ == Number ) { gen_helper_sar ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else if ( @@a2@@ ) { if ( @@a2@@ == Number ) gen_helper_shr ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } else { gen_helper_shl ( @@a1@@ , @@a1@@ , @@a3@@ ) ; } } tcg_temp_free_i32 ( @@a3@@ ) ; return __readfsqword ( Number ) ^ @@v6@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v6", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "disas_thumb_insn", "code": "unsigned __int64 __fastcall disas_thumb_insn ( __int64 @@a1@@ , int * @@a2@@ ) { unsigned int v2 ; unsigned int v3 ; int i ; int j ; int k ; int v8 ; int v9 ; int v10 ; int v11 ; int v12 ; int v13 ; int v14 ; int @@v15@@ ; int v16 ; int v17 ; int v18 ; int v19 ; int v20 ; unsigned int v21 ; unsigned int v22 ; unsigned int v23 ; unsigned int v24 ; unsigned int v25 ; unsigned int v26 ; unsigned int v27 ; unsigned int v28 ; unsigned int v29 ; unsigned int v30 ; unsigned int v31 ; unsigned int v32 ; unsigned int v33 ; unsigned int v34 ; unsigned int v35 ; unsigned int v36 ; unsigned int v37 ; unsigned int v38 ; unsigned int v39 ; unsigned int v40 ; unsigned int v41 ; unsigned int v42 ; unsigned int v43 ; unsigned int v44 ; unsigned int v45 ; unsigned int v46 ; unsigned int v47 ; unsigned int @@v48@@ ; unsigned int v49 ; int v50 ; unsigned int @@v51@@ ; int @@v52@@ ; unsigned int v53 ; unsigned int v54 ; unsigned int v55 ; int v56 ; int v57 ; int v58 ; int v59 ; unsigned int v60 ; unsigned __int64 @@v61@@ ; @@v61@@ = __readfsqword ( Number ) ; if ( @@a2@@ [ Number ] ) { v49 = @@a2@@ [ Number ] ; if ( v49 != Number ) { @@a2@@ [ Number ] = gen_new_label ( ) ; gen_test_cc ( v49 ^ Number , @@a2@@ [ Number ] ) ; @@a2@@ [ Number ] = Number ; } } @@v51@@ = lduw_be_p ( ( unsigned __int8 * ) ( ( unsigned int ) * @@a2@@ + guest_base ) ) ; * @@a2@@ += Number ; switch ( @@v51@@ >> Number ) { case Number : case Number : v8 = @@v51@@ & Number ; v56 = ( @@v51@@ >> Number ) & Number ; if ( v56 != Number ) { v23 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; gen_arm_shift_im ( v23 , v56 , ( @@v51@@ >> Number ) & Number , @@a2@@ [ Number ] == Number ) ; if ( ! @@a2@@ [ Number ] ) gen_logic_CC ( v23 ) ; goto LABEL_187 ; } v22 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; if ( ( @@v51@@ & Number ) != Number ) { v44 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v44 , ( @@v51@@ >> Number ) & Number ) ; } else { v44 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; } if ( ( @@v51@@ & Number ) != Number ) { if ( @@a2@@ [ Number ] ) goto LABEL_28 ; goto LABEL_29 ; } if ( @@a2@@ [ Number ] ) goto LABEL_25 ; goto LABEL_13 ; case Number : case Number : v57 = ( @@v51@@ >> Number ) & Number ; v8 = ( @@v51@@ >> Number ) & Number ; if ( v57 ) { v22 = load_reg ( @@a2@@ , v8 ) ; v44 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v44 , ( unsigned __int8 ) @@v51@@ ) ; if ( v57 == Number ) { if ( @@a2@@ [ Number ] ) LABEL_28 : tcg_gen_sub_i32 ( v22 , v22 , v44 ) ; else LABEL_29 : gen_helper_sub_cc ( v22 , v22 , v44 ) ; } else { if ( v57 == Number ) { gen_helper_sub_cc ( v22 , v22 , v44 ) ; tcg_temp_free_i32 ( v22 ) ; tcg_temp_free_i32 ( v44 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; } if ( @@a2@@ [ Number ] ) LABEL_25 : tcg_gen_add_i32 ( v22 , v22 , v44 ) ; else LABEL_13 : gen_helper_add_cc ( v22 , v22 , v44 ) ; } tcg_temp_free_i32 ( v44 ) ; store_reg ( ( __int64 ) @@a2@@ , v8 , v22 ) ; } else { v23 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v23 , ( unsigned __int8 ) @@v51@@ ) ; if ( ! @@a2@@ [ Number ] ) gen_logic_CC ( v23 ) ; LABEL_187 : store_reg ( ( __int64 ) @@a2@@ , v8 , v23 ) ; } return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ( @@v51@@ & Number ) != Number ) { v18 = ( Number * ( unsigned __int8 ) @@v51@@ + * @@a2@@ + Number ) & Number ; v53 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v53 , v18 ) ; v24 = gen_ld32 ( v53 , Number ) ; tcg_temp_free_i32 ( v53 ) ; store_reg ( ( __int64 ) @@a2@@ , ( @@v51@@ >> Number ) & Number , v24 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; } if ( ( @@v51@@ & Number ) != Number ) { v9 = @@v51@@ & Number | ( @@v51@@ >> Number ) & Number ; v16 = ( @@v51@@ >> Number ) & Number ; v58 = ( @@v51@@ >> Number ) & Number ; if ( v58 == Number ) { v27 = load_reg ( @@a2@@ , v16 ) ; if ( ( @@v51@@ & Number ) != Number ) { if ( ! arm_feature ( @@a1@@ , Number ) ) { LABEL_219 : gen_exception_insn ( @@a2@@ , Number , Number ) ; return __readfsqword ( Number ) ^ @@v61@@ ; } v19 = * @@a2@@ | Number ; v46 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v46 , v19 ) ; store_reg ( ( __int64 ) @@a2@@ , Number , v46 ) ; } gen_bx ( ( __int64 ) @@a2@@ , v27 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; } if ( v58 == Number ) { v26 = load_reg ( @@a2@@ , v16 ) ; store_reg ( ( __int64 ) @@a2@@ , v9 , v26 ) ; } else { v25 = load_reg ( @@a2@@ , v9 ) ; v45 = load_reg ( @@a2@@ , v16 ) ; if ( v58 ) { gen_helper_sub_cc ( v25 , v25 , v45 ) ; tcg_temp_free_i32 ( v45 ) ; tcg_temp_free_i32 ( v25 ) ; } else { tcg_gen_add_i32 ( v25 , v25 , v45 ) ; tcg_temp_free_i32 ( v45 ) ; store_reg ( ( __int64 ) @@a2@@ , v9 , v25 ) ; } } } else { v10 = @@v51@@ & Number ; v17 = ( @@v51@@ >> Number ) & Number ; v59 = ( @@v51@@ >> Number ) & Number ; if ( v59 == Number || v59 == Number || v59 == Number || v59 == Number ) { v17 = @@v51@@ & Number ; v10 = ( @@v51@@ >> Number ) & Number ; v20 = Number ; } else { v20 = Number ; } if ( v59 == Number ) { v28 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v28 , Number ) ; } else if ( v59 == Number ) { v28 = Number ; } else { v28 = load_reg ( @@a2@@ , v10 ) ; } v47 = load_reg ( @@a2@@ , v17 ) ; switch ( v59 ) { case Number : tcg_gen_and_i32 ( v28 , v28 , v47 ) ; if ( ! @@a2@@ [ Number ] ) goto LABEL_89 ; break ; case Number : tcg_gen_xor_i32 ( v28 , v28 , v47 ) ; if ( ! @@a2@@ [ Number ] ) goto LABEL_89 ; break ; case Number : if ( @@a2@@ [ Number ] ) { gen_helper_shl ( v47 , v47 , v28 ) ; } else { gen_helper_shl_cc ( v47 , v47 , v28 ) ; gen_logic_CC ( v47 ) ; } break ; case Number : if ( @@a2@@ [ Number ] ) { gen_helper_shr ( v47 , v47 , v28 ) ; } else { gen_helper_shr_cc ( v47 , v47 , v28 ) ; gen_logic_CC ( v47 ) ; } break ; case Number : if ( @@a2@@ [ Number ] ) { gen_helper_sar ( v47 , v47 , v28 ) ; } else { gen_helper_sar_cc ( v47 , v47 , v28 ) ; gen_logic_CC ( v47 ) ; } break ; case Number : if ( @@a2@@ [ Number ] ) gen_adc ( v28 , v47 ) ; else gen_helper_adc_cc ( v28 , v28 , v47 ) ; break ; case Number : if ( @@a2@@ [ Number ] ) gen_sub_carry ( v28 , v28 , v47 ) ; else gen_helper_sbc_cc ( v28 , v28 , v47 ) ; break ; case Number : if ( @@a2@@ [ Number ] ) { tcg_gen_andi_i32 ( v28 , v28 , Number ) ; tcg_gen_rotr_i32 ( v47 , v47 , v28 ) ; } else { gen_helper_ror_cc ( v47 , v47 , v28 ) ; gen_logic_CC ( v47 ) ; } break ; case Number : tcg_gen_and_i32 ( v28 , v28 , v47 ) ; gen_logic_CC ( v28 ) ; v10 = Number ; break ; case Number : if ( @@a2@@ [ Number ] ) tcg_gen_neg_i32 ( v28 , v47 ) ; else gen_helper_sub_cc ( v28 , v28 , v47 ) ; break ; case Number : gen_helper_sub_cc ( v28 , v28 , v47 ) ; v10 = Number ; break ; case Number : gen_helper_add_cc ( v28 , v28 , v47 ) ; v10 = Number ; break ; case Number : tcg_gen_or_i32 ( v28 , v28 , v47 ) ; if ( ! @@a2@@ [ Number ] ) goto LABEL_89 ; break ; case Number : tcg_gen_mul_i32 ( v28 , v28 , v47 ) ; if ( ! @@a2@@ [ Number ] ) goto LABEL_89 ; break ; case Number : tcg_gen_andc_i32 ( v28 , v28 , v47 ) ; if ( ! @@a2@@ [ Number ] ) LABEL_89 : gen_logic_CC ( v28 ) ; break ; case Number : tcg_gen_not_i32 ( v47 , v47 ) ; if ( ! @@a2@@ [ Number ] ) gen_logic_CC ( v47 ) ; v20 = Number ; v17 = v10 ; break ; default : break ; } if ( v10 == Number ) { tcg_temp_free_i32 ( v28 ) ; tcg_temp_free_i32 ( v47 ) ; } else if ( v20 ) { store_reg ( ( __int64 ) @@a2@@ , v17 , v47 ) ; if ( v59 != Number ) tcg_temp_free_i32 ( v28 ) ; } else { store_reg ( ( __int64 ) @@a2@@ , v10 , v28 ) ; tcg_temp_free_i32 ( v47 ) ; } } return __readfsqword ( Number ) ^ @@v61@@ ; case Number : v11 = @@v51@@ & Number ; v60 = ( @@v51@@ >> Number ) & Number ; v54 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; v29 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; tcg_gen_add_i32 ( v54 , v54 , v29 ) ; tcg_temp_free_i32 ( v29 ) ; if ( v60 <= Number ) v29 = load_reg ( @@a2@@ , v11 ) ; switch ( v60 ) { case Number : gen_st32 ( v29 , v54 , Number ) ; break ; case Number : gen_st16 ( v29 , v54 , Number ) ; break ; case Number : gen_st8 ( v29 , v54 , Number ) ; break ; case Number : v29 = gen_ld8s ( v54 , Number ) ; break ; case Number : v29 = gen_ld32 ( v54 , Number ) ; break ; case Number : v29 = gen_ld16u ( v54 , Number ) ; break ; case Number : v29 = gen_ld8u ( v54 , Number ) ; break ; case Number : v29 = gen_ld16s ( v54 , Number ) ; break ; default : break ; } if ( v60 > Number ) store_reg ( ( __int64 ) @@a2@@ , v11 , v29 ) ; goto LABEL_205 ; case Number : v12 = @@v51@@ & Number ; v54 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; tcg_gen_addi_i32 ( v54 , v54 , ( @@v51@@ >> Number ) & Number ) ; if ( ( @@v51@@ & Number ) == Number ) goto LABEL_114 ; goto LABEL_122 ; case Number : v13 = @@v51@@ & Number ; v54 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; tcg_gen_addi_i32 ( v54 , v54 , ( @@v51@@ >> Number ) & Number ) ; if ( ( @@v51@@ & Number ) != Number ) { v31 = gen_ld8u ( v54 , Number ) ; store_reg ( ( __int64 ) @@a2@@ , v13 , v31 ) ; } else { v32 = load_reg ( @@a2@@ , v13 ) ; gen_st8 ( v32 , v54 , Number ) ; } goto LABEL_205 ; case Number : v14 = @@v51@@ & Number ; v54 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; tcg_gen_addi_i32 ( v54 , v54 , ( @@v51@@ >> Number ) & Number ) ; if ( ( @@v51@@ & Number ) != Number ) { v33 = gen_ld16u ( v54 , Number ) ; store_reg ( ( __int64 ) @@a2@@ , v14 , v33 ) ; } else { v34 = load_reg ( @@a2@@ , v14 ) ; gen_st16 ( v34 , v54 , Number ) ; } goto LABEL_205 ; case Number : v12 = ( @@v51@@ >> Number ) & Number ; v54 = load_reg ( @@a2@@ , Number ) ; tcg_gen_addi_i32 ( v54 , v54 , Number * ( unsigned __int8 ) @@v51@@ ) ; if ( ( @@v51@@ & Number ) != Number ) { LABEL_122 : v35 = gen_ld32 ( v54 , Number ) ; store_reg ( ( __int64 ) @@a2@@ , v12 , v35 ) ; } else { LABEL_114 : v30 = load_reg ( @@a2@@ , v12 ) ; gen_st32 ( v30 , v54 , Number ) ; } goto LABEL_205 ; case Number : if ( ( @@v51@@ & Number ) != Number ) { v36 = load_reg ( @@a2@@ , Number ) ; } else { v36 = tcg_temp_new_i32 ( ) ; tcg_gen_movi_i32 ( v36 , ( * @@a2@@ + Number ) & Number ) ; } tcg_gen_addi_i32 ( v36 , v36 , Number * ( unsigned __int8 ) @@v51@@ ) ; store_reg ( ( __int64 ) @@a2@@ , ( @@v51@@ >> Number ) & Number , v36 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : switch ( ( @@v51@@ >> Number ) & Number ) { case Number : v37 = load_reg ( @@a2@@ , Number ) ; v21 = Number * ( @@v51@@ & Number ) ; if ( ( @@v51@@ & Number ) != Number ) v21 = Number * ( @@v51@@ & Number ) ; tcg_gen_addi_i32 ( v37 , v37 , v21 ) ; store_reg ( ( __int64 ) @@a2@@ , Number , v37 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : case Number : case Number : case Number : v41 = load_reg ( @@a2@@ , @@v51@@ & Number ) ; @@a2@@ [ Number ] = gen_new_label ( ) ; @@a2@@ [ Number ] = Number ; if ( ( @@v51@@ & Number ) != Number ) tcg_gen_brcondi_i32 ( Number , v41 , Number , @@a2@@ [ Number ] ) ; else tcg_gen_brcondi_i32 ( Number , v41 , Number , @@a2@@ [ Number ] ) ; tcg_temp_free_i32 ( v41 ) ; gen_jmp ( @@a2@@ , ( ( @@v51@@ >> Number ) & Number | ( @@v51@@ >> Number ) & Number ) + * @@a2@@ + Number ) ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) goto LABEL_219 ; v8 = @@v51@@ & Number ; v23 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; v2 = ( unsigned __int8 ) @@v51@@ >> Number ; if ( v2 == Number ) { tcg_gen_ext8u_i32 ( v23 , v23 ) ; } else if ( v2 <= Number ) { if ( v2 == Number ) { tcg_gen_ext16u_i32 ( v23 , v23 ) ; } else if ( ( unsigned __int8 ) @@v51@@ >> Number ) { tcg_gen_ext8s_i32 ( v23 , v23 ) ; } else { tcg_gen_ext16s_i32 ( v23 , v23 ) ; } } goto LABEL_187 ; case Number : case Number : case Number : case Number : v55 = load_reg ( @@a2@@ , Number ) ; if ( ( @@v51@@ & Number ) != Number ) @@v15@@ = Number ; else @@v15@@ = Number ; for ( i = Number ; i <= Number ; ++ i ) { if ( ( @@v51@@ & ( Number << i ) ) != Number ) @@v15@@ += Number ; } if ( ( @@v51@@ & Number ) == Number ) tcg_gen_addi_i32 ( v55 , v55 , - @@v15@@ ) ; for ( j = Number ; j <= Number ; ++ j ) { if ( ( @@v51@@ & ( Number << j ) ) != Number ) { if ( ( @@v51@@ & Number ) != Number ) { v38 = gen_ld32 ( v55 , Number ) ; store_reg ( ( __int64 ) @@a2@@ , j , v38 ) ; } else { v39 = load_reg ( @@a2@@ , j ) ; gen_st32 ( v39 , v55 , Number ) ; } tcg_gen_addi_i32 ( v55 , v55 , Number ) ; } } v40 = Number ; if ( ( @@v51@@ & Number ) != Number ) { if ( ( @@v51@@ & Number ) != Number ) { v40 = gen_ld32 ( v55 , Number ) ; } else { v40 = load_reg ( @@a2@@ , Number ) ; gen_st32 ( v40 , v55 , Number ) ; } tcg_gen_addi_i32 ( v55 , v55 , Number ) ; } if ( ( @@v51@@ & Number ) == Number ) tcg_gen_addi_i32 ( v55 , v55 , - @@v15@@ ) ; store_reg ( ( __int64 ) @@a2@@ , Number , v55 ) ; if ( ( @@v51@@ & Number ) == Number ) store_reg_from_load ( @@a1@@ , ( __int64 ) @@a2@@ , Number , v40 ) ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) goto LABEL_219 ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) goto LABEL_219 ; v8 = @@v51@@ & Number ; v23 = load_reg ( @@a2@@ , ( @@v51@@ >> Number ) & Number ) ; v3 = ( unsigned __int8 ) @@v51@@ >> Number ; if ( v3 == Number ) { gen_revsh ( v23 ) ; } else { if ( v3 > Number ) goto LABEL_219 ; if ( ( unsigned __int8 ) @@v51@@ >> Number ) { if ( v3 != Number ) goto LABEL_219 ; gen_rev16 ( v23 ) ; } else { tcg_gen_bswap32_i32 ( v23 , v23 ) ; } } break ; case Number : if ( ! arm_feature ( @@a1@@ , Number ) ) goto LABEL_219 ; gen_exception_insn ( @@a2@@ , Number , Number ) ; return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ( @@v51@@ & Number ) != Number ) { @@a2@@ [ Number ] = ( @@v51@@ >> Number ) & Number ; @@a2@@ [ Number ] = @@v51@@ & Number ; } else { gen_nop_hint ( @@a2@@ , ( unsigned __int8 ) @@v51@@ >> Number ) ; } return __readfsqword ( Number ) ^ @@v61@@ ; default : goto LABEL_219 ; } goto LABEL_187 ; case Number : @@v48@@ = Number ; @@v52@@ = ( @@v51@@ >> Number ) & Number ; v54 = load_reg ( @@a2@@ , @@v52@@ ) ; for ( k = Number ; k <= Number ; ++ k ) { if ( ( @@v51@@ & ( Number << k ) ) != Number ) { if ( ( @@v51@@ & Number ) != Number ) { v42 = gen_ld32 ( v54 , Number ) ; if ( @@v52@@ == k ) @@v48@@ = v42 ; else store_reg ( ( __int64 ) @@a2@@ , k , v42 ) ; } else { v43 = load_reg ( @@a2@@ , k ) ; gen_st32 ( v43 , v54 , Number ) ; } tcg_gen_addi_i32 ( v54 , v54 , Number ) ; } } if ( ( @@v51@@ & ( Number << @@v52@@ ) ) != Number ) { if ( ( @@v51@@ & Number ) != Number ) store_reg ( ( __int64 ) @@a2@@ , @@v52@@ , @@v48@@ ) ; LABEL_205 : tcg_temp_free_i32 ( v54 ) ; } else { store_reg ( ( __int64 ) @@a2@@ , @@v52@@ , v54 ) ; } return __readfsqword ( Number ) ^ @@v61@@ ; case Number : v50 = ( @@v51@@ >> Number ) & Number ; if ( v50 == Number ) goto LABEL_219 ; if ( v50 == Number ) { gen_set_pc_im ( * @@a2@@ ) ; @@a2@@ [ Number ] = Number ; } else { @@a2@@ [ Number ] = gen_new_label ( ) ; gen_test_cc ( v50 ^ Number , @@a2@@ [ Number ] ) ; @@a2@@ [ Number ] = Number ; gen_jmp ( @@a2@@ , Number * ( char ) @@v51@@ + * @@a2@@ + Number ) ; } return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ( @@v51@@ & Number ) != Number ) { if ( disas_thumb2_insn ( @@a1@@ , @@a2@@ , @@v51@@ ) ) LABEL_218 : gen_exception_insn ( @@a2@@ , Number , Number ) ; } else { gen_jmp ( @@a2@@ , Number * ( ( int ) ( @@v51@@ << Number ) >> Number ) + * @@a2@@ + Number ) ; } return __readfsqword ( Number ) ^ @@v61@@ ; case Number : if ( ! disas_thumb2_insn ( @@a1@@ , @@a2@@ , @@v51@@ ) ) return __readfsqword ( Number ) ^ @@v61@@ ; goto LABEL_218 ; default : return __readfsqword ( Number ) ^ @@v61@@ ; } }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "int"}, "location": "r64"}, {"n": "v52", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v51", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v48", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v61", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}