From 1777ca473e36fed6136bdd1853668797f0de72ea Mon Sep 17 00:00:00 2001 From: William Wang Date: Wed, 23 Sep 2020 17:18:27 +0800 Subject: [PATCH] Difftest: fix mastatus sync func type --- include/isa.h | 6 +++--- include/monitor/difftest.h | 2 ++ src/isa/riscv64/difftest/ref.c | 4 ++-- src/isa/riscv64/exec/exec.c | 2 +- src/monitor/difftest/ref.c | 6 +++--- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/isa.h b/include/isa.h index 2e126d33..21b89d53 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 87572e85..9f1423de 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 dabebae6..6ce78bed 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 cc4eaf9f..178ab59c 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 80acb3fa..b2dcf89e 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); } -- GitLab