[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 05/13] target/riscv: Support UXL32 for shift instruction
From: |
LIU Zhiwei |
Subject: |
[RFC PATCH 05/13] target/riscv: Support UXL32 for shift instruction |
Date: |
Thu, 5 Aug 2021 10:53:04 +0800 |
Reuse 32-bit right shift instructions.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
---
target/riscv/insn_trans/trans_rvi.c.inc | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/target/riscv/insn_trans/trans_rvi.c.inc
b/target/riscv/insn_trans/trans_rvi.c.inc
index 6201c07795..698a28731e 100644
--- a/target/riscv/insn_trans/trans_rvi.c.inc
+++ b/target/riscv/insn_trans/trans_rvi.c.inc
@@ -303,11 +303,17 @@ static bool trans_slli(DisasContext *ctx, arg_slli *a)
static bool trans_srli(DisasContext *ctx, arg_srli *a)
{
+ if (ctx->uxl32) {
+ return trans_srliw(ctx, a);
+ }
return gen_shifti(ctx, a, tcg_gen_shr_tl);
}
static bool trans_srai(DisasContext *ctx, arg_srai *a)
{
+ if (ctx->uxl32) {
+ return trans_sraiw(ctx, a);
+ }
return gen_shifti(ctx, a, tcg_gen_sar_tl);
}
@@ -343,11 +349,17 @@ static bool trans_xor(DisasContext *ctx, arg_xor *a)
static bool trans_srl(DisasContext *ctx, arg_srl *a)
{
+ if (ctx->uxl32) {
+ return trans_srlw(ctx, a);
+ }
return gen_shift(ctx, a, &tcg_gen_shr_tl);
}
static bool trans_sra(DisasContext *ctx, arg_sra *a)
{
+ if (ctx->uxl32) {
+ return trans_sraw(ctx, a);
+ }
return gen_shift(ctx, a, &tcg_gen_sar_tl);
}
--
2.17.1
- Re: [RFC PATCH 02/13] target/riscv: Support UXL32 for branch instructions, (continued)
[RFC PATCH 03/13] target/riscv: Support UXL32 on 64-bit cpu for load/store, LIU Zhiwei, 2021/08/04
[RFC PATCH 04/13] target/riscv: Support UXL32 for slit/sltiu, LIU Zhiwei, 2021/08/04
[RFC PATCH 05/13] target/riscv: Support UXL32 for shift instruction,
LIU Zhiwei <=
[RFC PATCH 06/13] target/riscv: Fix div instructions, LIU Zhiwei, 2021/08/04
[RFC PATCH 07/13] target/riscv: Support UXL32 for RVM, LIU Zhiwei, 2021/08/04
[RFC PATCH 08/13] target/riscv: Support UXL32 for vector instructions, LIU Zhiwei, 2021/08/04
[RFC PATCH 09/13] target/riscv: Support UXL32 for atomic instructions, LIU Zhiwei, 2021/08/04
[RFC PATCH 10/13] target/riscv: Support UXL32 for float instructions, LIU Zhiwei, 2021/08/04
[RFC PATCH 11/13] target/riscv: Fix srow, LIU Zhiwei, 2021/08/04