mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 10:25:28 +00:00
target/arm: Use tcg_gen_rotri_i32 for gen_swap_half
Rotate is the more compact and obvious way to swap 16-bit elements of a 32-bit word. Backports commit adefba76e8bf10dfb342094d2f5debfeedb1a74d from qemu
This commit is contained in:
parent
751ab7b24b
commit
4a1cc16eef
|
@ -457,11 +457,7 @@ static TCGv_i64 gen_muls_i64_i32(DisasContext *s, TCGv_i32 a, TCGv_i32 b)
|
|||
static void gen_swap_half(DisasContext *s, TCGv_i32 var)
|
||||
{
|
||||
TCGContext *tcg_ctx = s->uc->tcg_ctx;
|
||||
TCGv_i32 tmp = tcg_temp_new_i32(tcg_ctx);
|
||||
tcg_gen_shri_i32(tcg_ctx, tmp, var, 16);
|
||||
tcg_gen_shli_i32(tcg_ctx, var, var, 16);
|
||||
tcg_gen_or_i32(tcg_ctx, var, var, tmp);
|
||||
tcg_temp_free_i32(tcg_ctx, tmp);
|
||||
tcg_gen_rotri_i32(tcg_ctx, var, var, 16);
|
||||
}
|
||||
|
||||
/* Dual 16-bit add. Result placed in t0 and t1 is marked as dead.
|
||||
|
|
Loading…
Reference in a new issue