{"name": "gen_iwmmxt_shift", "code": "__int64 __fastcall gen_iwmmxt_shift ( __int16 @@a1@@ , unsigned int @@a2@@ , int @@a3@@ ) { unsigned int @@v5@@ ; int @@v6@@ ; @@v6@@ = @@a1@@ & Number ; if ( ( @@a1@@ & Number ) != Number ) { if ( ( @@a1@@ & Number ) <= Number || ( @@a1@@ & Number ) > Number ) return Number L ; @@v5@@ = iwmmxt_load_creg ( @@v6@@ ) ; tcg_gen_andi_i32 ( @@v5@@ , @@v5@@ , @@a2@@ ) ; } else { @@v5@@ = new_tmp ( ) ; iwmmxt_load_reg ( cpu_V0 , @@v6@@ ) ; tcg_gen_trunc_i64_i32 ( @@v5@@ , cpu_V0 ) ; tcg_gen_andi_i32 ( @@v5@@ , @@v5@@ , @@a2@@ ) ; } tcg_gen_mov_i32 ( @@a3@@ , @@v5@@ ) ; dead_tmp ( @@v5@@ ) ; return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int16", "s": 2}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}]}