[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/5] target/riscv: Fix effective address for pointer mask
From: |
Weiwei Li |
Subject: |
[PATCH 1/5] target/riscv: Fix effective address for pointer mask |
Date: |
Mon, 27 Mar 2023 18:00:23 +0800 |
Since pointer mask works on effective address, and the xl works on the
generation of effective address, so xl related calculation should be done
before pointer mask.
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn>
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn>
---
target/riscv/translate.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/target/riscv/translate.c b/target/riscv/translate.c
index 0ee8ee147d..bf0e2d318e 100644
--- a/target/riscv/translate.c
+++ b/target/riscv/translate.c
@@ -568,11 +568,15 @@ static TCGv get_address(DisasContext *ctx, int rs1, int
imm)
TCGv src1 = get_gpr(ctx, rs1, EXT_NONE);
tcg_gen_addi_tl(addr, src1, imm);
+
+ if (get_xl(ctx) == MXL_RV32) {
+ tcg_gen_ext32u_tl(addr, addr);
+ }
+
if (ctx->pm_mask_enabled) {
tcg_gen_andc_tl(addr, addr, pm_mask);
- } else if (get_xl(ctx) == MXL_RV32) {
- tcg_gen_ext32u_tl(addr, addr);
}
+
if (ctx->pm_base_enabled) {
tcg_gen_or_tl(addr, addr, pm_base);
}
@@ -586,11 +590,15 @@ static TCGv get_address_indexed(DisasContext *ctx, int
rs1, TCGv offs)
TCGv src1 = get_gpr(ctx, rs1, EXT_NONE);
tcg_gen_add_tl(addr, src1, offs);
+
+ if (get_xl(ctx) == MXL_RV32) {
+ tcg_gen_ext32u_tl(addr, addr);
+ }
+
if (ctx->pm_mask_enabled) {
tcg_gen_andc_tl(addr, addr, pm_mask);
- } else if (get_xl(ctx) == MXL_RV32) {
- tcg_gen_ext32u_tl(addr, addr);
}
+
if (ctx->pm_base_enabled) {
tcg_gen_or_tl(addr, addr, pm_base);
}
--
2.25.1
- Re: [PATCH 5/5] target/riscv: Add pointer mask support for instruction fetch, (continued)
[PATCH 3/5] target/riscv: Fix pointer mask transformation for vector address, Weiwei Li, 2023/03/27
[PATCH 1/5] target/riscv: Fix effective address for pointer mask,
Weiwei Li <=
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, Daniel Henrique Barboza, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, LIU Zhiwei, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, liweiwei, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, Richard Henderson, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, LIU Zhiwei, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, liweiwei, 2023/03/27
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, LIU Zhiwei, 2023/03/28
- Re: [PATCH 1/5] target/riscv: Fix effective address for pointer mask, liweiwei, 2023/03/28
[PATCH 2/5] target/riscv: Use sign-extended data address when xl = 32, Weiwei Li, 2023/03/27