On 7/10/20 3:48 AM, frank.ch...@sifive.com wrote: > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index 228b9bdb5d..871c2ddfa1 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -317,6 +317,7 @@ static void riscv_cpu_reset(DeviceState *dev) > env->mstatus &= ~(MSTATUS_MIE | MSTATUS_MPRV); > env->mcause = 0; > env->pc = env->resetvec; > + env->vlenb = cpu->cfg.vlen >> 3; > #endif > cs->exception_index = EXCP_NONE; > env->load_res = -1; > diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h > index c02690ed0d..81c85bf4c2 100644 > --- a/target/riscv/cpu.h > +++ b/target/riscv/cpu.h > @@ -111,6 +111,7 @@ struct CPURISCVState { > target_ulong vl; > target_ulong vstart; > target_ulong vtype; > + target_ulong vlenb;
I don't see that you need this. The field is read-only, so the read_vlenb function can just return env_archcpu(env)->cfg.vlen >> 3 directly. r~