mirror of
				https://github.com/yuzu-emu/unicorn.git
				synced 2025-11-04 14:14:57 +00:00 
			
		
		
		
	target/arm: Implement the GMI instruction
Backports commit 438efea0bb639c9c2dfb42c8d9459e21aa183c8a from qemu
This commit is contained in:
		
							parent
							
								
									911a6b57ed
								
							
						
					
					
						commit
						13fd83fcc9
					
				| 
						 | 
				
			
			@ -5569,6 +5569,21 @@ static void disas_data_proc_2src(DisasContext *s, uint32_t insn)
 | 
			
		|||
                                             cpu_reg_sp(s, rn));
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 5: /* GMI */
 | 
			
		||||
        if (sf == 0 || !dc_isar_feature(aa64_mte_insn_reg, s)) {
 | 
			
		||||
            goto do_unallocated;
 | 
			
		||||
        } else {
 | 
			
		||||
            TCGv_i64 t1 = tcg_const_i64(tcg_ctx, 1);
 | 
			
		||||
            TCGv_i64 t2 = tcg_temp_new_i64(tcg_ctx);
 | 
			
		||||
 | 
			
		||||
            tcg_gen_extract_i64(tcg_ctx, t2, cpu_reg_sp(s, rn), 56, 4);
 | 
			
		||||
            tcg_gen_shl_i64(tcg_ctx, t1, t1, t2);
 | 
			
		||||
            tcg_gen_or_i64(tcg_ctx, cpu_reg(s, rd), cpu_reg(s, rm), t1);
 | 
			
		||||
 | 
			
		||||
            tcg_temp_free_i64(tcg_ctx, t1);
 | 
			
		||||
            tcg_temp_free_i64(tcg_ctx, t2);
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 8: /* LSLV */
 | 
			
		||||
        handle_shift_reg(s, A64_SHIFT_TYPE_LSL, sf, rm, rn, rd);
 | 
			
		||||
        break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue