#endif
}
-static void riscv_cpu_sync_misa_cfg(CPURISCVState *env)
-{
- uint32_t ext = 0;
-
- if (riscv_has_ext(env, RVI)) {
- ext |= RVI;
- }
- if (riscv_has_ext(env, RVE)) {
- ext |= RVE;
- }
- if (riscv_has_ext(env, RVM)) {
- ext |= RVM;
- }
- if (riscv_has_ext(env, RVA)) {
- ext |= RVA;
- }
- if (riscv_has_ext(env, RVF)) {
- ext |= RVF;
- }
- if (riscv_has_ext(env, RVD)) {
- ext |= RVD;
- }
- if (riscv_has_ext(env, RVC)) {
- ext |= RVC;
- }
- if (riscv_has_ext(env, RVS)) {
- ext |= RVS;
- }
- if (riscv_has_ext(env, RVU)) {
- ext |= RVU;
- }
- if (riscv_has_ext(env, RVH)) {
- ext |= RVH;
- }
- if (riscv_has_ext(env, RVV)) {
- ext |= RVV;
- }
- if (riscv_has_ext(env, RVJ)) {
- ext |= RVJ;
- }
-
- env->misa_ext = env->misa_ext_mask = ext;
-}
-
static void riscv_cpu_validate_misa_priv(CPURISCVState *env, Error **errp)
{
if (riscv_has_ext(env, RVH) && env->priv_ver < PRIV_VERSION_1_12_0) {
set_priv_version(env, priv_version);
}
- /*
- * We can't be sure of whether we set defaults during cpu_init()
- * or whether the user enabled/disabled some bits via cpu->cfg
- * flags. Sync env->misa_ext with cpu->cfg now to allow us to
- * use just env->misa_ext later.
- */
- riscv_cpu_sync_misa_cfg(env);
-
riscv_cpu_validate_misa_priv(env, &local_err);
if (local_err != NULL) {
error_propagate(errp, local_err);