feat: difftest framework

This commit is contained in:
xinyangli 2024-04-05 00:16:58 +08:00
parent 97cf418c86
commit 849f2bb5f3
Signed by: xin
SSH key fingerprint: SHA256:qZ/tzd8lYRtUFSrfBDBMcUqV4GHKxqeqRA3huItgvbk
15 changed files with 318 additions and 84 deletions

View file

@ -13,25 +13,34 @@
* See the Mulan PSL v2 for more details.
***************************************************************************************/
#include <isa.h>
#include "types.h"
#include <cpu/cpu.h>
#include <cpu/decode.h>
#include <difftest-def.h>
#include <isa.h>
#include <memory/paddr.h>
__EXPORT void difftest_memcpy(paddr_t addr, void *buf, size_t n, bool direction) {
assert(0);
__EXPORT void difftest_memcpy(paddr_t addr, void *buf, size_t n,
bool direction) {
if (direction == DIFFTEST_TO_REF) {
memcpy(guest_to_host(addr), buf, n);
} else {
assert(0);
}
}
__EXPORT void difftest_regcpy(void *dut, bool direction) {
assert(0);
// assert(0);
if (direction == DIFFTEST_TO_DUT)
memcpy(dut, &cpu, sizeof(CPU_state));
else
memcpy(&cpu, dut, sizeof(CPU_state));
}
__EXPORT void difftest_exec(uint64_t n) {
assert(0);
}
__EXPORT void difftest_exec(uint64_t n) { cpu_exec(n); }
__EXPORT void difftest_raise_intr(word_t NO) {
assert(0);
// assert(0);
}
__EXPORT void difftest_init(int port) {