diff options
Diffstat (limited to 'riscv/insns')
-rw-r--r-- | riscv/insns/hlv_b.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_bu.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_d.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_h.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_hu.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_w.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlv_wu.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlvx_hu.h | 2 | ||||
-rw-r--r-- | riscv/insns/hlvx_wu.h | 2 | ||||
-rw-r--r-- | riscv/insns/hsv_b.h | 2 | ||||
-rw-r--r-- | riscv/insns/hsv_d.h | 2 | ||||
-rw-r--r-- | riscv/insns/hsv_h.h | 2 | ||||
-rw-r--r-- | riscv/insns/hsv_w.h | 2 | ||||
-rw-r--r-- | riscv/insns/sfence_vma.h | 2 | ||||
-rw-r--r-- | riscv/insns/sret.h | 4 | ||||
-rw-r--r-- | riscv/insns/wfi.h | 2 |
16 files changed, 17 insertions, 17 deletions
diff --git a/riscv/insns/hlv_b.h b/riscv/insns/hlv_b.h index 86192c6..2ccb046 100644 --- a/riscv/insns/hlv_b.h +++ b/riscv/insns/hlv_b.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_int8(RS1)); diff --git a/riscv/insns/hlv_bu.h b/riscv/insns/hlv_bu.h index 2f95194..560f94a 100644 --- a/riscv/insns/hlv_bu.h +++ b/riscv/insns/hlv_bu.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_uint8(RS1)); diff --git a/riscv/insns/hlv_d.h b/riscv/insns/hlv_d.h index 1bbd027..f432b65 100644 --- a/riscv/insns/hlv_d.h +++ b/riscv/insns/hlv_d.h @@ -1,5 +1,5 @@ require_extension('H'); require_rv64; require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_int64(RS1)); diff --git a/riscv/insns/hlv_h.h b/riscv/insns/hlv_h.h index 6825fe4..4cb07e9 100644 --- a/riscv/insns/hlv_h.h +++ b/riscv/insns/hlv_h.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_int16(RS1)); diff --git a/riscv/insns/hlv_hu.h b/riscv/insns/hlv_hu.h index 3d9d98e..adec2f0 100644 --- a/riscv/insns/hlv_hu.h +++ b/riscv/insns/hlv_hu.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_uint16(RS1)); diff --git a/riscv/insns/hlv_w.h b/riscv/insns/hlv_w.h index be420d3..b2e102f 100644 --- a/riscv/insns/hlv_w.h +++ b/riscv/insns/hlv_w.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_int32(RS1)); diff --git a/riscv/insns/hlv_wu.h b/riscv/insns/hlv_wu.h index 851be27..1f921c0 100644 --- a/riscv/insns/hlv_wu.h +++ b/riscv/insns/hlv_wu.h @@ -1,5 +1,5 @@ require_extension('H'); require_rv64; require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_uint32(RS1)); diff --git a/riscv/insns/hlvx_hu.h b/riscv/insns/hlvx_hu.h index 19dbcfb..3eb699c 100644 --- a/riscv/insns/hlvx_hu.h +++ b/riscv/insns/hlvx_hu.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(MMU.guest_load_x_uint16(RS1)); diff --git a/riscv/insns/hlvx_wu.h b/riscv/insns/hlvx_wu.h index a395230..33e2fa1 100644 --- a/riscv/insns/hlvx_wu.h +++ b/riscv/insns/hlvx_wu.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); WRITE_RD(sext_xlen(MMU.guest_load_x_uint32(RS1))); diff --git a/riscv/insns/hsv_b.h b/riscv/insns/hsv_b.h index a5c34ff..15f6a26 100644 --- a/riscv/insns/hsv_b.h +++ b/riscv/insns/hsv_b.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); MMU.guest_store_uint8(RS1, RS2); diff --git a/riscv/insns/hsv_d.h b/riscv/insns/hsv_d.h index 14c6d5d..83c3376 100644 --- a/riscv/insns/hsv_d.h +++ b/riscv/insns/hsv_d.h @@ -1,5 +1,5 @@ require_extension('H'); require_rv64; require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); MMU.guest_store_uint64(RS1, RS2); diff --git a/riscv/insns/hsv_h.h b/riscv/insns/hsv_h.h index 1cfe77a..eaa2a2c 100644 --- a/riscv/insns/hsv_h.h +++ b/riscv/insns/hsv_h.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); MMU.guest_store_uint16(RS1, RS2); diff --git a/riscv/insns/hsv_w.h b/riscv/insns/hsv_w.h index d54f673..0d2c3d4 100644 --- a/riscv/insns/hsv_w.h +++ b/riscv/insns/hsv_w.h @@ -1,4 +1,4 @@ require_extension('H'); require_novirt(); -require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S); +require_privilege(get_field(STATE.hstatus->read(), HSTATUS_HU) ? PRV_U : PRV_S); MMU.guest_store_uint32(RS1, RS2); diff --git a/riscv/insns/sfence_vma.h b/riscv/insns/sfence_vma.h index a14865f..7d6c01a 100644 --- a/riscv/insns/sfence_vma.h +++ b/riscv/insns/sfence_vma.h @@ -1,7 +1,7 @@ require_extension('S'); require_impl(IMPL_MMU); if (STATE.v) { - if (STATE.prv == PRV_U || get_field(STATE.hstatus, HSTATUS_VTVM)) + if (STATE.prv == PRV_U || get_field(STATE.hstatus->read(), HSTATUS_VTVM)) require_novirt(); } else { require_privilege(get_field(STATE.mstatus->read(), MSTATUS_TVM) ? PRV_M : PRV_S); diff --git a/riscv/insns/sret.h b/riscv/insns/sret.h index 8436cda..72b44ef 100644 --- a/riscv/insns/sret.h +++ b/riscv/insns/sret.h @@ -1,6 +1,6 @@ require_extension('S'); if (STATE.v) { - if (STATE.prv == PRV_U || get_field(STATE.hstatus, HSTATUS_VTSR)) + if (STATE.prv == PRV_U || get_field(STATE.hstatus->read(), HSTATUS_VTSR)) require_novirt(); } else { require_privilege(get_field(STATE.mstatus->read(), MSTATUS_TSR) ? PRV_M : PRV_S); @@ -17,6 +17,6 @@ s = set_field(s, MSTATUS_SPP, PRV_U); STATE.sstatus->write(s); p->set_privilege(prev_prv); if (!STATE.v) { - reg_t prev_virt = get_field(STATE.hstatus, HSTATUS_SPV); + reg_t prev_virt = get_field(STATE.hstatus->read(), HSTATUS_SPV); p->set_virt(prev_virt); } diff --git a/riscv/insns/wfi.h b/riscv/insns/wfi.h index efe62fd..299cb01 100644 --- a/riscv/insns/wfi.h +++ b/riscv/insns/wfi.h @@ -3,7 +3,7 @@ if (STATE.v && STATE.prv == PRV_U) { } else if (get_field(STATE.mstatus->read(), MSTATUS_TW)) { require_privilege(PRV_M); } else if (STATE.v) { // VS-mode - if (get_field(STATE.hstatus, HSTATUS_VTW)) + if (get_field(STATE.hstatus->read(), HSTATUS_VTW)) require_novirt(); } else { require_privilege(PRV_S); |