diff mbox series

[24/28] target/sh4: Improve swap.b translation

Message ID 20210614083800.1166166-25-richard.henderson@linaro.org
State Superseded
Headers show
Series tcg: bswap improvements | expand

Commit Message

Richard Henderson June 14, 2021, 8:37 a.m. UTC
Remove TCG_BSWAP_IZ and the preceding zero-extension.

Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 target/sh4/translate.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

-- 
2.25.1

Comments

Peter Maydell June 21, 2021, 3:16 p.m. UTC | #1
On Mon, 14 Jun 2021 at 09:54, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

> Remove TCG_BSWAP_IZ and the preceding zero-extension.

>

> Cc: Yoshinori Sato <ysato@users.sourceforge.jp>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  target/sh4/translate.c | 3 +--

>  1 file changed, 1 insertion(+), 2 deletions(-)

>

> diff --git a/target/sh4/translate.c b/target/sh4/translate.c

> index 147219759b..f45515952f 100644

> --- a/target/sh4/translate.c

> +++ b/target/sh4/translate.c

> @@ -676,8 +676,7 @@ static void _decode_opc(DisasContext * ctx)

>      case 0x6008:               /* swap.b Rm,Rn */

>         {

>              TCGv low = tcg_temp_new();

> -           tcg_gen_ext16u_i32(low, REG(B7_4));

> -           tcg_gen_bswap16_i32(low, low, TCG_BSWAP_IZ | TCG_BSWAP_OZ);

> +           tcg_gen_bswap16_i32(low, REG(B7_4), 0);

>              tcg_gen_deposit_i32(REG(B11_8), REG(B7_4), low, 0, 16);

>             tcg_temp_free(low);

>         }

> --


Reviewed-by: Peter Maydell <peter.maydell@linaro.org>


thanks
-- PMM
diff mbox series

Patch

diff --git a/target/sh4/translate.c b/target/sh4/translate.c
index 147219759b..f45515952f 100644
--- a/target/sh4/translate.c
+++ b/target/sh4/translate.c
@@ -676,8 +676,7 @@  static void _decode_opc(DisasContext * ctx)
     case 0x6008:		/* swap.b Rm,Rn */
 	{
             TCGv low = tcg_temp_new();
-	    tcg_gen_ext16u_i32(low, REG(B7_4));
-	    tcg_gen_bswap16_i32(low, low, TCG_BSWAP_IZ | TCG_BSWAP_OZ);
+	    tcg_gen_bswap16_i32(low, REG(B7_4), 0);
             tcg_gen_deposit_i32(REG(B11_8), REG(B7_4), low, 0, 16);
 	    tcg_temp_free(low);
 	}