diff --git a/difftest/difftest.cc b/difftest/difftest.cc index 0e44cae59..20ed5d26c 100644 --- a/difftest/difftest.cc +++ b/difftest/difftest.cc @@ -400,6 +400,10 @@ bool DifftestRef::raise_critical_error() { return state->critical_error; } +void DifftestRef::dirty_fsvs(uint64_t dirties) { + state->sstatus->dirty(dirties); +} + void DifftestRef::update_mip(void *non_reg_interrupt_pending) { auto n = (DifftestNonRegInterruptPending *) non_reg_interrupt_pending; state->mip->backdoor_write_with_mask(MIP_MTIP, n->platform_irp_mtip ? MIP_MTIP : 0); @@ -574,6 +578,10 @@ void difftest_raise_intr(uint64_t NO) { ref->raise_intr(NO); } +void difftest_dirty_fsvs(uint64_t dirties) { + ref->dirty_fsvs(dirties); +} + bool difftest_raise_critical_error() { return ref->raise_critical_error(); } diff --git a/difftest/difftest.h b/difftest/difftest.h index 22ec17493..15d3eea11 100644 --- a/difftest/difftest.h +++ b/difftest/difftest.h @@ -143,6 +143,7 @@ class DifftestRef { int store_commit(uint64_t *addr, uint64_t *data, uint8_t *mask); void raise_intr(uint64_t no); bool raise_critical_error(); + void dirty_fsvs(uint64_t dirties); void display(); void update_mip(void *non_reg_interrupt_pending); void update_dynamic_config(void* config) {