Browse Source

Fix priority of virtual vs. illegal instruction exceptions for HLV/HSV

Resolves #551
pull/552/head
Andrew Waterman 6 years ago
parent
commit
77024fa1d1
  1. 2
      riscv/insns/hlv_b.h
  2. 2
      riscv/insns/hlv_bu.h
  3. 2
      riscv/insns/hlv_d.h
  4. 2
      riscv/insns/hlv_h.h
  5. 2
      riscv/insns/hlv_hu.h
  6. 2
      riscv/insns/hlv_w.h
  7. 2
      riscv/insns/hlv_wu.h
  8. 2
      riscv/insns/hlvx_hu.h
  9. 2
      riscv/insns/hlvx_wu.h
  10. 2
      riscv/insns/hsv_b.h
  11. 2
      riscv/insns/hsv_d.h
  12. 2
      riscv/insns/hsv_h.h
  13. 2
      riscv/insns/hsv_w.h

2
riscv/insns/hlv_b.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_int8(RS1));

2
riscv/insns/hlv_bu.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_uint8(RS1));

2
riscv/insns/hlv_d.h

@ -1,5 +1,5 @@
require_extension('H');
require_rv64;
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_int64(RS1));

2
riscv/insns/hlv_h.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_int16(RS1));

2
riscv/insns/hlv_hu.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_uint16(RS1));

2
riscv/insns/hlv_w.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_int32(RS1));

2
riscv/insns/hlv_wu.h

@ -1,5 +1,5 @@
require_extension('H');
require_rv64;
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_uint32(RS1));

2
riscv/insns/hlvx_hu.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_x_uint16(RS1));

2
riscv/insns/hlvx_wu.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
WRITE_RD(MMU.guest_load_x_uint32(RS1));

2
riscv/insns/hsv_b.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
MMU.guest_store_uint8(RS1, RS2);

2
riscv/insns/hsv_d.h

@ -1,5 +1,5 @@
require_extension('H');
require_rv64;
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
MMU.guest_store_uint64(RS1, RS2);

2
riscv/insns/hsv_h.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
MMU.guest_store_uint16(RS1, RS2);

2
riscv/insns/hsv_w.h

@ -1,4 +1,4 @@
require_extension('H');
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
require_novirt();
require_privilege(get_field(STATE.hstatus, HSTATUS_HU) ? PRV_U : PRV_S);
MMU.guest_store_uint32(RS1, RS2);

Loading…
Cancel
Save