{"name": "gen_arm_shift_im", "code": "unsigned __int64 __fastcall gen_arm_shift_im ( int @@a1@@ , int @@a2@@ , int @@a3@@ , int @@a4@@ ) { int @@v6@@ ; unsigned int @@v7@@ ; unsigned __int64 @@v8@@ ; @@v6@@ = @@a3@@ ; @@v8@@ = __readfsqword ( Number ) ; if ( @@a2@@ == Number ) { if ( @@a3@@ ) { if ( @@a4@@ ) shifter_out_im ( @@a1@@ , @@a3@@ - Number ) ; tcg_gen_rotri_i32 ( @@a1@@ , @@a1@@ , @@v6@@ ) ; } else { @@v7@@ = load_cpu_offset ( Number ) ; if ( @@a4@@ ) shifter_out_im ( @@a1@@ , Number ) ; tcg_gen_shri_i32 ( @@a1@@ , @@a1@@ , Number ) ; tcg_gen_shli_i32 ( @@v7@@ , @@v7@@ , Number ) ; tcg_gen_or_i32 ( @@a1@@ , @@a1@@ , @@v7@@ ) ; dead_tmp ( @@v7@@ ) ; } } else if ( @@a2@@ <= Number ) { if ( @@a2@@ == Number ) { if ( ! @@a3@@ ) @@v6@@ = Number ; if ( @@a4@@ ) shifter_out_im ( @@a1@@ , @@v6@@ - Number ) ; if ( @@v6@@ == Number ) @@v6@@ = Number ; tcg_gen_sari_i32 ( @@a1@@ , @@a1@@ , @@v6@@ ) ; } else if ( @@a2@@ ) { if ( @@a2@@ == Number ) { if ( @@a3@@ ) { if ( @@a4@@ ) shifter_out_im ( @@a1@@ , @@a3@@ - Number ) ; tcg_gen_shri_i32 ( @@a1@@ , @@a1@@ , @@v6@@ ) ; } else { if ( @@a4@@ ) { tcg_gen_shri_i32 ( @@a1@@ , @@a1@@ , Number ) ; tcg_gen_st_i32 ( @@a1@@ , cpu_env , Number L ) ; } tcg_gen_movi_i32 ( @@a1@@ , Number ) ; } } } else if ( @@a3@@ ) { if ( @@a4@@ ) shifter_out_im ( @@a1@@ , Number - @@a3@@ ) ; tcg_gen_shli_i32 ( @@a1@@ , @@a1@@ , @@v6@@ ) ; } } return __readfsqword ( Number ) ^ @@v8@@ ; }", "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": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}