qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 12/14] target/riscv: Split out the vill from vtype


From: Richard Henderson
Subject: Re: [PATCH v2 12/14] target/riscv: Split out the vill from vtype
Date: Wed, 10 Nov 2021 12:23:37 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 11/10/21 8:04 AM, LIU Zhiwei wrote:
We need not specially process vtype when XLEN changes.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
---
  target/riscv/cpu.h           |  1 +
  target/riscv/csr.c           | 15 ++++++++++++++-
  target/riscv/machine.c       |  1 +
  target/riscv/vector_helper.c |  7 ++-----
  4 files changed, 18 insertions(+), 6 deletions(-)

This patch should come before patch 6, which is over-complicated.

+    target_ulong vill;

This could be bool, though there's no good place to slot it that does not result in unused padding. Comments should be added to show that this bit is now missing from vtype.

diff --git a/target/riscv/machine.c b/target/riscv/machine.c
index 19e982d3f0..cc4dda4b93 100644
--- a/target/riscv/machine.c
+++ b/target/riscv/machine.c
@@ -104,6 +104,7 @@ static const VMStateDescription vmstate_vector = {
              VMSTATE_UINTTL(env.vl, RISCVCPU),
              VMSTATE_UINTTL(env.vstart, RISCVCPU),
              VMSTATE_UINTTL(env.vtype, RISCVCPU),
+            VMSTATE_UINTTL(env.vill, RISCVCPU),
              VMSTATE_END_OF_LIST()

This will need a bump to version.

@@ -45,11 +45,8 @@ target_ulong HELPER(vsetvl)(CPURISCVState *env, target_ulong 
s1,
      }
      if ((sew > cpu->cfg.elen) || vill || (ediv != 0) || (reserved != 0)) {
          /* only set vill bit. */
-        if (xlen < TARGET_LONG_BITS) {
-            env->vtype = FIELD_DP64(0, VTYPE, VILL_XLEN32, 1);
-        } else {
-            env->vtype = FIELD_DP64(0, VTYPE, VILL, 1);
-        }
+        env->vill = 1;
+        env->vtype = 0;

This is fine.

You're missing the updates to cpu_get_tb_cpu_state.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]