Browse Source

Fix require_vector_vs() for H-extension

We should check both MSTATUS.VS and VSSTATUS.VS when updating
vector state with virt-on. This patch fixes require_vector_vs()
macro accordingly.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
pull/647/head
Anup Patel 6 years ago
committed by Anup Patel
parent
commit
6111fdd03e
  1. 2
      riscv/decode.h

2
riscv/decode.h

@ -244,7 +244,7 @@ private:
#define require_fp require((((STATE.mstatus & MSTATUS_FS) != 0) && (STATE.v == 0)) || (((STATE.mstatus & MSTATUS_FS) != 0) && ((STATE.vsstatus & SSTATUS_FS) != 0) && STATE.v))
#define require_accelerator require((STATE.mstatus & MSTATUS_XS) != 0)
#define require_vector_vs require((STATE.mstatus & MSTATUS_VS) != 0);
#define require_vector_vs require((((STATE.mstatus & MSTATUS_VS) != 0) && (STATE.v == 0)) || (((STATE.mstatus & MSTATUS_VS) != 0) && ((STATE.vsstatus & SSTATUS_VS) != 0) && STATE.v))
#define require_vector(alu) \
do { \
require_vector_vs; \

Loading…
Cancel
Save