{"name": "tcg_gen_lshift", "code": "unsigned __int64 __fastcall tcg_gen_lshift ( int @@a1@@ , int @@a2@@ , __int64 @@a3@@ ) { unsigned __int64 @@v4@@ ; @@v4@@ = __readfsqword ( Number ) ; if ( @@a3@@ < Number ) tcg_gen_shri_i64 ( @@a1@@ , @@a2@@ , - @@a3@@ ) ; else tcg_gen_shli_i64 ( @@a1@@ , @@a2@@ , @@a3@@ ) ; return __readfsqword ( Number ) ^ @@v4@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "tcg_gen_shli_i64", "code": "unsigned __int64 __fastcall tcg_gen_shli_i64 ( int @@a1@@ , int @@a2@@ , __int64 @@a3@@ ) { unsigned int @@v4@@ ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; if ( @@a3@@ ) { @@v4@@ = tcg_const_i64 ( @@a3@@ ) ; tcg_gen_shl_i64 ( @@a1@@ , @@a2@@ , @@v4@@ ) ; tcg_temp_free_i64 ( @@v4@@ ) ; } else { tcg_gen_mov_i64 ( @@a1@@ , @@a2@@ ) ; } return __readfsqword ( Number ) ^ @@v5@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "tcg_gen_shri_i64", "code": "unsigned __int64 __fastcall tcg_gen_shri_i64 ( int @@a1@@ , int @@a2@@ , __int64 @@a3@@ ) { unsigned int @@v4@@ ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; if ( @@a3@@ ) { @@v4@@ = tcg_const_i64 ( @@a3@@ ) ; tcg_gen_shr_i64 ( @@a1@@ , @@a2@@ , @@v4@@ ) ; tcg_temp_free_i64 ( @@v4@@ ) ; } else { tcg_gen_mov_i64 ( @@a1@@ , @@a2@@ ) ; } return __readfsqword ( Number ) ^ @@v5@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_rot_rm_T1", "code": "unsigned __int64 __fastcall gen_rot_rm_T1 ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { unsigned int @@v7@@ ; unsigned int @@v8@@ ; unsigned int @@v9@@ ; unsigned int @@v10@@ ; int @@v11@@ ; int @@v12@@ ; int @@v13@@ ; __int64 @@v14@@ ; unsigned __int64 @@v15@@ ; @@v15@@ = __readfsqword ( Number ) ; @@v7@@ = tcg_temp_local_new_i64 ( ) ; @@v8@@ = tcg_temp_local_new_i64 ( ) ; @@v9@@ = tcg_temp_local_new_i64 ( ) ; @@v10@@ = tcg_temp_local_new_i64 ( ) ; if ( @@a2@@ == Number ) @@v14@@ = Number L ; else @@v14@@ = Number L ; if ( @@a3@@ == Number ) { tcg_gen_mov_i64 ( @@v10@@ , cpu_A0 ) ; gen_op_ld_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v7@@ , @@v10@@ ) ; } else { gen_op_mov_v_reg ( @@a2@@ , @@v7@@ , @@a3@@ ) ; } tcg_gen_mov_i64 ( @@v8@@ , dword_2E2A4 ) ; tcg_gen_andi_i64 ( @@v8@@ , @@v8@@ , @@v14@@ ) ; @@v11@@ = gen_new_label ( ) ; tcg_gen_brcondi_i64 ( Number , @@v8@@ , Number L , @@v11@@ ) ; if ( @@a2@@ > Number ) tcg_gen_mov_i64 ( cpu_tmp0 , @@v8@@ ) ; else tcg_gen_andi_i64 ( cpu_tmp0 , @@v8@@ , ( Number << ( @@a2@@ + Number ) ) - Number ) ; gen_extu ( @@a2@@ , @@v7@@ ) ; tcg_gen_mov_i64 ( @@v9@@ , @@v7@@ ) ; @@v12@@ = Number << @@a2@@ ; if ( @@a4@@ ) { tcg_gen_shr_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp0 ) ; tcg_gen_subfi_i64 ( cpu_tmp0 , @@v12@@ , cpu_tmp0 ) ; tcg_gen_shl_i64 ( @@v7@@ , @@v7@@ , cpu_tmp0 ) ; } else { tcg_gen_shl_i64 ( cpu_tmp4 , @@v7@@ , cpu_tmp0 ) ; tcg_gen_subfi_i64 ( cpu_tmp0 , @@v12@@ , cpu_tmp0 ) ; tcg_gen_shr_i64 ( @@v7@@ , @@v7@@ , cpu_tmp0 ) ; } tcg_gen_or_i64 ( @@v7@@ , @@v7@@ , cpu_tmp4 ) ; gen_set_label ( @@v11@@ ) ; if ( @@a3@@ == Number ) gen_op_st_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v7@@ , @@v10@@ ) ; else gen_op_mov_reg_v ( @@a2@@ , @@a3@@ , @@v7@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_set_cc_op ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; @@v13@@ = gen_new_label ( ) ; tcg_gen_brcondi_i64 ( Number , @@v8@@ , Number L , @@v13@@ ) ; gen_compute_eflags ( cpu_cc_src ) ; tcg_gen_andi_i64 ( cpu_cc_src , cpu_cc_src , Number ) ; tcg_gen_xor_i64 ( cpu_tmp0 , @@v9@@ , @@v7@@ ) ; tcg_gen_lshift ( cpu_tmp0 , cpu_tmp0 , Number - @@v12@@ ) ; tcg_gen_andi_i64 ( cpu_tmp0 , cpu_tmp0 , Number L ) ; tcg_gen_or_i64 ( cpu_cc_src , cpu_cc_src , cpu_tmp0 ) ; if ( @@a4@@ ) tcg_gen_shri_i64 ( @@v7@@ , @@v7@@ , @@v12@@ - Number ) ; tcg_gen_andi_i64 ( @@v7@@ , @@v7@@ , Number L ) ; tcg_gen_or_i64 ( cpu_cc_src , cpu_cc_src , @@v7@@ ) ; tcg_gen_discard_i64 ( cpu_cc_dst ) ; tcg_gen_movi_i32 ( cpu_cc_op , Number ) ; gen_set_label ( @@v13@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; tcg_temp_free_i64 ( @@v7@@ ) ; tcg_temp_free_i64 ( @@v8@@ ) ; tcg_temp_free_i64 ( @@v9@@ ) ; tcg_temp_free_i64 ( @@v10@@ ) ; return __readfsqword ( Number ) ^ @@v15@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v15", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "gen_rot_rm_im", "code": "unsigned __int64 __fastcall gen_rot_rm_im ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ ) { int @@v8@@ ; int @@v10@@ ; unsigned int @@v11@@ ; unsigned int @@v12@@ ; unsigned int @@v13@@ ; int @@v14@@ ; int @@v15@@ ; unsigned __int64 @@v16@@ ; @@v16@@ = __readfsqword ( Number ) ; @@v11@@ = tcg_temp_local_new_i64 ( ) ; @@v12@@ = tcg_temp_local_new_i64 ( ) ; @@v13@@ = tcg_temp_local_new_i64 ( ) ; if ( @@a2@@ == Number ) @@v10@@ = Number ; else @@v10@@ = Number ; if ( @@a3@@ == Number ) { tcg_gen_mov_i64 ( @@v13@@ , cpu_A0 ) ; gen_op_ld_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v11@@ , @@v13@@ ) ; } else { gen_op_mov_v_reg ( @@a2@@ , @@v11@@ , @@a3@@ ) ; } gen_extu ( @@a2@@ , @@v11@@ ) ; tcg_gen_mov_i64 ( @@v12@@ , @@v11@@ ) ; @@v8@@ = @@v10@@ & @@a4@@ ; @@v14@@ = Number << @@a2@@ ; if ( @@v8@@ ) { @@v15@@ = @@v8@@ & ( ( Number << ( @@a2@@ + Number ) ) - Number ) ; if ( @@a5@@ ) { tcg_gen_shri_i64 ( cpu_tmp4 , @@v11@@ , @@v15@@ ) ; tcg_gen_shli_i64 ( @@v11@@ , @@v11@@ , @@v14@@ - @@v15@@ ) ; } else { tcg_gen_shli_i64 ( cpu_tmp4 , @@v11@@ , @@v15@@ ) ; tcg_gen_shri_i64 ( @@v11@@ , @@v11@@ , @@v14@@ - @@v15@@ ) ; } tcg_gen_or_i64 ( @@v11@@ , @@v11@@ , cpu_tmp4 ) ; } if ( @@a3@@ == Number ) gen_op_st_v ( * ( _DWORD * ) ( @@a1@@ + Number ) + @@a2@@ , @@v11@@ , @@v13@@ ) ; else gen_op_mov_reg_v ( @@a2@@ , @@a3@@ , @@v11@@ ) ; if ( @@v8@@ ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) gen_op_set_cc_op ( * ( _DWORD * ) ( @@a1@@ + Number ) ) ; gen_compute_eflags ( cpu_cc_src ) ; tcg_gen_andi_i64 ( cpu_cc_src , cpu_cc_src , Number ) ; tcg_gen_xor_i64 ( cpu_tmp0 , @@v12@@ , @@v11@@ ) ; tcg_gen_lshift ( cpu_tmp0 , cpu_tmp0 , Number - @@v14@@ ) ; tcg_gen_andi_i64 ( cpu_tmp0 , cpu_tmp0 , Number L ) ; tcg_gen_or_i64 ( cpu_cc_src , cpu_cc_src , cpu_tmp0 ) ; if ( @@a5@@ ) tcg_gen_shri_i64 ( @@v11@@ , @@v11@@ , @@v14@@ - Number ) ; tcg_gen_andi_i64 ( @@v11@@ , @@v11@@ , Number L ) ; tcg_gen_or_i64 ( cpu_cc_src , cpu_cc_src , @@v11@@ ) ; tcg_gen_discard_i64 ( cpu_cc_dst ) ; tcg_gen_movi_i32 ( cpu_cc_op , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } tcg_temp_free_i64 ( @@v11@@ ) ; tcg_temp_free_i64 ( @@v12@@ ) ; tcg_temp_free_i64 ( @@v13@@ ) ; return __readfsqword ( Number ) ^ @@v16@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v13", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v12", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v16", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}