OSDN Git Service

RISC-V: XTheadMemPair: Remove register restrictions for store-pair
authorChristoph Müllner <christoph.muellner@vrull.eu>
Mon, 20 Feb 2023 09:56:12 +0000 (10:56 +0100)
committerPalmer Dabbelt <palmer@rivosinc.com>
Thu, 2 Mar 2023 00:59:50 +0000 (16:59 -0800)
The XTheadMemPair does not define any restrictions for store-pair
instructions (th.sdd or th.swd). However, the current code enforces
the restrictions that are required for load-pair instructions.
Let's fix this by removing this code.

Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com>
Message-ID: <20230220095612.1529031-1-christoph.muellner@vrull.eu>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
target/riscv/insn_trans/trans_xthead.c.inc

index be87c34..cf1731b 100644 (file)
@@ -980,10 +980,6 @@ static bool trans_th_lwud(DisasContext *ctx, arg_th_pair *a)
 static bool gen_storepair_tl(DisasContext *ctx, arg_th_pair *a, MemOp memop,
                              int shamt)
 {
-    if (a->rs == a->rd1 || a->rs == a->rd2 || a->rd1 == a->rd2) {
-        return false;
-    }
-
     TCGv data1 = get_gpr(ctx, a->rd1, EXT_NONE);
     TCGv data2 = get_gpr(ctx, a->rd2, EXT_NONE);
     TCGv addr1 = tcg_temp_new();