{"name": "gen_helper_set_cp15", "code": "unsigned __int64 __fastcall gen_helper_set_cp15 ( int @@a1@@ , int @@a2@@ , int @@a3@@ ) { __int64 @@v4@@ [ Number ] ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; @@v4@@ [ Number ] = @@a1@@ ; @@v4@@ [ Number ] = @@a2@@ ; @@v4@@ [ Number ] = @@a3@@ ; tcg_gen_helperN ( ( __int64 ) & helper_set_cp15 , Number , Number , Number , 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_cp15_insn", "code": "_BOOL8 __fastcall disas_cp15_insn ( __int64 @@a1@@ , _DWORD * @@a2@@ , unsigned int @@a3@@ ) { unsigned int @@v4@@ ; int @@v6@@ ; unsigned int @@v7@@ ; unsigned int v8 ; unsigned int v9 ; if ( arm_feature ( @@a1@@ , Number ) ) return Number L ; if ( ( @@a3@@ & Number ) == Number ) return ( @@a3@@ & Number ) != Number ; if ( ( @@a3@@ & Number ) == Number ) return Number L ; @@v4@@ = @@a3@@ & Number ; if ( ( @@a3@@ & Number ) != Number ) { if ( @@v4@@ > Number ) goto LABEL_22 ; if ( @@v4@@ != Number ) { if ( @@v4@@ > Number ) goto LABEL_22 ; if ( @@v4@@ != Number ) { if ( @@v4@@ <= Number ) { if ( @@v4@@ == Number ) return Number L ; if ( @@v4@@ <= Number && @@v4@@ == Number && arm_feature ( @@a1@@ , Number ) ) return Number L ; } goto LABEL_22 ; } } } if ( arm_feature ( @@a1@@ , Number ) ) return Number L ; LABEL_22 : if ( ! ( unsigned int ) cp15_user_ok ( @@a1@@ , @@a3@@ ) ) return Number L ; @@v6@@ = ( unsigned __int16 ) @@a3@@ >> Number ; if ( ( unsigned int ) cp15_tls_load_store ( @@a1@@ , @@a2@@ , @@a3@@ , @@v6@@ ) ) return Number L ; @@v7@@ = tcg_const_i32 ( @@a3@@ ) ; if ( ( @@a3@@ & Number ) != Number ) { v8 = tcg_temp_new_i32 ( ) ; gen_helper_get_cp15 ( v8 , cpu_env , @@v7@@ ) ; if ( @@v6@@ == Number ) tcg_temp_free_i32 ( v8 ) ; else store_reg ( ( __int64 ) @@a2@@ , @@v6@@ , v8 ) ; } else { v9 = load_reg ( @@a2@@ , @@v6@@ ) ; gen_helper_set_cp15 ( cpu_env , @@v7@@ , v9 ) ; tcg_temp_free_i32 ( v9 ) ; if ( ! arm_feature ( @@a1@@ , Number ) || ( @@a3@@ & Number ) != Number ) gen_lookup_tb ( @@a2@@ ) ; } tcg_temp_free_i32 ( @@v7@@ ) ; 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": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "v4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}]}