Browse Source
We add new HFENCE, HLV, and HSV instructions for HS-mode which are defined as part of the RISC-V hypervisor extension. Signed-off-by: Anup Patel <anup.patel@wdc.com>pull/493/head
committed by
Anup Patel
16 changed files with 81 additions and 0 deletions
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(PRV_S); |
|||
require_novirt(); |
|||
MMU.flush_tlb(); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(PRV_S); |
|||
require_novirt(); |
|||
MMU.flush_tlb(); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_int8(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_uint8(RS1)); |
|||
@ -0,0 +1,5 @@ |
|||
require_extension('H'); |
|||
require_rv64; |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_int64(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_int16(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_uint16(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_int32(RS1)); |
|||
@ -0,0 +1,5 @@ |
|||
require_extension('H'); |
|||
require_rv64; |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_uint32(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_x_uint16(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
WRITE_RD(MMU.guest_load_x_uint32(RS1)); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
MMU.guest_store_uint8(RS1, RS2); |
|||
@ -0,0 +1,5 @@ |
|||
require_extension('H'); |
|||
require_rv64; |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
MMU.guest_store_uint64(RS1, RS2); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
MMU.guest_store_uint16(RS1, RS2); |
|||
@ -0,0 +1,4 @@ |
|||
require_extension('H'); |
|||
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_S : PRV_U); |
|||
require_novirt(); |
|||
MMU.guest_store_uint32(RS1, RS2); |
|||
Loading…
Reference in new issue