diff --git a/riscv/csrs.cc b/riscv/csrs.cc index ea535f6fe..8b81a74d7 100644 --- a/riscv/csrs.cc +++ b/riscv/csrs.cc @@ -1410,7 +1410,7 @@ float_csr_t::float_csr_t(processor_t* const proc, const reg_t addr, const reg_t void float_csr_t::verify_permissions(insn_t insn, bool write) const { masked_csr_t::verify_permissions(insn, write); - require_fs; + require(STATE.sstatus->enabled(SSTATUS_FS)); if (!proc->extension_enabled('F') && !proc->extension_enabled(EXT_ZFINX)) throw trap_illegal_instruction(insn.bits()); diff --git a/riscv/decode_macros.h b/riscv/decode_macros.h index b34312115..807ad9887 100644 --- a/riscv/decode_macros.h +++ b/riscv/decode_macros.h @@ -165,7 +165,6 @@ static inline bool is_aligned(const unsigned val, const unsigned pos) #define require_extension(s) require(p->extension_enabled(s)) #define require_either_extension(A,B) require(p->extension_enabled(A) || p->extension_enabled(B)); #define require_impl(s) require(p->supports_impl(s)) -#define require_fs require(STATE.sstatus->enabled(SSTATUS_FS)) #define require_fp STATE.fflags->verify_permissions(insn, false) #define require_accelerator require(STATE.sstatus->enabled(SSTATUS_XS)) #define require_vector_vs require(p->any_vector_extensions() && STATE.sstatus->enabled(SSTATUS_VS))