Message ID | 20230529121719.179507-5-liweiwei@iscas.ac.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: Fix mstatus related problems | expand |
On 5/29/23 09:17, Weiwei Li wrote: > SXL is initialized as env->misa_mxl which is also the mxl value. > So we can just remain it unchanged to keep it read-only. > > Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn> > Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn> > --- Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > target/riscv/csr.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index 6ac11d1f11..25345f3153 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -1321,10 +1321,6 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno, > > mstatus = (mstatus & ~mask) | (val & mask); > > - if (xl > MXL_RV32) { > - /* SXL field is for now read only */ > - mstatus = set_field(mstatus, MSTATUS64_SXL, xl); > - } > env->mstatus = mstatus; > > /*
On Mon, May 29, 2023 at 10:18 PM Weiwei Li <liweiwei@iscas.ac.cn> wrote: > > SXL is initialized as env->misa_mxl which is also the mxl value. > So we can just remain it unchanged to keep it read-only. > > Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn> > Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/csr.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index 6ac11d1f11..25345f3153 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -1321,10 +1321,6 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno, > > mstatus = (mstatus & ~mask) | (val & mask); > > - if (xl > MXL_RV32) { > - /* SXL field is for now read only */ > - mstatus = set_field(mstatus, MSTATUS64_SXL, xl); > - } > env->mstatus = mstatus; > > /* > -- > 2.25.1 > >
On 2023/5/29 20:17, Weiwei Li wrote: > SXL is initialized as env->misa_mxl which is also the mxl value. > So we can just remain it unchanged to keep it read-only. > > Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn> > Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn> > --- > target/riscv/csr.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/target/riscv/csr.c b/target/riscv/csr.c > index 6ac11d1f11..25345f3153 100644 > --- a/target/riscv/csr.c > +++ b/target/riscv/csr.c > @@ -1321,10 +1321,6 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno, > > mstatus = (mstatus & ~mask) | (val & mask); > > - if (xl > MXL_RV32) { > - /* SXL field is for now read only */ > - mstatus = set_field(mstatus, MSTATUS64_SXL, xl); > - } Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Zhiwei > env->mstatus = mstatus; > > /*
diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 6ac11d1f11..25345f3153 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -1321,10 +1321,6 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno, mstatus = (mstatus & ~mask) | (val & mask); - if (xl > MXL_RV32) { - /* SXL field is for now read only */ - mstatus = set_field(mstatus, MSTATUS64_SXL, xl); - } env->mstatus = mstatus; /*