diff --git a/include/isa.h b/include/isa.h index 2e126d332b93ed234617e7bc03e0f93286884440..21b89d537a6c5e13c69ceae8913db2f94c8f0a6b 100644 --- a/include/isa.h +++ b/include/isa.h @@ -39,9 +39,9 @@ void isa_difftest_attach(); void isa_difftest_getregs(void *r); void isa_difftest_setregs(const void *r); void isa_difftest_raise_intr(word_t NO); -void isa_difftest_get_mastatus(uint64_t *s); -void isa_difftest_set_mastatus(uint64_t *s); -vaddr_t isa_disambiguate_exec(uint64_t *disambiguate_para); +void isa_difftest_get_mastatus(void *s); +void isa_difftest_set_mastatus(const void *s); +vaddr_t isa_disambiguate_exec(void *disambiguate_para); bool isa_difftest_microarchitectural_pf_check(vaddr_t addr); #endif diff --git a/include/monitor/difftest.h b/include/monitor/difftest.h index 87572e853121e7163dfdd97442773437f7a9d2b1..9f1423de220a29160aea58fe35fbbca4385ec3a2 100644 --- a/include/monitor/difftest.h +++ b/include/monitor/difftest.h @@ -16,6 +16,8 @@ void difftest_step(vaddr_t ori_pc, vaddr_t next_pc); extern void (*ref_difftest_memcpy_from_dut)(paddr_t dest, void *src, size_t n); extern void (*ref_difftest_getregs)(void *c); extern void (*ref_difftest_setregs)(const void *c); +extern void (*ref_difftest_get_mastatus)(void *c); +extern void (*ref_difftest_set_mastatus)(const void *c); extern void (*ref_difftest_exec)(uint64_t n); static inline bool difftest_check_reg(const char *name, vaddr_t pc, rtlreg_t ref, rtlreg_t dut) { diff --git a/src/isa/riscv64/difftest/ref.c b/src/isa/riscv64/difftest/ref.c index dabebae6002e9fbd1f83bb31fdfdbb3efcf3d9a7..6ce78bedf88fa68ecc400dac2a3c93a4f43fbc0a 100644 --- a/src/isa/riscv64/difftest/ref.c +++ b/src/isa/riscv64/difftest/ref.c @@ -52,13 +52,13 @@ void isa_difftest_setregs(const void *r) { csr_writeback(); } -void isa_difftest_get_mastatus(uint64_t *s) { +void isa_difftest_get_mastatus(void *s) { struct SyncState ms; ms.lrscValid = cpu.lr_valid; memcpy(s, &ms, sizeof(struct SyncState)); } -void isa_difftest_set_mastatus(uint64_t *s) { +void isa_difftest_set_mastatus(const void *s) { struct SyncState* ms = (struct SyncState*)s; cpu.lr_valid = ms->lrscValid; } diff --git a/src/isa/riscv64/exec/exec.c b/src/isa/riscv64/exec/exec.c index cc4eaf9fa1db6988d36e506ebd093b30324c28cb..178ab59c02243e2bce539c2c5d699d9acdd824b0 100644 --- a/src/isa/riscv64/exec/exec.c +++ b/src/isa/riscv64/exec/exec.c @@ -236,6 +236,6 @@ vaddr_t isa_exec_once() { return s.seq_pc; } -vaddr_t isa_disambiguate_exec(uint64_t *disambiguate_para) { +vaddr_t isa_disambiguate_exec(void *disambiguate_para) { return isa_exec_once(); //TODO } diff --git a/src/monitor/difftest/ref.c b/src/monitor/difftest/ref.c index 80acb3fa38da6b2df91d74142924731428c5b5e2..b2dcf89e45f90befa08c9ce83ac57db771f759a1 100644 --- a/src/monitor/difftest/ref.c +++ b/src/monitor/difftest/ref.c @@ -21,15 +21,15 @@ void difftest_setregs(const void *r) { isa_difftest_setregs(r); } -void difftest_get_mastatus(uint64_t *s){ +void difftest_get_mastatus(void *s){ isa_difftest_get_mastatus(s); } -void difftest_set_mastatus(uint64_t *s){ +void difftest_set_mastatus(const void *s){ isa_difftest_set_mastatus(s); } -vaddr_t disambiguate_exec(uint64_t *disambiguate_para){ +vaddr_t disambiguate_exec(void *disambiguate_para){ return isa_disambiguate_exec(disambiguate_para); }